-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathShadow_Replica.cpp
More file actions
108 lines (88 loc) · 2.95 KB
/
Copy pathShadow_Replica.cpp
File metadata and controls
108 lines (88 loc) · 2.95 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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include "Shadow_Replica.h"
// JSON RPC part
#include <stdlib.h>
#include "minigfs_client.h"
#include <jsonrpccpp/client/connectors/httpclient.h>
using namespace jsonrpc;
using namespace std;
Shadow_Replica::Shadow_Replica
(std::string arg_host_url, std::string arg_vsID, std::string arg_class_id,
std::string arg_object_id)
: Replica { arg_host_url, arg_vsID, arg_class_id, arg_object_id }
{
std::cout << "Shadow created" << std::endl;
}
Json::Value
Shadow_Replica::CommitAbort
(std::string arg_name, std::string arg_fhandle, std::string arg_chunk_index,
std::string arg_commitorabort)
{
HttpClient httpclient((this->host_url).c_str());
minigfs_Client myClient(httpclient, JSONRPC_CLIENT_V2);
Json::Value myv;
try {
std::cout <<" Line " << __LINE__ << " Inside the Shadow Replica.CommitAbort" << std::endl;
myv = myClient.CommitAbort("CommitAbort", "This is a Directory JSON string!",
arg_chunk_index,
(this->class_id).c_str(), arg_commitorabort, arg_fhandle, arg_name,
(this->host_url).c_str(),
(this->object_id).c_str(), (this->owner_vsID).c_str());
cout << " Result" << myv.toStyledString() << endl;
} catch (JsonRpcException &e) {
cerr << e.what() << endl;
}
return myv;
}
Json::Value
Shadow_Replica::PushChunk2Replica
(std::string arg_name, std::string arg_fhandle, std::string arg_chunk_index, std::string arg_chunk)
{
HttpClient httpclient((this->host_url).c_str());
minigfs_Client myClient(httpclient, JSONRPC_CLIENT_V2);
Json::Value myv;
try {
std::cout <<" Line " << __LINE__ << " Inside the Shadow Replica.PushChunk2Replica" << std::endl;
// std::cout <<arg_name << " "<< arg_fhandle<<" " << arg_chunk_index<<" "<< arg_chunk <<std::endl;
myv = myClient.PushChunk2Replica("PushChunk2Replica", "This is a Directory JSON string!",
arg_chunk,
arg_chunk_index,
(this->class_id).c_str(),
arg_fhandle,
arg_name,
(this->host_url).c_str(),
(this->object_id).c_str(), (this->owner_vsID).c_str());
//std::cout << "Line 62 myv"<< std::endl;
// cout << "AAA" << myv.toStyledString() << endl;
}
catch (JsonRpcException &e) {
std::cout << "Line " << __LINE__ << " Catch" << std::endl;
cerr << e.what() << endl;
}
return myv;
}
Json::Value *
Shadow_Replica::dumpJ
()
{
HttpClient httpclient((this->host_url).c_str());
minigfs_Client myClient(httpclient, JSONRPC_CLIENT_V2);
Json::Value myv;
try {
std::cout << "calling NFS dumpJ SHD" << std::endl;
myv = myClient.dumpJ("dumpJ", "This is a Directory JSON string!",
(this->class_id).c_str(), (this->host_url).c_str(),
(this->object_id).c_str(), (this->owner_vsID).c_str());
cout << myv.toStyledString() << endl;
} catch (JsonRpcException &e) {
cerr << e.what() << endl;
}
Json::Value *myv_ptr = new Json::Value();
(*myv_ptr) = myv;
return myv_ptr;
}
bool
Shadow_Replica::Jdump
(Json::Value *mjv_ptr)
{
return false;
}