warfiledriverdynamicnodedir.cpp

来自「ftpserver very good sample」· C++ 代码 · 共 83 行

CPP
83
字号
#include "StdAfx.h"#include "WarFileDriverDynamicNodeDir.h"   // class implemented#ifndef WAR_DIRLIST_H#	include "WarDirList.h"#endif/////////////////////////////// PUBLIC /////////////////////////////////////////============================= LIFECYCLE ====================================WarFileDriverDynamicNodeDir::WarFileDriverDynamicNodeDir(){	mMode = S_IFDIR | 0755;	mType = FT_DIR;}// WarFileDriverDynamicNodeDirWarFileDriverDynamicNodeDir::~WarFileDriverDynamicNodeDir(){}// ~WarFileDriverDynamicNodeDir//============================= OPERATORS ====================================//============================= OPERATIONS===================================WarFileDriverDynamicNodeBase::node_ptr_t WarFileDriverDynamicNodeDir::Lookup(const name_t& path) throw(WarException){	node_map_t::iterator P = mNodes.find(path);	if (P == mNodes.end())		WarThrow(WarError(WAR_FERR_NO_SUCH_PATH), NULL);	return P->second;}void WarFileDriverDynamicNodeDir::MountDir(war_cfsysstr_t newName) 		throw(WarException){	node_ptr_t new_dir = new WarFileDriverDynamicNodeDir;	name_t name = newName;	if (!mNodes.insert(node_map_t::value_type(name, new_dir)).second)		WarThrow(WarError(WAR_ERR_NAME_EXIST), NULL);}void WarFileDriverDynamicNodeDir::MountFile(war_cfsysstr_t newName,											node_ptr_t& nodePtr) 											throw(WarException){	name_t name = newName;	if (!mNodes.insert(node_map_t::value_type(name, nodePtr)).second)		WarThrow(WarError(WAR_ERR_NAME_EXIST), NULL);}void WarFileDriverDynamicNodeDir::WarListDirectory(WarDirList& listDestination)        throw(WarException){	for(node_map_t::const_iterator P = mNodes.begin()		; P != mNodes.end()		; ++P)	{		listDestination.AddFile(			P->first.c_str(), &(*(P->second)));	}}void WarFileDriverDynamicNodeDir::DeleteNode(war_cfsysstr_t nodeName)throw(WarException){	node_map_t::iterator P = mNodes.find(nodeName);	if (P == mNodes.end())		WarThrow(WarError(WAR_FERR_NO_SUCH_PATH), NULL);	mNodes.erase(P);}//============================= CALLBACK   ===================================//============================= ACCESS     ===================================//============================= INQUIRY    ===================================/////////////////////////////// PROTECTED  ////////////////////////////////////////////////////////////////// PRIVATE    ///////////////////////////////////

⌨️ 快捷键说明

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