summaryrefslogtreecommitdiff
path: root/netfs/fuse.h
diff options
context:
space:
mode:
authorrandomdan <randomdan@localhost>2010-10-27 18:26:09 +0000
committerrandomdan <randomdan@localhost>2010-10-27 18:26:09 +0000
commite12ba0dffeac81845dbac902ac6e467c59e5b0fc (patch)
treee8dab40584b827d35dadb2594fef20cfe46aebaa /netfs/fuse.h
parentStore the fuse config and initialise the Ice proxies as needed (diff)
downloadnetfs-e12ba0dffeac81845dbac902ac6e467c59e5b0fc.tar.bz2
netfs-e12ba0dffeac81845dbac902ac6e467c59e5b0fc.tar.xz
netfs-e12ba0dffeac81845dbac902ac6e467c59e5b0fc.zip
Merge all FS operations into one interface
Add missing utimens support Change effective user when performing (most) operations Refactor FUSE client to get remaining base code into base file Transmit user and group names, not numbers Load a cache of users and groups Custom error handling in derived FUSE class Reconnect and retry on AuthError Define 64bit offset on client and server to support huge files Fix a few instances where the export path wasn't prefixed to the request path
Diffstat (limited to 'netfs/fuse.h')
-rw-r--r--netfs/fuse.h19
1 files changed, 9 insertions, 10 deletions
diff --git a/netfs/fuse.h b/netfs/fuse.h
index a4e6335..b890838 100644
--- a/netfs/fuse.h
+++ b/netfs/fuse.h
@@ -5,18 +5,16 @@
#include "netfsComms.h"
#include "fuseapp.h"
#include "fuseConfig.h"
+#include "entCache.h"
class NetFS : public FuseAppBase
{
public:
class ReqEnv : public NetFSComms::ReqEnv {
public:
- ReqEnv(Ice::Long at);
- private:
- static std::map<uid_t, std::string> uidcache;
- static std::map<gid_t, std::string> gidcache;
- static void makeugidCache();
+ ReqEnv(const NetFS *);
};
+
NetFS(int & argc, char ** argv);
~NetFS();
private:
@@ -33,6 +31,7 @@ class NetFS : public FuseAppBase
int rename(const char *, const char *);
int symlink(const char *, const char *);
int unlink(const char *);
+ int utimens(const char *, const struct timespec tv[2]);
// dirs
int opendir(const char * p, struct fuse_file_info * fi);
int releasedir(const char *, struct fuse_file_info * fi);
@@ -50,6 +49,7 @@ class NetFS : public FuseAppBase
// fs
int statfs(const char *, struct statvfs *);
// stuff
+ int onError(const std::exception & err) const throw();
ReqEnv reqEnv();
@@ -58,17 +58,16 @@ class NetFS : public FuseAppBase
Ice::CommunicatorPtr ic;
FuseConfigPtr fc;
- NetFSComms::FilesPrx files;
- NetFSComms::DirsPrx dirs;
- NetFSComms::MiscPrx misc;
- NetFSComms::SystemPrx system;
+ NetFSComms::FileSystemPrx filesystem;
NetFSComms::ServicePrx service;
- Ice::Long authtok;
+ mutable Ice::Long authtok;
std::string mountPoint;
std::string exportName;
std::string configPath;
+
+ EntCache entries;
};
#endif