Raspberry Cloud
CloudFileSystem.h
1 #ifndef _CLOUDFILESYSTEM_H
2 #define _CLOUDFILESYSTEM_H
3 
4 #include <string>
5 #include <set>
6 #include <fstream>
7 #include "ConcreteCache.h"
8 #include "CloudFileSystem.h"
9 #include "logger\Logger.h"
10 #include "cloud\CloudAccessLayer.h"
11 #include "fileModel/FileDescriptor.h"
12 #include "HomeNetworkBehaviour.h"
13 #include "Distributor.h"
14 #include "cloud\CloudAccessLayer.h"
15 #include "networking\HomeNetworkCommunications.h"
16 #include "Cache.h"
17 #include "CloudFileList.h"
18 using namespace std;
19 
20 class Application;
21 
29 private:
30  string fragFolder = "C:\\Users\\krisz\\raspberrycloud\\skeleton\\Program\\temp\\";
31 
36  bool computeOnPi;
37 
41  HomeNetworkBehaviour *homeNetworkBehaviour;
42 
47  Application &application;
48 
52  Distributor distributor;
53 
57  Cache *cache;
58 
59 public:
60 
66  void setComputeOnPi(bool setComputeOnPi);
67 
72  bool getComputeOnPi();
73 
78  CloudFileSystem(Application &application);
79 
84  ~CloudFileSystem();
85 
92  bool addFile(string localFileID, string destinationFileID);
93 
100  string getFile(FileDescriptor fileDescriptor);
101 
107  bool createDirectory(string directoryID);
108 
114  bool deleteFile(FileDescriptor fileDescriptor);
115 
120  void setHomeNetworkBehaviour(HomeNetworkBehaviour *homeNetworkBehaviour);
121 
125  Distributor* getDistributor();
126 
130  CloudAccessLayer* getCloudAccessLayer();
131 
135  HomeNetworkCommunications* getHomeNetworkCommunications();
136 
140  Cache* getCache();
141 
142 
146  list<FileDescriptor*>* getFileTree();
147 
151  CloudFileList* getCloudFileList();
152 
156  bool addToFileTreeByID(FileDescriptor* fileDescriptor);
157 
161  bool delFromFileTreeByID(FileDescriptor* fileDescriptor);
162 
166  FileDescriptor* findByID(FileDescriptor* fileDescriptor);
167 
172  void lock(FileDescriptor fileDescriptor);
173 
178  void unlock(FileDescriptor fileDescriptor);
179 
185  bool isLocked(FileDescriptor fileDescriptor);
186 private:
187  CloudFileList cfl;
188 };
189 
190 #endif //_CLOUDFILESYSTEM_H
Definition: CloudAccessLayer.h:14
Definition: Distributor.h:16
Definition: HomeNetworkCommunications.h:16
Definition: FileDescriptor.h:17
Definition: HomeNetworkBehaviour.h:12
Definition: CloudFileSystem.h:28
Definition: Application.h:15
Definition: CloudFileList.h:9
Definition: Cache.h:8