-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathm_mdm.h
More file actions
83 lines (62 loc) · 2.25 KB
/
m_mdm.h
File metadata and controls
83 lines (62 loc) · 2.25 KB
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include "cache_manager.h"
#include "meta_data_manager_services.grpc.pb.h"
using grpc::Channel;
using grpc::ClientContext;
using grpc::ClientReader;
using grpc::ClientReaderWriter;
using grpc::ClientWriter;
using grpc::Status;
using grpc::Server;
using grpc::ServerBuilder;
using grpc::ServerContext;
using grpc::Status;
using MetaDataManager::FileAccessRequest;
using MetaDataManager::FileAccessResponse;
using MetaDataManager::MetaDataManagerService;
using MetaDataManager::RegisterServiceRequest;
using MetaDataManager::RegisterServiceResponse;
using MetaDataManager::UpdateLastModifiedServiceRequest;
using MetaDataManager::UpdateLastModifiedServiceResponse;
using ClientServer::FilePermissionRevokeRequest;
using ClientServer::FilePermissionRevokeResponse;
using ClientServer::ClientServerService;
struct mm_permission{
uint32_t start_byte;
uint32_t end_byte;
char access_type;
string client_ipaddr_port;
};
mutex fileListLock;
mutex mut_client_list;
typedef struct file_list_{
pthread_mutex_t fileLock;
string name;
uint32_t fileID;
uint32_t size;
long int creation_time;
long int modification_time;
uint32_t stripe_width;
vector<mm_permission> access_permissions;
vector <string> server_name;
}file_list_t;
vector<file_list_t> fileList;
class revoke_client {
private:
std::unique_ptr<ClientServerService::Stub> stub_;
public:
revoke_client(std::shared_ptr<Channel> channel): stub_(ClientServerService::NewStub(channel)){};
revoke_access_response_t* send_revoke_request (revoke_access_request_t *c_req);
};
class meta_data_manager {
public:
vector<string> server_list;
map<string,revoke_client*> client_connection;
//map<string,vector<string>> file_to_server_dist_map;
//map<string,vector<permission_info>> map_file_to_server_dist;
//map<string,string> token_to_client_map; /* will fetch clinet info */
mutex mut_server_list;
//mutex mut_file_to_server_dist_map;
//bool add_server_to_file_to_server_dist_map(string file_name, string server);
bool add_server_to_server_list(string server) ;
};
extern meta_data_manager *m_m;