Sirikata
Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes
Sirikata::AsyncConnectionGet Class Reference

#include <asyncConnectionGet.hpp>

Collaboration diagram for Sirikata::AsyncConnectionGet:

List of all members.

Classes

struct  IndividualQueryData

Public Types

enum  ConnectionState { READY, NEED_NEW_SOCKET, PROCESSING }

Public Member Functions

void initialize (Sirikata::Network::TCPSocket *socket, boost::asio::ip::tcp::resolver::iterator)
AsyncConnectionGet::ConnectionState ready ()
void get (const CraqDataKey &dataToGet, OSegLookupTraceToken *traceToken)
void getBound (const CraqObjectID &obj_dataToGet, OSegLookupTraceToken *traceToken)
 ~AsyncConnectionGet ()
 AsyncConnectionGet (SpaceContext *con, Network::IOStrand *str, Network::IOStrand *error_strand, Network::IOStrand *result_strand, AsyncCraqScheduler *master, CraqObjectSegmentation *oseg, const std::tr1::function< void()> &readyStateChangedCb)
int numStillProcessing ()
void printOutstanding ()
int runReQuery ()
void printStatisticsTimesTaken ()
int getRespCount ()
void setProcessing ()
 indicate that some work has been posted to this connection's strand
void stop ()

Private Types

typedef
std::tr1::unordered_multimap
< std::string,
IndividualQueryData * > 
MultiOutstandingQueries

Private Member Functions

void outputLargeOutstanding ()
bool getQuery (const CraqDataKey &dataToGet)
void queryTimedOutCallbackGet (const boost::system::error_code &e, const std::string &searchFor)
void queryTimedOutCallbackGetPrint (const boost::system::error_code &e, const std::string &searchFor)
void killSequence ()
void processValueNotFound (std::string dataKey)
void processValueFound (std::string dataKey, const CraqEntry &sID)
void processStoredValue (std::string dataKey)
bool parseValueNotFound (std::string response, std::string &dataKey)
bool parseValueValue (std::string response, std::string &dataKey, CraqEntry &sID)
bool parseStoredValue (const std::string &response, std::string &dataKey)
bool processEntireResponse (std::string response)
bool checkStored (std::string &response)
bool checkValue (std::string &response)
bool checkNotFound (std::string &response)
bool checkError (std::string &response)
size_t smallestIndex (std::vector< size_t > sizeVec)
void connect_handler (const boost::system::error_code &error)
void generic_read_stored_not_found_error_handler (const boost::system::error_code &error, std::size_t bytes_transferred, boost::asio::streambuf *sBuff)
void set_generic_stored_not_found_error_handler ()
void read_handler_set (const boost::system::error_code &error, std::size_t bytes_transferred, boost::asio::streambuf *sBuff)
void write_some_handler_set (const boost::system::error_code &error, std::size_t bytes_transferred)
void write_some_handler_get (const boost::system::error_code &error, std::size_t bytes_transferred)
void read_handler_get (const boost::system::error_code &error, std::size_t bytes_transferred, boost::asio::streambuf *sBuff)
void clear_all_deadline_timers ()

Private Attributes

int mAllResponseCount
std::vector< double > mTimesTaken
int mTimesBetweenResults
bool mHandlerState
Sirikata::Network::TCPSocketmSocket
MultiOutstandingQueries allOutstandingQueries
volatile ConnectionState mReady
std::string mPrevReadFrag
SpaceContextctx
Network::IOStrandmStrand
Network::IOStrandmPostErrorsStrand
Network::IOStrandmResultStrand
AsyncCraqSchedulermSchedulerMaster
CraqObjectSegmentationmOSeg
double getTime
int numGets
bool mReceivedStopRequest
std::tr1::function< void()> mReadyStateChangedCallback

Member Typedef Documentation

typedef std::tr1::unordered_multimap<std::string, IndividualQueryData*> Sirikata::AsyncConnectionGet::MultiOutstandingQueries [private]

Member Enumeration Documentation

Enumerator:
READY 
NEED_NEW_SOCKET 
PROCESSING 

Constructor & Destructor Documentation

Sirikata::AsyncConnectionGet::~AsyncConnectionGet ( )
Sirikata::AsyncConnectionGet::AsyncConnectionGet ( SpaceContext con,
Network::IOStrand str,
Network::IOStrand error_strand,
Network::IOStrand result_strand,
AsyncCraqScheduler master,
CraqObjectSegmentation oseg,
const std::tr1::function< void()> &  readyStateChangedCb 
)

References getTime, mReady, NEED_NEW_SOCKET, and numGets.


Member Function Documentation

