diff options
author | Jose <jose@zeroc.com> | 2014-11-11 22:33:50 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2014-11-11 22:33:50 +0100 |
commit | fefe5c503a8bec0882443e994db64f916f806b5e (patch) | |
tree | f1881528106f75b50ab0f72ea6b5da6f90dc5b2e /cpp/demo/manual/evictor_filesystem/PersistentFilesystemI.cpp | |
parent | ICE-5863 - merge Java RPMs (diff) | |
download | ice-fefe5c503a8bec0882443e994db64f916f806b5e.tar.bz2 ice-fefe5c503a8bec0882443e994db64f916f806b5e.tar.xz ice-fefe5c503a8bec0882443e994db64f916f806b5e.zip |
Fixed (ICE-5857) rename manual -> Manual
Diffstat (limited to 'cpp/demo/manual/evictor_filesystem/PersistentFilesystemI.cpp')
-rw-r--r-- | cpp/demo/manual/evictor_filesystem/PersistentFilesystemI.cpp | 268 |
1 files changed, 0 insertions, 268 deletions
diff --git a/cpp/demo/manual/evictor_filesystem/PersistentFilesystemI.cpp b/cpp/demo/manual/evictor_filesystem/PersistentFilesystemI.cpp deleted file mode 100644 index 076357e3c66..00000000000 --- a/cpp/demo/manual/evictor_filesystem/PersistentFilesystemI.cpp +++ /dev/null @@ -1,268 +0,0 @@ -// ********************************************************************** -// -// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved. -// -// This copy of Ice is licensed to you under the terms described in the -// ICE_LICENSE file included in this distribution. -// -// ********************************************************************** - -#include <PersistentFilesystemI.h> - -using namespace std; - -// -// Filesystem::FileI -// - -Freeze::EvictorPtr Filesystem::FileI::_evictor; - -Filesystem::FileI::FileI() : _destroyed(false) -{ -} - -string -Filesystem::FileI::name(const Ice::Current& c) -{ - IceUtil::Mutex::Lock lock(_mutex); - - if(_destroyed) - { - throw Ice::ObjectNotExistException(__FILE__, __LINE__, c.id, c.facet, c.operation); - } - - return nodeName; -} - -void -Filesystem::FileI::destroy(const Ice::Current& c) -{ - { - IceUtil::Mutex::Lock lock(_mutex); - - if(_destroyed) - { - throw Ice::ObjectNotExistException(__FILE__, __LINE__, c.id, c.facet, c.operation); - } - _destroyed = true; - } - - // - // Because we use a transactional evictor, these updates are guaranteed to be atomic. - // - parent->removeNode(nodeName); - _evictor->remove(c.id); -} - -Filesystem::Lines -Filesystem::FileI::read(const Ice::Current& c) -{ - IceUtil::Mutex::Lock lock(_mutex); - - if(_destroyed) - { - throw Ice::ObjectNotExistException(__FILE__, __LINE__, c.id, c.facet, c.operation); - } - - return text; -} - -void -Filesystem::FileI::write(const Filesystem::Lines& text, const Ice::Current& c) -{ - IceUtil::Mutex::Lock lock(_mutex); - - if(_destroyed) - { - throw Ice::ObjectNotExistException(__FILE__, __LINE__, c.id, c.facet, c.operation); - } - - this->text = text; -} - -// -// Filesystem::DirectoryI -// - -Freeze::EvictorPtr Filesystem::DirectoryI::_evictor; - -Filesystem::DirectoryI::DirectoryI() : _destroyed(false) -{ -} - -string -Filesystem::DirectoryI::name(const Ice::Current& c) -{ - IceUtil::Mutex::Lock lock(_mutex); - - if(_destroyed) - { - throw Ice::ObjectNotExistException(__FILE__, __LINE__, c.id, c.facet, c.operation); - } - - return nodeName; -} - -void -Filesystem::DirectoryI::destroy(const Ice::Current& c) -{ - if(!parent) - { - throw Filesystem::PermissionDenied("Cannot destroy root directory"); - } - - { - IceUtil::Mutex::Lock lock(_mutex); - - if(_destroyed) - { - throw Ice::ObjectNotExistException(__FILE__, __LINE__, c.id, c.facet, c.operation); - } - if(!nodes.empty()) - { - throw Filesystem::PermissionDenied("Cannot destroy non-empty directory"); - } - _destroyed = true; - } - - // - // Because we use a transactional evictor, these updates are guaranteed to be atomic. - // - parent->removeNode(nodeName); - _evictor->remove(c.id); -} - -Filesystem::NodeDescSeq -Filesystem::DirectoryI::list(const Ice::Current& c) -{ - IceUtil::Mutex::Lock lock(_mutex); - - if(_destroyed) - { - throw Ice::ObjectNotExistException(__FILE__, __LINE__, c.id, c.facet, c.operation); - } - - NodeDict::const_iterator p; - NodeDescSeq result; - for(p = nodes.begin(); p != nodes.end(); ++p) - { - result.push_back(p->second); - } - return result; -} - -Filesystem::NodeDesc -Filesystem::DirectoryI::find(const string& name, const Ice::Current& c) -{ - IceUtil::Mutex::Lock lock(_mutex); - - if(_destroyed) - { - throw Ice::ObjectNotExistException(__FILE__, __LINE__, c.id, c.facet, c.operation); - } - - NodeDict::iterator p = nodes.find(name); - if(p == nodes.end()) - { - throw NoSuchName(name); - } - return p->second; -} - -Filesystem::DirectoryPrx -Filesystem::DirectoryI::createDirectory(const string& name, const Ice::Current& c) -{ - IceUtil::Mutex::Lock lock(_mutex); - - if(_destroyed) - { - throw Ice::ObjectNotExistException(__FILE__, __LINE__, c.id, c.facet, c.operation); - } - - if(name.empty() || nodes.find(name) != nodes.end()) - { - throw NameInUse(name); - } - - Ice::Identity id; - id.name = IceUtil::generateUUID(); - PersistentDirectoryPtr dir = new DirectoryI; - dir->nodeName = name; - dir->parent = PersistentDirectoryPrx::uncheckedCast(c.adapter->createProxy(c.id)); - DirectoryPrx proxy = DirectoryPrx::uncheckedCast(_evictor->add(dir, id)); - - NodeDesc nd; - nd.name = name; - nd.type = DirType; - nd.proxy = proxy; - nodes[name] = nd; - - return proxy; -} - -Filesystem::FilePrx -Filesystem::DirectoryI::createFile(const string& name, const Ice::Current& c) -{ - IceUtil::Mutex::Lock lock(_mutex); - - if(_destroyed) - { - throw Ice::ObjectNotExistException(__FILE__, __LINE__, c.id, c.facet, c.operation); - } - - if(name.empty() || nodes.find(name) != nodes.end()) - { - throw NameInUse(name); - } - - Ice::Identity id; - id.name = IceUtil::generateUUID(); - PersistentFilePtr file = new FileI; - file->nodeName = name; - file->parent = PersistentDirectoryPrx::uncheckedCast(c.adapter->createProxy(c.id)); - FilePrx proxy = FilePrx::uncheckedCast(_evictor->add(file, id)); - - NodeDesc nd; - nd.name = name; - nd.type = FileType; - nd.proxy = proxy; - nodes[name] = nd; - - return proxy; -} - -void -Filesystem::DirectoryI::removeNode(const string& name, const Ice::Current&) -{ - IceUtil::Mutex::Lock lock(_mutex); - - NodeDict::iterator p = nodes.find(name); - assert(p != nodes.end()); - nodes.erase(p); -} - -// -// Filesystem::NodeFactory -// -Ice::ObjectPtr -Filesystem::NodeFactory::create(const string& type) -{ - if(type == PersistentFile::ice_staticId()) - { - return new FileI; - } - else if(type == PersistentDirectory::ice_staticId()) - { - return new DirectoryI; - } - else - { - assert(false); - return 0; - } -} - -void -Filesystem::NodeFactory::destroy() -{ -} |