Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# ACE_Filecache Class Reference

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. More...

`#include <Filecache.h>`

Collaboration diagram for ACE_Filecache:

[legend]
List of all members.

## Public Types
enum | { ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE = 512, ACE_DEFAULT_VIRTUAL_FILESYSTEM_CACHE_SIZE = 20 }
## Public Methods
| ~ACE_Filecache (void)
int | find (const ACE_TCHAR *filename)
| Returns 0 if the file associated with ``filename'' is in the cache, or -1 if not.
ACE_Filecache_Object* | fetch (const ACE_TCHAR *filename, int mapit = 1)
| Return the file associated with ``filename'' if it is in the cache, or create if not.
ACE_Filecache_Object* | remove (const ACE_TCHAR *filename)
| Remove the file associated with ``filename'' from the cache.
ACE_Filecache_Object* | create (const ACE_TCHAR *filename, int size)
| Create a new Filecache_Object, returns it.
ACE_Filecache_Object* | finish (ACE_Filecache_Object *&new_file)
| Release an acquired Filecache_Object, returns it again or NULL if it was deleted.
## Static Public Methods
ACE_Filecache* | instance (void)
| Singleton pattern.
## Protected Methods
ACE_Filecache_Object* | insert_i (const ACE_TCHAR *filename, ACE_SYNCH_RW_MUTEX &filelock, int mapit)
ACE_Filecache_Object* | remove_i (const ACE_TCHAR *filename)
ACE_Filecache_Object* | update_i (const ACE_TCHAR *filename, ACE_SYNCH_RW_MUTEX &filelock, int mapit)
| ACE_Filecache (void)
| Prevent it from being called.
## Private Attributes
int | size_
ACE_Filecache_Hash | hash_
| The hash table.
ACE_SYNCH_RW_MUTEX | hash_lock_ [ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE]
ACE_SYNCH_RW_MUTEX | file_lock_ [ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE]
## Static Private Attributes
ACE_Filecache* | cvf_ = 0
| The reference to the instance.

## Detailed Description

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.

## Member Enumeration Documentation

anonymous enum

  | Enumeration values:
  ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE | For this stupid implementation, use an array. Someday, use a balanced search tree, or real hash table.
  ACE_DEFAULT_VIRTUAL_FILESYSTEM_CACHE_SIZE | This determines the highwater mark in megabytes for the cache. This will be ignored for now.

## Constructor & Destructor Documentation

ACE_Filecache::~ACE_Filecache ( | void )

ACE_Filecache::ACE_Filecache ( | void )`[protected]`

| Prevent it from being called.

## Member Function Documentation

ACE_Filecache_Object * ACE_Filecache::create ( | const ACE_TCHAR * filename,
| int size )

| Create a new Filecache_Object, returns it.

ACE_Filecache_Object * ACE_Filecache::fetch ( | const ACE_TCHAR * filename,
| int mapit = 1 )

| Return the file associated with ``filename'' if it is in the cache, or create if not.

int ACE_Filecache::find ( | const ACE_TCHAR * filename )

| Returns 0 if the file associated with ``filename'' is in the cache, or -1 if not.

ACE_Filecache_Object * ACE_Filecache::finish ( | ACE_Filecache_Object *& new_file )

| Release an acquired Filecache_Object, returns it again or NULL if it was deleted.

ACE_Filecache_Object * ACE_Filecache::insert_i ( | const ACE_TCHAR * filename,
| ACE_SYNCH_RW_MUTEX & filelock,
| int mapit )`[protected]`

ACE_Filecache * ACE_Filecache::instance ( | void )`[static]`

| Singleton pattern.

ACE_Filecache_Object * ACE_Filecache::remove ( | const ACE_TCHAR * filename )

| Remove the file associated with ``filename'' from the cache.

ACE_Filecache_Object * ACE_Filecache::remove_i ( | const ACE_TCHAR * filename )`[protected]`

ACE_Filecache_Object * ACE_Filecache::update_i ( | const ACE_TCHAR * filename,
| ACE_SYNCH_RW_MUTEX & filelock,
| int mapit )`[protected]`

## Member Data Documentation

ACE_Filecache * ACE_Filecache::cvf_ = 0`[static, private]`

| The reference to the instance.

ACE_SYNCH_RW_MUTEX ACE_Filecache::file_lock_[ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE]`[private]`

ACE_Filecache_Hash ACE_Filecache::hash_`[private]`

| The hash table.

ACE_SYNCH_RW_MUTEX ACE_Filecache::hash_lock_[ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE]`[private]`

int ACE_Filecache::size_`[private]`

The documentation for this class was generated from the following files:

- Filecache.h
- Filecache.cpp