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

📄 warfileengine.cpp

📁 ftpserver very good sample
💻 CPP
字号:
#include "StdAfx.h"#include "WarFileEngine.h"   // class implemented#ifndef WAR_AUTO_LOCK_H#   include "WarAutoLock.h"#endif#ifndef WAR_LOG_H#   include "WarLog.h"#endifusing namespace std;/////////////////////////////// PUBLIC ///////////////////////////////////////WarFileEngine *WarFileEngine::mspMe;#define AUTO_LOCK WarAutoLock my_lock(mLock);//============================= LIFECYCLE ====================================WarFileEngine::WarFileEngine()    throw(WarException){    if (mspMe)        WarThrow(WarError(WAR_ERR_OBJECT_EXIST), NULL);    mspMe = this;}// WarFileEngineWarFileEngine::~WarFileEngine(){    if (mspMe == this)        mspMe = NULL;}// ~WarFileEngine//============================= OPERATORS ====================================//============================= OPERATIONS ===================================void WarFileEngine::AttachDriver(WarFileDriver *pDriver)    throw(WarException){    WarLog debug_log(WARLOG_FILES, "WarFileEngine::AttachDriver()");    debug_log << "Adding driver: '"        << pDriver->GetName()        << "'"        << war_endl;    AUTO_LOCK    WarFileDriver::driver_ptr_t driver_ref(pDriver);    pair<driver_list_t::iterator, bool> result =         mDrivers.insert(pDriver);    if (!result.second)    {        WarLog err_log(WARLOG_ERROR, "WarFileEngine::AttachDriver()");        err_log << "The driver '"            << pDriver->GetName()            << "' was already installed!"            << WarError(WAR_ERR_OBJECT_EXIST)            << war_endl;        WarThrow(WarError(WAR_ERR_OBJECT_EXIST), NULL);    }}void WarFileEngine::DetachDriver(war_ccstr_t driverName)    throw(WarException){    AUTO_LOCK    driver_list_t::iterator P = Lookup(driverName);    mDrivers.erase(P);}WarFileDriver::driver_ptr_t WarFileEngine::GetDriver(war_ccstr_t driverName)    throw(WarException){    AUTO_LOCK    driver_list_t::iterator P = Lookup(driverName);    return (*P);}//============================= ACCESS     ===================================//============================= INQUIRY    ===================================/////////////////////////////// PROTECTED  ///////////////////////////////////bool WarFileEngine::IsDriverInstalled(war_ccstr_t driverName){    AUTO_LOCK#if WAR_CATCH_ALL    try#endif    {        Lookup(driverName);        return true;    }#if WAR_CATCH_ALL    catch(...)    {    }#endif    return false;}/////////////////////////////// PRIVATE    ///////////////////////////////////WarFileEngine::driver_list_t::iterator WarFileEngine::Lookup(war_ccstr_t driverName)        throw(WarException){    WarFileDriver *pkey_driver = new WarFileDriver(driverName);    driver_list_t::iterator P = mDrivers.find(pkey_driver);        if (P == mDrivers.end())        WarThrow(WarError(WAR_ERR_OBJECT_NOT_FOUND), NULL);        return P;}

⌨️ 快捷键说明

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