⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filecache.cpp

📁 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework)
💻 CPP
字号:
// Filecache.cpp,v 1.3 2005/07/29 09:26:07 jwillemsen Exp#include "ace/FILE_Connector.h"#include "ace/OS_NS_unistd.h"#include "JAWS/Filecache.h"#include "JAWS/Cache_List_T.h"voidJAWS_Referenced_Filecache_Factory::destroy (JAWS_Cache_Object *object){  JAWS_FILE *file = (JAWS_FILE *) object->data ();  file->close ();  if (file->map ())    file->map ()->close ();  delete file;  this->JAWS_Referenced_Cache_Object_Factory::destroy (object);}voidJAWS_Counted_Filecache_Factory::destroy (JAWS_Cache_Object *object){  JAWS_FILE *file = (JAWS_FILE *) object->data ();  file->close ();  if (file->map ())    file->map ()->close ();  delete file;  this->JAWS_Counted_Cache_Object_Factory::destroy (object);}JAWS_Cached_FILE::JAWS_Cached_FILE (const char *const &filename,                                    JAWS_Filecache_Proxy::Cache_Manager *cm)  : JAWS_Filecache_Proxy (filename, cm){  ACE_HANDLE handle = ACE_INVALID_HANDLE;  if (this->data () != 0)    {      handle = ACE_OS::dup (this->data ()->get_handle ());    }  else    {      JAWS_FILE *file = new JAWS_FILE;      ACE_FILE_Connector file_connector;      int result = file_connector.connect (*file, ACE_FILE_Addr (filename));      if (result == -1 || file->get_handle () == ACE_INVALID_HANDLE)        {          // TODO: do something here!        }      ACE_FILE_Info info;      file->get_info (info);      handle = ACE_OS::dup (file->get_handle ());      {        JAWS_Cached_FILE cf (filename, file, info.size_, cm);        if (cf.data () != 0)          {            new (this) JAWS_Cached_FILE (filename, cm);            return;          }      }    }  this->file_.set_handle (handle);}JAWS_Cached_FILE::JAWS_Cached_FILE (const char *const &filename,                                    JAWS_FILE *&file,                                    size_t size,                                    JAWS_Filecache_Proxy::Cache_Manager *cm)  : JAWS_Filecache_Proxy (filename, file, size, cm){}JAWS_Cached_FILE::~JAWS_Cached_FILE (void){  this->file_.close ();}ACE_FILE_IO *JAWS_Cached_FILE::file (void){  return &(this->file_);}ACE_Mem_Map *JAWS_Cached_FILE::mmap (void){  return (this->data () == 0 ? 0 : this->data ()->mem_map ());}#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)template class JAWS_Cache_List_Item<JAWS_Strdup_String,                                    JAWS_Referenced_Filecache_Factory,                                    JAWS_String_Hash_Functor,                                    JAWS_String_Equal_Functor>;template class JAWS_Cache_List_Item<JAWS_Strdup_String,                                    JAWS_Counted_Filecache_Factory,                                    JAWS_String_Hash_Functor,                                    JAWS_String_Equal_Functor>;template class JAWS_Cache_List<JAWS_Strdup_String,                               JAWS_Referenced_Filecache_Factory,                               JAWS_String_Hash_Functor,                               JAWS_String_Equal_Functor>;template class JAWS_Cache_List<JAWS_Strdup_String,                               JAWS_Counted_Filecache_Factory,                               JAWS_String_Hash_Functor,                               JAWS_String_Equal_Functor>;template class JAWS_Cache_Manager<JAWS_Strdup_String,                                  JAWS_Referenced_Filecache_Factory,                                  JAWS_String_Hash_Functor,                                  JAWS_String_Equal_Functor>;template class JAWS_Cache_Manager<JAWS_Strdup_String,                                  JAWS_Counted_Filecache_Factory,                                  JAWS_String_Hash_Functor,                                  JAWS_String_Equal_Functor>;template class JAWS_Cache_Proxy<char const *,                                JAWS_FILE,                                JAWS_Referenced_Filecache_Manager>;template class JAWS_Cache_Proxy<char const *,                                JAWS_FILE,                                JAWS_Counted_Filecache_Manager>;template class ACE_Singleton<JAWS_Referenced_Filecache_Manager,                             ACE_Thread_Mutex>;template class ACE_Singleton<JAWS_Counted_Filecache_Manager,                             ACE_Thread_Mutex>;template class ACE_Singleton<JAWS_Referenced_Filecache_Factory,                             ACE_Thread_Mutex>;template class ACE_Singleton<JAWS_Counted_Filecache_Factory, ACE_Thread_Mutex>;#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -