## NAME

ACE_Filecache - A hash table holding the information about entry point into the Cached Virtual Filesystem. On insertion, the reference count is incremented. On destruction, reference count is decremented.

## SYNOPSIS

    #include <ace/Filecache.h>

    class ACE_Filecache
    {
      public:
        static ACE_Filecache *instance (void);
        ~ACE_Filecache (void);
        int find (const char *filename);
        ACE_Filecache_Object *fetch (const char *filename, int mapit = 1);
        ACE_Filecache_Object *remove (const char *filename);
        ACE_Filecache_Object *create (const char *filename, int size);
        ACE_Filecache_Object *finish (ACE_Filecache_Object *&new_file);
            enum{ ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE = 512,
            ACE_DEFAULT_VIRTUAL_FILESYSTEM_CACHE_SIZE = 20 };

      protected:
        ACE_Filecache_Object *insert_i (
            const char *filename,
            ACE_SYNCH_RW_MUTEX &filelock,
            int mapit
            );
        ACE_Filecache_Object *remove_i (const char *filename);
        ACE_Filecache_Object *update_i (
            const char *filename,
            ACE_SYNCH_RW_MUTEX &filelock,
            int mapit
            );
        ACE_Filecache (void);
      private:
        int size_;
        ACE_Filecache_Hash hash_;
        static ACE_Filecache *cvf_;
            ACE_SYNCH_RW_MUTEX hash_lock_[ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE];

            ACE_SYNCH_RW_MUTEX file_lock_[ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE];

    };

## Synchronization variables.

        ACE_SYNCH_RW_MUTEX hash_lock_[ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE];

        ACE_SYNCH_RW_MUTEX file_lock_[ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE];

## AUTHOR

James Hu

## LIBRARY

ace