MKCommModel
MKRequest.h
00001 #ifndef MKREQUEST_H
00002 #define MKREQUEST_H
00003 
00004 #define MKREQUEST_CACHE_SIZE 256
00005 #define MKREQUEST_TIMEOUT 750000
00006 
00007 #include <sys/time.h>
00008 
00009 #include "include/bson/bson.h"
00010 
00011 #include "MKNode.h"
00012 
00013 class MKRequest {
00014 public:
00015 
00016         friend class MKCommModelTests;
00017 
00018         enum { kLatency, kTraceRoute };
00019 
00020         MKNode *from, *to;
00021 
00022         ~MKRequest();
00023 
00024         int id() { return requestID; }
00025         void send();
00026         int type() { return requestType; }
00027 
00028 
00032         static MKRequest *latency(MKNode *from, MKNode *to);
00033         static MKRequest *route(MKNode *from, MKNode *to);
00034         static MKRequest *cache(int id);
00035         static void reset();
00036 
00037 
00038 private:
00039 
00040         int requestID;
00041         mongo::BSONObj *bData;
00042         int requestType;
00043         timeval time;
00044         bool sent;
00045 
00046         static unsigned char lastID;
00047         static MKRequest *reqCache[MKREQUEST_CACHE_SIZE];
00048         static MKRequest *lastLatency, *lastTraceRoute;
00049 
00050         MKRequest(int reqType, mongo::BSONObj *data, MKNode *from, MKNode *to);
00051 
00052 };
00053 
00054 #endif
 All Classes Functions Variables