RTBKit
0.9
Open-source framework to create real-time ad bidding systems.
|
00001 #include "boost/algorithm/string.hpp" 00002 #include "jml/arch/format.h" 00003 #include "soa/jsoncpp/value.h" 00004 #include "rtbkit/core/monitor/monitor_provider.h" 00005 00006 #define CURRENT_METHOD(x) \ 00007 ( std::string(#x) + "::" + std::string(__FUNCTION__) ) 00008 00009 namespace RTBKIT { 00010 00011 struct MockMonitorProvider 00012 : public MonitorProvider 00013 { 00014 MockMonitorProvider() 00015 : providerName_("mock-provider"), status_(false), delay_(0) 00016 { 00017 } 00018 00019 std::string getProviderName() 00020 const 00021 { 00022 return providerName_; 00023 } 00024 00025 Json::Value getProviderIndicators() 00026 const 00027 { 00028 using namespace std; 00029 if (delay_) { 00030 cerr << ML::format("%s: sleeping for %d seconds\n", 00031 CURRENT_METHOD(MockMonitorProvider), 00032 delay_); 00033 ML::sleep(delay_); 00034 } 00035 00036 Json::Value value(Json::objectValue); 00037 00038 value["status"] = (status_ ? "ok" : "failure"); 00039 00040 cerr << ML::format("%s: returning %s\n", 00041 CURRENT_METHOD(MockMonitorProvider), 00042 boost::trim_copy(value.toString())); 00043 00044 return value; 00045 } 00046 00047 std::string providerName_; 00048 bool status_; 00049 int delay_; 00050 }; 00051 00052 }