15 #ifndef VIRTUALFILEMOUNTHTTP_H
16 #define VIRTUALFILEMOUNTHTTP_H
18 #include "pandabase.h"
22 #include "virtualFileMount.h"
23 #include "httpClient.h"
24 #include "httpChannel.h"
26 #include "pointerTo.h"
27 #include "mutexImpl.h"
36 VirtualFileMountHTTP(
const URLSpec &root, HTTPClient *http = HTTPClient::get_global_ptr());
37 virtual ~VirtualFileMountHTTP();
39 INLINE HTTPClient *get_http_client()
const;
40 INLINE
const URLSpec &get_root()
const;
42 static void reload_vfs_mount_url();
47 bool implicit_pz_file,
50 virtual
bool has_file(const
Filename &file) const;
51 virtual
bool is_directory(const
Filename &file) const;
52 virtual
bool is_regular_file(const
Filename &file) const;
54 virtual istream *open_read_file(const
Filename &file) const;
55 virtual streamsize get_file_size(const
Filename &file, istream *stream) const;
56 virtual streamsize get_file_size(const
Filename &file) const;
57 virtual time_t get_timestamp(const
Filename &file) const;
59 virtual
bool scan_directory(vector_string &contents,
62 virtual
void output(ostream &out) const;
64 PT(HTTPChannel) get_channel();
65 void recycle_channel(HTTPChannel *channel);
72 typedef
pvector< PT(HTTPChannel) > Channels;
77 return get_class_type();
79 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
83 static void init_type() {
84 VirtualFileMount::init_type();
85 register_type(_type_handle,
"VirtualFileMountHTTP",
86 VirtualFileMount::get_class_type());
93 #include "virtualFileMountHTTP.I"
95 #endif // HAVE_OPENSSL
A container for a URL, e.g.
The abstract base class for a file or directory within the VirtualFileSystem.
This is our own Panda specialization on the default STL vector.
The name of a file, such as a texture file or an Egg file.
The abstract base class for a mount definition used within a VirtualFileSystem.
A fake mutex implementation for single-threaded applications that don't need any synchronization cont...
TypeHandle is the identifier used to differentiate C++ class types.