diff options
Diffstat (limited to 'netfs/fuseDirs.cpp')
-rw-r--r-- | netfs/fuseDirs.cpp | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/netfs/fuseDirs.cpp b/netfs/fuseDirs.cpp deleted file mode 100644 index 28b8363..0000000 --- a/netfs/fuseDirs.cpp +++ /dev/null @@ -1,97 +0,0 @@ -#include "pchFuse.hpp" -#include "fuse.h" -#include "misc.h" - -NetFS::OpenDir::OpenDir(Ice::Int rid, const std::string & p) : - remoteID(rid), - path(p) -{ -} - -int -NetFS::getNextDirID() -{ - LOCK; - while (openDirs.find(++openDirID) != openDirs.end()) ; - return openDirID; -} - -Ice::Int -NetFS::getRemoteIDforDir(int localID) const -{ - LOCK; - OpenDirs::const_iterator i = openDirs.find(localID); - if (i != openDirs.end()) { - return i->second->remoteID; - } - throw NetFSComms::SystemError(EBADF); -} - -int -NetFS::opendir(const char * p, struct fuse_file_info * fi) -{ - try { - Ice::Int remoteID = filesystem->opendir(reqEnv(), p); - fi->fh = getNextDirID(); - LOCK; - openDirs[fi->fh] = new OpenDir(remoteID, p); - return 0; - } - catch (NetFSComms::SystemError & e) { - return -e.syserrno; - } -} - -int -NetFS::releasedir(const char *, struct fuse_file_info * fi) -{ - try { - filesystem->closedir(authtok, getRemoteIDforDir(fi->fh)); - LOCK; - openDirs.erase(fi->fh); - return 0; - } - catch (NetFSComms::SystemError & e) { - return -e.syserrno; - } -} - -int -NetFS::readdir(const char *, void * buf, fuse_fill_dir_t filler, off_t, struct fuse_file_info * fi) -{ - try { - NetFSComms::NameList ds = filesystem->readdir(authtok, getRemoteIDforDir(fi->fh)); - for (NetFSComms::NameList::const_iterator e = ds.begin(); e != ds.end(); e++) { - filler(buf, e->c_str(), NULL, 0); - } - return 0; - } - catch (NetFSComms::SystemError & e) { - return -e.syserrno; - } -} - -int -NetFS::mkdir(const char * p, mode_t m) -{ - try { - filesystem->mkdir(reqEnv(), p, m); - return 0; - } - catch (NetFSComms::SystemError & e) { - return -e.syserrno; - } -} - -int -NetFS::rmdir(const char * p) -{ - try { - filesystem->rmdir(reqEnv(), p); - return 0; - } - catch (NetFSComms::SystemError & e) { - return -e.syserrno; - } -} - |