bool Sirikata::AsyncConnectionGet::checkError ( std::string &  response) [private]
bool Sirikata::AsyncConnectionGet::checkNotFound ( std::string &  response) [private]
bool Sirikata::AsyncConnectionGet::checkStored ( std::string &  response) [private]
bool Sirikata::AsyncConnectionGet::checkValue ( std::string &  response) [private]
void Sirikata::AsyncConnectionGet::clear_all_deadline_timers ( ) [private]

References allOutstandingQueries.

Referenced by stop().

void Sirikata::AsyncConnectionGet::connect_handler ( const boost::system::error_code &  error) [private]
void Sirikata::AsyncConnectionGet::generic_read_stored_not_found_error_handler ( const boost::system::error_code &  error,
std::size_t  bytes_transferred,
boost::asio::streambuf *  sBuff 
) [private]
void Sirikata::AsyncConnectionGet::get ( const CraqDataKey dataToGet,
OSegLookupTraceToken traceToken 
)
void Sirikata::AsyncConnectionGet::getBound ( const CraqObjectID obj_dataToGet,
OSegLookupTraceToken traceToken 
)
bool Sirikata::AsyncConnectionGet::getQuery ( const CraqDataKey dataToGet) [private]
int Sirikata::AsyncConnectionGet::getRespCount ( )

References mAllResponseCount.

void Sirikata::AsyncConnectionGet::initialize ( Sirikata::Network::TCPSocket socket,
boost::asio::ip::tcp::resolver::iterator  it 
)
void Sirikata::AsyncConnectionGet::killSequence ( ) [private]
int Sirikata::AsyncConnectionGet::numStillProcessing ( )

References allOutstandingQueries.

void Sirikata::AsyncConnectionGet::outputLargeOutstanding ( ) [private]
bool Sirikata::AsyncConnectionGet::parseStoredValue ( const std::string &  response,
std::string &  dataKey 
) [private]
bool Sirikata::AsyncConnectionGet::parseValueNotFound ( std::string  response,
std::string &  dataKey 
) [private]
bool Sirikata::AsyncConnectionGet::parseValueValue ( std::string  response,
std::string &  dataKey,
CraqEntry sID 
) [private]
void Sirikata::AsyncConnectionGet::printOutstanding ( )

References allOutstandingQueries.

void Sirikata::AsyncConnectionGet::printStatisticsTimesTaken ( )

References mTimesTaken.

bool Sirikata::AsyncConnectionGet::processEntireResponse ( std::string  response) [private]
void Sirikata::AsyncConnectionGet::processStoredValue ( std::string  dataKey) [private]
void Sirikata::AsyncConnectionGet::processValueFound ( std::string  dataKey,
const CraqEntry sID 
) [private]
void Sirikata::AsyncConnectionGet::processValueNotFound ( std::string  dataKey) [private]
void Sirikata::AsyncConnectionGet::queryTimedOutCallbackGet ( const boost::system::error_code &  e,
const std::string &  searchFor 
) [private]
void Sirikata::AsyncConnectionGet::queryTimedOutCallbackGetPrint ( const boost::system::error_code &  e,
const std::string &  searchFor 
) [private]

References mReceivedStopRequest.

void Sirikata::AsyncConnectionGet::read_handler_get ( const boost::system::error_code &  error,
std::size_t  bytes_transferred,
boost::asio::streambuf *  sBuff 
) [private]
void Sirikata::AsyncConnectionGet::read_handler_set ( const boost::system::error_code &  error,
std::size_t  bytes_transferred,
boost::asio::streambuf *  sBuff 
) [private]
AsyncConnectionGet::ConnectionState Sirikata::AsyncConnectionGet::ready ( )

References mReady.

int Sirikata::AsyncConnectionGet::runReQuery ( )
void Sirikata::AsyncConnectionGet::set_generic_stored_not_found_error_handler ( ) [private]
void Sirikata::AsyncConnectionGet::setProcessing ( )

indicate that some work has been posted to this connection's strand

References mReady, and PROCESSING.

size_t Sirikata::AsyncConnectionGet::smallestIndex ( std::vector< size_t >  sizeVec) [private]
void Sirikata::AsyncConnectionGet::stop ( )
void Sirikata::AsyncConnectionGet::write_some_handler_get ( const boost::system::error_code &  error,
std::size_t  bytes_transferred 
) [private]
void Sirikata::AsyncConnectionGet::write_some_handler_set ( const boost::system::error_code &  error,
std::size_t  bytes_transferred 
) [private]

Member Data Documentation

Referenced by get().

Referenced by AsyncConnectionGet().

Referenced by getRespCount(), and initialize().

std::tr1::function<void()> Sirikata::AsyncConnectionGet::mReadyStateChangedCallback [private]

Referenced by initialize().

std::vector<double> Sirikata::AsyncConnectionGet::mTimesTaken [private]

Referenced by AsyncConnectionGet().


The documentation for this class was generated from the following files: