summaryrefslogtreecommitdiff
path: root/src/repo.h
blob: e6f7d94c11a03625eb734695c5da2078abda57f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#ifndef GITFS_REPO_H
#define GITFS_REPO_H

#include <volume.h>
#include "git.h"

namespace GitFS {
	using namespace NetFS;
	class Repo : public Volume {
		public:
			Repo();

			void disconnect(const ::Ice::Current& current) override;
			DirectoryPrxPtr opendir(ReqEnv env, ::std::string path, const ::Ice::Current& current) override;
			VFS statfs(ReqEnv env, ::std::string path, const ::Ice::Current& current) override;
			int access(ReqEnv env, ::std::string path, int mode, const ::Ice::Current& current) override;
			Attr getattr(ReqEnv env, ::std::string path, const ::Ice::Current& current) override;
			::std::string readlink(ReqEnv env, ::std::string path, const ::Ice::Current& current) override;
			FilePrxPtr open(ReqEnv env, ::std::string path, int flags, const ::Ice::Current& current) override;
			FilePrxPtr create(ReqEnv env, ::std::string path, int flags, int mode, const ::Ice::Current& current) override;
			void truncate(ReqEnv env, ::std::string path, long long int size, const ::Ice::Current& current) override;
			void unlink(ReqEnv env, ::std::string path, const ::Ice::Current& current) override;
			void mkdir(ReqEnv env, ::std::string path, int mode, const ::Ice::Current& current) override;
			void rmdir(ReqEnv env, ::std::string path, const ::Ice::Current& current) override;
			void mknod(ReqEnv env, ::std::string path, int mode, int dev, const ::Ice::Current& current) override;
			void symlink(ReqEnv env, ::std::string path1, ::std::string path2, const ::Ice::Current& current) override;
			void link(ReqEnv env, ::std::string path1, ::std::string path2, const ::Ice::Current& current) override;
			void rename(ReqEnv env, ::std::string from, ::std::string to, const ::Ice::Current& current) override;
			void chmod(ReqEnv env, ::std::string path, int mode, const ::Ice::Current& current) override;
			void chown(ReqEnv env, ::std::string path, int uid, int gid, const ::Ice::Current& current) override;
			void utimens(ReqEnv env, ::std::string path, long long int atime, long long int atimens, long long int mtime, long long int mtimens, const ::Ice::Current& current) override;

		private:
			Git::RepositoryPtr repo;
			Git::CommitPtr commit;
			Git::TreePtr tree;
	};
}

#endif