getting ready for some benchmarks

This commit is contained in:
Philipp Moritz
2016-02-10 12:12:19 -08:00
parent 5d51bd1bfa
commit fdbc30f0d7
7 changed files with 126 additions and 23 deletions
+36 -2
View File
@@ -1,9 +1,15 @@
#include <iostream>
#include <memory>
#include <string>
#include <thread>
#include <grpc++/grpc++.h>
using grpc::Server;
using grpc::ServerBuilder;
using grpc::ServerContext;
using grpc::Status;
#include "orchestra.grpc.pb.h"
#include "orchlib.h"
@@ -16,7 +22,7 @@ class Client {
Client(std::shared_ptr<Channel> channel)
: stub_(Orchestra::NewStub(channel)) {}
void RemoteCall(const std::string& name) {
size_t RemoteCall(const std::string& name) {
RemoteCallRequest request;
request.set_name(name);
@@ -25,6 +31,14 @@ class Client {
Status status = stub_->RemoteCall(&context, request, &reply);
return reply.result();
}
void RegisterWorker() {
RegisterWorkerRequest request;
RegisterWorkerReply reply;
ClientContext context;
Status status = stub_->RegisterWorker(&context, request, &reply);
return;
}
@@ -32,14 +46,34 @@ class Client {
std::unique_ptr<Orchestra::Stub> stub_;
};
class WorkerServiceImpl final : public Worker::Service {
Status InvokeCall(ServerContext* context, const InvokeCallRequest* request,
InvokeCallReply* reply) override {
std::cout << "invoke call request" << std::endl;
return Status::OK;
}
};
void start_server() {
std::string server_address("0.0.0.0:50053");
WorkerServiceImpl service;
ServerBuilder builder;
builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());
builder.RegisterService(&service);
std::unique_ptr<Server> server(builder.BuildAndStart());
std::cout << "Server listening on " << server_address << std::endl;
server->Wait();
}
void* orch_create_context(const char* server_addr) {
Client* client = new Client(grpc::CreateChannel("localhost:50052", grpc::InsecureChannelCredentials()));
client->RegisterWorker();
return client;
}
size_t orch_remote_call(void* context, const char* name, void* args) {
Client* client = (Client*)context;
client->RemoteCall(std::string(name));
return client->RemoteCall(std::string(name));
}
int main(int argc, char** argv) {