#include <arpa/inet.h>
#include <getopt.h>
#include <unistd.h>
+#include <string.h>
#define NUM_CL 2
char log_thread_prefix = 'r';
-rpcs *server; // server rpc object
-rpcc *clients[NUM_CL]; // client rpc object
-string dst; //server's ip address
-in_port_t port;
+static rpcs *server; // server rpc object
+static rpcc *clients[NUM_CL]; // client rpc object
+static string dst; //server's ip address
+static in_port_t port;
// server-side handlers. they must be methods of some class
// to simplify rpcs::reg(). a server process can have handlers
}
int srv::handle_bigrep(string &r, const size_t len) {
- r = string((size_t)len, 'x');
+ r = string(len, 'x');
return 0;
}
-srv service;
+static srv service;
void startserver() {
server = new rpcs(port);
VERIFY(((string)m).size()==rpc_protocol::RPC_HEADER_SZ);
int i = 12345;
unsigned long long l = 1223344455L;
+ size_t sz = 101010101;
string s = "hallo....";
m << i;
m << l;
m << s;
+ m << sz;
string b = m;
- VERIFY(b.size() == rpc_protocol::RPC_HEADER_SZ+sizeof(i)+sizeof(l)+s.size()+sizeof(int));
+ VERIFY(b.size() == rpc_protocol::RPC_HEADER_SZ+sizeof(i)+sizeof(l)+s.size()+sizeof(int)+sizeof(uint32_t));
unmarshall un(b, true);
rpc_protocol::request_header rh1;
int i1;
unsigned long long l1;
string s1;
+ size_t sz1;
un >> i1;
un >> l1;
un >> s1;
+ un >> sz1;
VERIFY(un.okdone());
- VERIFY(i1==i && l1==l && s1==s);
+ VERIFY(i1==i && l1==l && s1==s && sz1==sz);
}
void client1(size_t cl) {
// huge RPC
string big(1000000, 'x');
intret = c->call(srv_protocol::_22, rep, big, (string)"z");
+ VERIFY(intret == 0);
VERIFY(rep.size() == 1000001);
cout << " -- huge 1M rpc request .. ok" << endl;