ACE  6.4.7
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Private Attributes | Static Private Attributes | List of all members
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:
Collaboration graph
[legend]

Public Types

enum  { ACE_DEFAULT_VIRTUAL_FILESYSTEM_TABLE_SIZE = 512, ACE_DEFAULT_VIRTUAL_FILESYSTEM_CACHE_SIZE = 20 }
 

Public Member Functions

 ~ACE_Filecache (void)
 
int find (const ACE_TCHAR *filename)
 
ACE_Filecache_Objectfetch (const ACE_TCHAR *filename, int mapit=1)
 
ACE_Filecache_Objectremove (const ACE_TCHAR *filename)
 Remove the file associated with `‘filename’' from the cache. More...
 
ACE_Filecache_Objectcreate (const ACE_TCHAR *filename, int size)
 Create a new Filecache_Object, returns it. More...
 
ACE_Filecache_Objectfinish (ACE_Filecache_Object *&new_file)
 

Static Public Member Functions

static ACE_Filecacheinstance (void)
 Singleton pattern. More...
 

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 

Protected Member Functions

ACE_Filecache_Objectinsert_i (const ACE_TCHAR *filename, ACE_SYNCH_RW_MUTEX &filelock, int mapit)
 
ACE_Filecache_Objectremove_i (const ACE_TCHAR *filename)
 
ACE_Filecache_Objectupdate_i (const ACE_TCHAR *filename, ACE_SYNCH_RW_MUTEX &filelock, int mapit)
 
 ACE_Filecache (void)
 Prevent it from being called. More...
 

Private Attributes

ACE_OFF_T size_
 
ACE_Filecache_Hash hash_
 The hash table. More...
 
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

static ACE_Filecachecvf_ = 0
 The reference to the instance. More...
 

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

anonymous enum
Enumerator
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::~ACE_Filecache ( void  )

◆ ACE_Filecache()

ACE_Filecache::ACE_Filecache ( void  )
protected

Prevent it from being called.

Member Function Documentation

◆ create()

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

Create a new Filecache_Object, returns it.

◆ fetch()

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.

◆ find()

int ACE_Filecache::find ( const ACE_TCHAR filename)

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

◆ finish()

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.

◆ insert_i()

ACE_Filecache_Object * ACE_Filecache::insert_i ( const ACE_TCHAR filename,
ACE_SYNCH_RW_MUTEX filelock,
int  mapit 
)
protected

◆ instance()

ACE_Filecache * ACE_Filecache::instance ( void  )
static

Singleton pattern.

◆ remove()

ACE_Filecache_Object * ACE_Filecache::remove ( const ACE_TCHAR filename)

Remove the file associated with `‘filename’' from the cache.

◆ remove_i()

ACE_Filecache_Object * ACE_Filecache::remove_i ( const ACE_TCHAR filename)
protected

◆ update_i()

ACE_Filecache_Object * ACE_Filecache::update_i ( const ACE_TCHAR filename,
ACE_SYNCH_RW_MUTEX filelock,
int  mapit 
)
protected

Member Data Documentation

◆ ACE_ALLOC_HOOK_DECLARE

ACE_Filecache::ACE_ALLOC_HOOK_DECLARE

◆ cvf_

ACE_Filecache * ACE_Filecache::cvf_ = 0
staticprivate

The reference to the instance.

◆ file_lock_

◆ hash_

ACE_Filecache_Hash ACE_Filecache::hash_
private

The hash table.

◆ hash_lock_

◆ size_

ACE_OFF_T ACE_Filecache::size_
private

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