Files
rippled/modules/ripple_app/misc/ripple_InfoSub.cpp
2013-07-23 18:47:02 -07:00

74 lines
1.9 KiB
C++

//------------------------------------------------------------------------------
/*
Copyright (c) 2011-2013, OpenCoin, Inc.
*/
//==============================================================================
// This is the primary interface into the "client" portion of the program.
// Code that wants to do normal operations on the network such as
// creating and monitoring accounts, creating transactions, and so on
// should use this interface. The RPC code will primarily be a light wrapper
// over this code.
// Eventually, it will check the node's operating mode (synched, unsynched,
// etectera) and defer to the correct means of processing. The current
// code assumes this node is synched (and will continue to do so until
// there's a functional network.
// VFALCO TODO Figure out how to clean up these globals
uint64 InfoSub::sSeq = 0;
boost::mutex InfoSub::sSeqLock;
InfoSub::InfoSub ()
{
boost::mutex::scoped_lock sl (sSeqLock);
mSeq = ++sSeq;
}
InfoSub::~InfoSub ()
{
NetworkOPs& ops = getApp().getOPs ();
ops.unsubTransactions (mSeq);
ops.unsubRTTransactions (mSeq);
ops.unsubLedger (mSeq);
ops.unsubServer (mSeq);
ops.unsubAccount (mSeq, mSubAccountInfo, true);
ops.unsubAccount (mSeq, mSubAccountInfo, false);
}
void InfoSub::send (const Json::Value& jvObj, const std::string& sObj, bool broadcast)
{
send (jvObj, broadcast);
}
uint64 InfoSub::getSeq ()
{
return mSeq;
}
void InfoSub::onSendEmpty ()
{
}
void InfoSub::insertSubAccountInfo (RippleAddress addr, uint32 uLedgerIndex)
{
boost::mutex::scoped_lock sl (mLockInfo);
mSubAccountInfo.insert (addr);
}
void InfoSub::clearPathRequest ()
{
mPathRequest.reset ();
}
void InfoSub::setPathRequest (const boost::shared_ptr<PathRequest>& req)
{
mPathRequest = req;
}
const boost::shared_ptr<PathRequest>& InfoSub::getPathRequest ()
{
return mPathRequest;
}