RTBKit  0.9
Open-source framework to create real-time ad bidding systems.
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator
Classes | Public Types | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Friends
Datacratic::EndpointBase Struct Reference
Inheritance diagram for Datacratic::EndpointBase:
Datacratic::Epoller Datacratic::AsyncEventSource Datacratic::ActiveEndpoint Datacratic::PassiveEndpoint Datacratic::ActiveEndpointT< SocketTransport > Datacratic::ActiveEndpointT< Transport > Datacratic::PassiveEndpointT< Transport > Datacratic::PassiveEndpointT< SocketTransport > Datacratic::RemoteOutput Datacratic::HttpEndpoint FakeCarbon Datacratic::ChunkedHttpEndpoint Datacratic::HttpMonitor< Handler, Arg > Datacratic::HttpNamedEndpoint RTBKIT::HttpAdServerHttpEndpoint RTBKIT::HttpExchangeConnector DumpingExchangeConnector RTBKIT::GenericExchangeConnector RTBKIT::MockExchangeConnector RTBKIT::RubiconExchangeConnector TestRubiconExchangeConnector

List of all members.

Classes

struct  SPLess

Public Types

typedef boost::function< void(TransportBase *) OnTransportEvent )

Public Member Functions

 EndpointBase (const std::string &name)
void useThisThread ()
void shutdown ()
virtual std::string hostname () const =0
virtual int port () const =0
void sleepUntilIdle () const
int threadsActive () const
virtual void dumpState () const
virtual int numConnections () const
virtual std::map< std::string,
int > 
numConnectionsByHost () const
const std::string & name () const
void makeRealTime (int priority=1)
virtual void spinup (int num_threads, bool synchronous)

Public Attributes

boost::function< bool()> onCheckFinished
OnTransportEvent onTransportOpen
OnTransportEvent onTransportClose

Protected Types

typedef std::set
< std::shared_ptr
< TransportBase >, SPLess
Connections
typedef ACE_Recursive_Thread_Mutex Lock
typedef ACE_Guard< Lock > Guard

Protected Member Functions

bool checkFinished () const
virtual void associateHandler (const std::shared_ptr< TransportBase > &transport)
virtual void closePeer ()=0
virtual void notifyNewTransport (const std::shared_ptr< TransportBase > &transport)
virtual void notifyCloseTransport (const std::shared_ptr< TransportBase > &transport)
virtual void notifyRecycleTransport (const std::shared_ptr< TransportBase > &transport)
virtual void restartPolling (TransportBase *transport)
virtual void startPolling (TransportBase *transport)
virtual void stopPolling (TransportBase *transport)
void doAsync (const std::shared_ptr< TransportBase > &transport, const boost::function< void()> &callback, const char *nameOfCallback)

Protected Attributes

Connections alive
Lock lock
ACE_Semaphore idle
bool modifyIdle

Friends

class TransportBase
class ConnectionHandler
class ConnectorT

Detailed Description

Definition at line 38 of file endpoint.h.


Member Typedef Documentation

typedef boost::function<void (TransportBase *) Datacratic::EndpointBase::OnTransportEvent)

Thing to notify when a connection is closed. Will be called before the normal cleanup.

Definition at line 87 of file endpoint.h.


Member Function Documentation

virtual void Datacratic::EndpointBase::associateHandler ( const std::shared_ptr< TransportBase > &  transport) [inline, protected, virtual]

Factory method to associate a connection with a transport.

Reimplemented in Datacratic::PassiveEndpoint.

Definition at line 112 of file endpoint.h.

bool Datacratic::EndpointBase::checkFinished ( ) const [inline, protected]

Callback to check in the loop if we're finished or not

Definition at line 104 of file endpoint.h.

void Datacratic::EndpointBase::doAsync ( const std::shared_ptr< TransportBase > &  transport,
const boost::function< void()> &  callback,
const char *  nameOfCallback 
) [protected]

Perform the given callback asynchronously (in a worker thread) in the context of the given transport.

void Datacratic::EndpointBase::dumpState ( ) const [virtual]

Dump the state of the endpoint for debugging.

Reimplemented in Datacratic::ActiveEndpoint.

