From 50d40115e5f6415c7ebeb3ff524cbd58d3a2d80f Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Mon, 29 Apr 2013 20:27:08 -0700 Subject: [PATCH] Updates. --- src/cpp/ripple/PFRequest.cpp | 21 +++++++++++++++++++++ src/cpp/ripple/PFRequest.h | 24 +++++++++++++++++++----- 2 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 src/cpp/ripple/PFRequest.cpp diff --git a/src/cpp/ripple/PFRequest.cpp b/src/cpp/ripple/PFRequest.cpp new file mode 100644 index 000000000..3ba35bda5 --- /dev/null +++ b/src/cpp/ripple/PFRequest.cpp @@ -0,0 +1,21 @@ +#include "PFRequest.h" + +#include "NetworkOPs.h" + +PFRequest::PFRequest(const boost::shared_ptr& subscriber, Json::Value request) : + wpSubscriber(subscriber), jvStatus(Json::objectValue), bValid(false) +{ + if (parseJson(request) == PFR_PJ_COMPLETE) + bValid = true; +} + +bool PFRequest::isValid() +{ + boost::recursive_mutex::scoped_lock sl(mLock); + return bValid; +} + +int PFRequest::parseJson(const Json::Value& jvParams) +{ + return 0; +} diff --git a/src/cpp/ripple/PFRequest.h b/src/cpp/ripple/PFRequest.h index 9c0f4d0b0..96a187b1c 100644 --- a/src/cpp/ripple/PFRequest.h +++ b/src/cpp/ripple/PFRequest.h @@ -21,6 +21,12 @@ class Ledger; class InfoSub; class STAmount; +// Return values from parseJson +#define PFR_PJ_COMPLETE 0 +#define PFR_PJ_NOCHANGE 1 +#define PFR_PJ_CHANGE 2 +#define PFR_PJ_INVALID 3 + class PFRequest { public: @@ -31,6 +37,7 @@ public: protected: + boost::recursive_mutex mLock; boost::weak_ptr wpSubscriber; // Who this request came from Json::Value jvStatus; // Last result @@ -41,19 +48,26 @@ protected: std::set sciSourceCurrencies; std::vector vjvBridges; + bool bValid; + // Track all requests static std::set sRequests; static boost::recursive_mutex sLock; + int parseJson(const Json::Value&); + public: PFRequest(const boost::shared_ptr& subscriber, Json::Value request); - ~PFRequest(); - Json::Value create(const Json::Value&); - Json::Value close(const Json::Value&); - Json::Value status(const Json::Value&); - void update(); + bool isValid(); + Json::Value getStatus(); + + Json::Value doCreate(const Json::Value&); + Json::Value doClose(const Json::Value&); + Json::Value doStatus(const Json::Value&); + + void doUpdate(); static void updateAll(const boost::shared_ptr &); };