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

📄 warsvrprotocolftpcommands.h

📁 ftpserver very good sample
💻 H
字号:
/** */#ifndef WAR_SVR_PROTOCOL_FTP_COMMANDS_H#define WAR_SVR_PROTOCOL_FTP_COMMANDS_H/* SYSTEM INCLUDES *//* PROJECT INCLUDES *//* LOCAL INCLUDES */#ifndef WAR_SVR_PROTOCOL_FTP_CMD_H#   include "WarSvrProtocolFtpCmd.h"#endif#ifndef WAR_SVR_PROTOCOL_FTP_ENUMS_H#   include "WarSvrProtocolFtpEnums.h"#endif#ifndef WAR_SVR_ENUMS_H#   include "WarSvrEnums.h"#endif/* FORWARD REFERENCES */class WarSvrProtocolFtp;#ifdef __cplusplusextern "C" {#endif/****************** BEGIN OLD STYLE C spesific ********//****************** END OLD STYLE C spesific **********/#ifdef __cplusplus }#endif/****************** BEGIN C++ spesific ****************/#ifdef __cplusplusclass WarCmdAlias{public:    WarCmdAlias(const WarCmdAlias& from)        : mAlias(from.mAlias),        mCommand(from.mCommand)    {    }    WarCmdAlias(war_ccstr_t strAlias,         war_ccstr_t strCommand)        : mAlias(strAlias),        mCommand(strCommand)    {    }        bool operator < (const WarCmdAlias& from) const    {        return mAlias < from.mAlias;    }        bool operator == (const WarCmdAlias& from) const    {        return mAlias == from.mAlias;    }    WarCmdAlias& operator = (const WarCmdAlias& from)    {        mAlias = from.mAlias;        mCommand = from.mCommand;        return *this;    }        std::string mAlias;    std::string mCommand;public:};class WarCmdDefinition{public:    WarCmdDefinition(const std::string& name,         bool isImplemented)        : mName(name),        mIsImplemented(isImplemented)    {}    WarCmdDefinition(const WarCmdDefinition& from)        : mName(from.mName),        mIsImplemented(from.mIsImplemented)    {}    bool operator < (const WarCmdDefinition& from) const    {        return mName < from.mName;    }    bool operator == (const WarCmdDefinition& from) const    {        return mName == from.mName;    }    const std::string& GetName() const    {        return mName;    }    const bool IsImplemented() const    {        return mIsImplemented;    }private:    const std::string mName;    const bool mIsImplemented;};typedef std::set<WarCmdDefinition> war_cmddef_set_t;class WarSvrProtocolFtpCommands :     public WarSvrProtocolFtpEnums,    public WarSvrEnums{public:    typedef std::set<WarCmdAlias> cmd_alias_t;    // LIFECYCLE        /**    * Default constructor.    */    WarSvrProtocolFtpCommands(void);        /**    * Destructor.    */    ~WarSvrProtocolFtpCommands(void);        // OPERATORS     // OPERATIONS                           void InnstallCommand(war_ftpcmd_ptr_t& command,        bool doReplace = true);    void InstallAlias(war_ccstr_t strAlias,         war_ccstr_t strCommand)    {        mCmdAliases.insert(WarCmdAlias(strAlias, strCommand));    }    void OnCommand(war_ccstr_t cmdName,         war_ccstr_t cmdBuffer,         size_t bufferLength);    void AssignToServer(WarSvrProtocolFtp *pServer)    {        mpCompanion = pServer;    }    // ACCESS    WarSvrProtocolFtpCmd *GetCmdPtr(war_ccstr_t cmdName);    const war_ftpcmd_set_t& GetCommands() const    {        return mCommandSet;    }    // INQUIRY    void GetCommandDefs(war_cmddef_set_t& returnVal) const;    const WarSvrProtocolFtpCmd& GetCurrentCommand() const    {        return ReturnCommand(mpCurrentCommand);    }    const WarSvrProtocolFtpCmd& GetPreviousCommand() const    {        return ReturnCommand(mpPrevCommand);    }#if WAR_RFC2389    const std::string GetFeatures() const;#endif // WAR_RFC2389  protected:private:    const WarSvrProtocolFtpCmd&         ReturnCommand(WarSvrProtocolFtpCmd *pCommand) const    {        if (pCommand == NULL)            WarThrow(WarError(WAR_ERR_NO_OBJECT), NULL);                return *pCommand;    }    war_ftpcmd_set_t mCommandSet;    WarSvrProtocolFtp *mpCompanion;    cmd_alias_t mCmdAliases;    WarSvrProtocolFtpCmd *mpPrevCommand;    WarSvrProtocolFtpCmd *mpCurrentCommand;};/* INLINE METHODS *//* EXTERNAL REFERENCES */#endif /* __cplusplus *//****************** END C++ spesific ******************/#endif  /* WAR_SVR_PROTOCOL_FTP_COMMANDS_H_ */

⌨️ 快捷键说明

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