Definition at line 299 of file endpoint.cc.

virtual std::string Datacratic::EndpointBase::hostname ( ) const [pure virtual]

What host are we connected to?

Implemented in Datacratic::ActiveEndpoint, and Datacratic::PassiveEndpoint.

void Datacratic::EndpointBase::makeRealTime ( int  priority = 1)

Set this endpoint up to handle events in realtime.

Definition at line 94 of file endpoint.cc.

void Datacratic::EndpointBase::notifyCloseTransport ( const std::shared_ptr< TransportBase > &  transport) [protected, virtual]

Tell the endpoint that a connection has been closed.

Reimplemented in Datacratic::ActiveEndpoint, and Datacratic::RemoteOutput.

Definition at line 222 of file endpoint.cc.

void Datacratic::EndpointBase::notifyNewTransport ( const std::shared_ptr< TransportBase > &  transport) [protected, virtual]

Tell the endpoint that a connection has been opened.

Reimplemented in Datacratic::ActiveEndpoint.

Definition at line 168 of file endpoint.cc.

void Datacratic::EndpointBase::notifyRecycleTransport ( const std::shared_ptr< TransportBase > &  transport) [protected, virtual]

Tell the endpoint that a connection has been recycled. Default simply forwards to notifyCloseTransport.

Reimplemented in Datacratic::ActiveEndpoint.

Definition at line 265 of file endpoint.cc.

Return the number of connections for this client.

Definition at line 311 of file endpoint.cc.

std::map< std::string, int > Datacratic::EndpointBase::numConnectionsByHost ( ) const [virtual]

Return the number of connections by host.

Definition at line 318 of file endpoint.cc.

virtual int Datacratic::EndpointBase::port ( ) const [pure virtual]

What port are we listening on?

Implemented in Datacratic::ActiveEndpoint, and Datacratic::PassiveEndpoint.

void Datacratic::EndpointBase::restartPolling ( TransportBase transport) [protected, virtual]

Re-enable polling after a transport has had it's one-shot event handler fire.

Definition at line 215 of file endpoint.cc.

Shutdown everything in the bid manager. Opposite of init(). Will implicitly call notifyFinished() and wait for all threads to exit before returning.

Reimplemented in Datacratic::ActiveEndpoint, RTBKIT::HttpExchangeConnector, Datacratic::RemoteOutput, and RTBKIT::GenericExchangeConnector.

Definition at line 102 of file endpoint.cc.

Sleep until there are no active connections.

Definition at line 272 of file endpoint.cc.

void Datacratic::EndpointBase::spinup ( int  num_threads,
bool  synchronous 
) [virtual]

Spin up the threads as part of the initialization. NOTE: make sure that this is only called once; normally it will be done as part of init(). Calling directly is only for advanced use where init() is not called.

Definition at line 60 of file endpoint.cc.

void Datacratic::EndpointBase::startPolling ( TransportBase transport) [protected, virtual]

Add the transport to the set of events to be polled.

Definition at line 201 of file endpoint.cc.

void Datacratic::EndpointBase::stopPolling ( TransportBase transport) [protected, virtual]

Remove the transport from the set of events to be polled.

Definition at line 208 of file endpoint.cc.

Add the current thread to those servicing requests. It will run until the endpoint is finished, either because notifyFinished() is called or because the checkFinished callback returns true and the kick() method is called.

Note that it is only necessary to call this method if it was initialized with threads == 0. Otherwise, there are threads already running.

Definition at line 161 of file endpoint.cc.


Member Data Documentation

Connections Datacratic::EndpointBase::alive [protected]

Set of alive connections. Used to know what connections are outstanding and to keep them alive while they are owned by the endpoint system.

Definition at line 135 of file endpoint.h.

ACE_Semaphore Datacratic::EndpointBase::idle [mutable, protected]

released when there are no active connections

Definition at line 175 of file endpoint.h.

bool Datacratic::EndpointBase::modifyIdle [mutable, protected]

Should the endpoint class manipulate the idle count?

Definition at line 178 of file endpoint.h.

Function that will be called to know if we're finished.

Definition at line 68 of file endpoint.h.


The documentation for this struct was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator