ACE 8.0.1
Loading...
Searching...
No Matches
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 ()
 
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.
 
ACE_Filecache_Objectcreate (const ACE_TCHAR *filename, int size)
 Create a new Filecache_Object, returns it.
 
ACE_Filecache_Objectfinish (ACE_Filecache_Object *&new_file)
 

Static Public Member Functions

static ACE_Filecacheinstance ()
 Singleton pattern.
 

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 ()
 Prevent it from being called.
 

Private Attributes

ACE_OFF_T 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

static ACE_Filecachecvf_ = 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

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 ( )

◆ ACE_Filecache()

ACE_Filecache::ACE_Filecache ( )
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 ( )
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: