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

📄 warmmcfilenodedata.cpp

📁 ftpserver very good sample
💻 CPP
字号:
#include "StdAfx.h"#include "WarMmcFileNodeData.h"   // class implemented/////////////////////////////// PUBLIC /////////////////////////////////////////============================= LIFECYCLE ====================================WarMmcFileNodeData::WarMmcFileNodeData(WarMmcNodeEventBase& node,                                       const war_regstr_t& name,                                        const WarWin32Registry& regParent,                                       bool canChangeName): WarMmcFuckLameMicrosoftForNotImplementingThis(&node),mPerms(DEFAULT_PERMS),mName(name),mCanChangeName(false){    mRegKey.Open(regParent.GetRootKey(),        regParent.GetPath().GetPath());}WarMmcFileNodeData::~WarMmcFileNodeData(void){}//============================= OPERATORS ====================================//============================= OPERATIONS ===================================void WarMmcFileNodeData::Load() throw(WarException){    if (mName.empty())        WarThrow(WarException(WAR_ERR_INTERNAL_DATA_NOT_INITIALIZED), NULL);    WarWin32Registry my_node;    my_node.Open(mRegKey.GetRootKey(), mRegKey.GetPath(mName.c_str()));    mUrl = WarCollector<char>(my_node.GetStrValue(WAR_WINNT_SHARE_URL)).GetValue().c_str();    mPerms = my_node.GetIntValue(WAR_WINNT_REG_PERMISSIONS);}void WarMmcFileNodeData::Save() throw(WarException){    if (mName.empty())        WarThrow(WarException(WAR_ERR_INTERNAL_DATA_NOT_INITIALIZED), NULL);    WarWin32Registry my_node;    my_node.Create(mRegKey.GetRootKey(), mRegKey.GetPath(mName.c_str()));    my_node.SetValue(WAR_WINNT_SHARE_URL,         WarCollector<TCHAR>(mUrl.GetUrl()).GetValue().c_str());    my_node.SetValue(WAR_WINNT_REG_PERMISSIONS, mPerms);}//============================= ACCESS     ===================================//============================= INQUIRY    ===================================bool WarMmcFileNodeData::HaveValidName() const{    if (mName.empty())        return false; // No name at all     // Validate the path itself    const TCHAR *p = mName.c_str();    if (*p != '/')        return false;    while(*++p)    {        if (*p == '/')        {            if ((p[-1] == '/') || (p[1] == 0))                return false;        }        if ((*p == '.') && (p[-1] == '/'))        {            const TCHAR *pp = p;            while(*pp == '.')                ++pp;            if (!_istalnum(*pp))                return false;        }    }    WarWin32Registry my_node;    try    {        my_node.Open(mRegKey.GetRootKey(), mRegKey.GetPath(mName.c_str()));    }    catch(WarException& e)    {        if (e.LocalError() == WAR_ERR_NAME_DONT_EXIST)            return true;    }    return false; // Exist}/////////////////////////////// PROTECTED  ////////////////////////////////////////////////////////////////// PRIVATE    ///////////////////////////////////

⌨️ 快捷键说明

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