library: libNetx #include "TXConnectionMgr.h" |
TXConnectionMgr
class description - source file - inheritance tree (.pdf)
class TXConnectionMgr : public TXAbsUnsolicitedMsgHandler, public TXUnsolicitedMsgSender
private:
virtual Bool_t ProcessUnsolicitedMsg(TXUnsolicitedMsgSender* sender, TXMessage* unsolmsg)
void RemoveLogConn(TXLogConnection*)
void RemovePhyConn(TXPhyConnection*)
protected:
void GarbageCollect()
public:
TXConnectionMgr()
TXConnectionMgr(const TXConnectionMgr&)
virtual ~TXConnectionMgr()
static TClass* Class()
Short_t Connect(TString RemoteAddress, Int_t TcpPort, Int_t TcpWindowSize)
void Disconnect(Short_t LogConnectionID, Bool_t ForcePhysicalDisc)
TXLogConnection* GetConnection(Short_t LogConnectionID)
short GetPhyConnectionRefCount(TXPhyConnection* PhyConn)
void Init()
virtual TClass* IsA() const
TXConnectionMgr& operator=(const TXConnectionMgr&)
TXMessage* ReadMsg(Short_t LogConnectionID, ESendRecvOptions opt = kDefault)
Int_t ReadRaw(Short_t LogConnectionID, void* buffer, Int_t BufferLength, ESendRecvOptions opt = kDefault)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Bool_t ThreadKilled() const
Int_t WriteRaw(Short_t LogConnectionID, const void* buffer, Int_t BufferLength, ESendRecvOptions opt = kDefault)
private:
Bool_t fInitialized
vector<TXLogConnection*> fLogVec
vector<TXPhyConnection*> fPhyVec
TMutex* fMutex mutex used to protect local variables
TThread* fThreadHandler
Bool_t fThreadKilled
TXConnectionMgr()
TXConnectionMgr constructor.
Used only to create the static instance when loading libNetx.
void Init()
Full initialization of the TXConnectionMgr instance.
Creates a Connection Manager object.
Starts the garbage collector thread, if requested
~TXConnectionMgr()
Deletes mutex locks, stops garbage collector thread.
void GarbageCollect()
Get rid of unused physical connections. 'Unused' means not used for a
TTL time from any logical one. The TTL depends on the kind of remote
server. For a load balancer the TTL is very high, while for a data server
is quite small.
void Disconnect(short int LogConnectionID,
Bool_t ForcePhysicalDisc)
Deletes a logical connection.
Also deletes the related physical one if ForcePhysicalDisc=TRUE.
Int_t ReadRaw(short int LogConnectionID, void *buffer,
Int_t BufferLength, ESendRecvOptions opt)
Read BufferLength bytes from the logical connection LogConnectionID
TXMessage* ReadMsg(short int LogConnectionID,
ESendRecvOptions opt)
Int_t WriteRaw(short int LogConnectionID, const void *buffer,
Int_t BufferLength, ESendRecvOptions opt)
Write BufferLength bytes into the logical connection LogConnectionID
TXLogConnection* GetConnection(short int LogConnectionID)
Return a logical connection object that has LogConnectionID as its ID.
Bool_t ProcessUnsolicitedMsg(TXUnsolicitedMsgSender *sender,
TXMessage *unsolmsg)
We are here if an unsolicited response comes from a physical connection
The response comes in the form of an TXMessage *, that must NOT be
destroyed after processing. It is destroyed by the first sender.
Remember that we are in a separate thread, since unsolicited responses
are asynchronous by nature.
void RemoveLogConn(TXLogConnection *logc)
Remove logc from the list of logical connections
void RemovePhyConn(TXPhyConnection *phyc)
Remove phyc from the list of physical connections
Inline Functions
Short_t Connect(TString RemoteAddress, Int_t TcpPort, Int_t TcpWindowSize)
short GetPhyConnectionRefCount(TXPhyConnection* PhyConn)
Bool_t ThreadKilled() const
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
TXConnectionMgr TXConnectionMgr(const TXConnectionMgr&)
TXConnectionMgr& operator=(const TXConnectionMgr&)
Author: Alvise Dorigo, Fabrizio Furano
Last update: root/netx:$Name: $:$Id: TXConnectionMgr.cxx,v 1.4 2004/12/16 19:23:18 rdm Exp $
Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.