Merge pull request #1844 from jrw972/monterey
[ACE_TAO.git] / ACE / apps / JAWS2 / JAWS / Filecache.h
blob03a5e2c3789edeae0bfcec96daae794d6bfe2cdc
1 /* -*- c++ -*- */
2 #ifndef JAWS_FILECACHE_H
3 #define JAWS_FILECACHE_H
5 #include "ace/FILE_IO.h"
7 #include "JAWS/Cache_Manager.h"
8 #include "JAWS/FILE.h"
9 #include "JAWS/Export.h"
11 class JAWS_Export JAWS_Referenced_Filecache_Factory
12 : public JAWS_Referenced_Cache_Object_Factory
14 public:
16 virtual void destroy (JAWS_Cache_Object *);
20 class JAWS_Export JAWS_Counted_Filecache_Factory
21 : public JAWS_Counted_Cache_Object_Factory
23 public:
25 virtual void destroy (JAWS_Cache_Object *);
29 typedef JAWS_Cache_Manager<JAWS_Strdup_String,
30 JAWS_Referenced_Filecache_Factory,
31 JAWS_String_Hash_Functor,
32 JAWS_String_Equal_Functor>
33 JAWS_Referenced_Filecache_Manager;
35 typedef JAWS_Cache_Manager<JAWS_Strdup_String,
36 JAWS_Counted_Filecache_Factory,
37 JAWS_String_Hash_Functor,
38 JAWS_String_Equal_Functor>
39 JAWS_Counted_Filecache_Manager;
41 typedef JAWS_Counted_Filecache_Manager JAWS_Filecache_Manager;
43 typedef JAWS_Cache_Proxy<const char *,
44 JAWS_FILE, JAWS_Filecache_Manager>
45 JAWS_Filecache_Proxy;
47 class JAWS_Export JAWS_Cached_FILE : private JAWS_Filecache_Proxy
49 public:
51 JAWS_Cached_FILE (const char *const &filename,
52 JAWS_Filecache_Proxy::Cache_Manager *cm = 0);
53 JAWS_Cached_FILE (const char *const &filename,
54 JAWS_FILE *&file,
55 size_t size,
56 JAWS_Filecache_Proxy::Cache_Manager *cm = 0);
58 ~JAWS_Cached_FILE (void);
60 ACE_FILE_IO * file (void);
61 ACE_Mem_Map * mmap (void);
63 private:
65 ACE_FILE_IO file_;
70 #endif /* JAWS_FILECACHE_H */