From e3631d02f7fac2081f6a0beb098c24de091afb47 Mon Sep 17 00:00:00 2001 From: Naveen Kumar Sharma <naveenks@cs.washington.edu> Date: Mon, 22 Feb 2016 21:13:40 -0800 Subject: [PATCH] Adding timeserver to Makefile, and fixing compilation issues --- Makefile | 5 +- timeserver/timeserver.cc | 122 +++++++++++++++++++-------------------- timeserver/timeserver.h | 13 +++-- 3 files changed, 69 insertions(+), 71 deletions(-) diff --git a/Makefile b/Makefile index 8a4e96e..7b4eda1 100644 --- a/Makefile +++ b/Makefile @@ -7,8 +7,8 @@ CXX = g++ LD = g++ EXPAND = lib/tmpl/expand -#CFLAGS := -g -Wall -pthread -iquote.obj/gen -Wno-uninitialized -O2 -DNASSERT -CFLAGS := -g -Wall -pthread -iquote.obj/gen -Wno-uninitialized +CFLAGS := -g -Wall -pthread -iquote.obj/gen -Wno-uninitialized -O2 -DNASSERT +#CFLAGS := -g -Wall -pthread -iquote.obj/gen -Wno-uninitialized CXXFLAGS := -g -std=c++0x LDFLAGS := -levent_pthreads ## Debian package: check @@ -131,6 +131,7 @@ include store/strongstore/Rules.mk include store/weakstore/Rules.mk include store/benchmark/Rules.mk include lockserver/Rules.mk +include timeserver/Rules.mk include libtapir/Rules.mk ################################################################## # General rules diff --git a/timeserver/timeserver.cc b/timeserver/timeserver.cc index a5d2aba..00b9717 100644 --- a/timeserver/timeserver.cc +++ b/timeserver/timeserver.cc @@ -28,81 +28,77 @@ TimeStampServer::ReplicaUpcall(opnum_t opnum, string &str2) { Debug("Received Upcall: %lu, %s", opnum, str1.c_str()); + // Get a new timestamp from the TimeStampServer str2 = newTimeStamp(); } -static void Usage(const char *progName) +static void +Usage(const char *progName) { - fprintf(stderr, "usage: %s -c conf-file -i replica-index\n", - progName); + fprintf(stderr, "usage: %s -c conf-file -i replica-index\n", progName); exit(1); } int main(int argc, char **argv) { - int index = -1; - const char *configPath = NULL; - - // Parse arguments - int opt; - while ((opt = getopt(argc, argv, "c:i:")) != -1) { - switch (opt) { - case 'c': - configPath = optarg; - break; - - case 'i': - { - char *strtolPtr; - index = strtoul(optarg, &strtolPtr, 10); - if ((*optarg == '\0') || (*strtolPtr != '\0') || (index < 0)) - { - fprintf(stderr, - "option -i requires a numeric arg\n"); - Usage(argv[0]); - } - break; + int index = -1; + const char *configPath = NULL; + char *strtolPtr; + + // Parse arguments + int opt; + while ((opt = getopt(argc, argv, "c:i:")) != -1) { + switch (opt) { + case 'c': + configPath = optarg; + break; + + case 'i': + index = strtoul(optarg, &strtolPtr, 10); + if ((*optarg == '\0') || (*strtolPtr != '\0') || (index < 0)) { + fprintf(stderr, "option -i requires a numeric arg\n"); + Usage(argv[0]); + } + break; + + default: + fprintf(stderr, "Unknown argument %s\n", argv[optind]); + break; } + } + + if (!configPath) { + fprintf(stderr, "option -c is required\n"); + Usage(argv[0]); + } + + if (index == -1) { + fprintf(stderr, "option -i is required\n"); + Usage(argv[0]); + } - default: - fprintf(stderr, "Unknown argument %s\n", argv[optind]); - break; + // Load configuration + std::ifstream configStream(configPath); + if (configStream.fail()) { + fprintf(stderr, "unable to read configuration file: %s\n", configPath); + Usage(argv[0]); } - } - - if (!configPath) { - fprintf(stderr, "option -c is required\n"); - Usage(argv[0]); - } - - if (index == -1) { - fprintf(stderr, "option -i is required\n"); - Usage(argv[0]); - } - - // Load configuration - std::ifstream configStream(configPath); - if (configStream.fail()) { - fprintf(stderr, "unable to read configuration file: %s\n", - configPath); - Usage(argv[0]); - } - specpaxos::Configuration config(configStream); - - if (index >= config.n) { - fprintf(stderr, "replica index %d is out of bounds; " - "only %d replicas defined\n", index, config.n); - Usage(argv[0]); - } - - UDPTransport transport(0.0, 0.0, 0); - - TimeStampServer server; - specpaxos::vr::VRReplica replica(config, index, &transport, 1, &server); - - transport.Run(); - - return 0; + transport::Configuration config(configStream); + + if (index >= config.n) { + fprintf(stderr, "replica index %d is out of bounds; " + "only %d replicas defined\n", index, config.n); + Usage(argv[0]); + } + + UDPTransport transport(0.0, 0.0, 0); + + TimeStampServer server; + replication::vr::VRReplica replica(config, index, &transport, 1, &server); + + transport.Run(); + + return 0; } diff --git a/timeserver/timeserver.h b/timeserver/timeserver.h index a868767..10ad2a3 100644 --- a/timeserver/timeserver.h +++ b/timeserver/timeserver.h @@ -9,25 +9,26 @@ #ifndef _TIME_SERVER_H_ #define _TIME_SERVER_H_ -#include "paxos-lib/lib/configuration.h" -#include "paxos-lib/common/replica.h" -#include "paxos-lib/lib/udptransport.h" -#include "paxos-lib/vr/replica.h" +#include "lib/configuration.h" +#include "replication/common/replica.h" +#include "lib/udptransport.h" +#include "replication/vr/replica.h" #include <string> using namespace std; -class TimeStampServer : public specpaxos::AppReplica +class TimeStampServer : public replication::AppReplica { public: TimeStampServer(); ~TimeStampServer(); void ReplicaUpcall(opnum_t opnum, const string &str1, string &str2); + private: long ts; string newTimeStamp(); - }; + #endif /* _TIME_SERVER_H_ */ -- GitLab