library: libNetx #include "TXPhyConnection.h" | 
TXPhyConnection
class description - source file - inheritance tree (.pdf)
class TXPhyConnection : public TXUnsolicitedMsgSender
    private:
      void HandleUnsolicited(TXMessage* m)
    public:
                       TXPhyConnection(TXAbsUnsolicitedMsgHandler* h)
                       TXPhyConnection(const TXPhyConnection&)
               virtual ~TXPhyConnection()
            TXMessage* BuildXMessage(ESendRecvOptions opt, Bool_t IgnoreTimeouts, Bool_t Enqueue)
                  void CheckAutoTerm()
        static TClass* Class()
                Bool_t Connect(TString TcpAddress, Int_t TcpPort, Int_t TcpWindowSize)
                  void Disconnect()
                Bool_t ExpiredTTL()
                UInt_t GetBytesRecv()
                UInt_t GetBytesSent()
                UInt_t GetSocketBytesRecv()
                UInt_t GetSocketBytesSent()
                Long_t GetTTL() const
       virtual TClass* IsA() const
                Bool_t IsAddress(TString& addr)
           ELoginState IsLogged() const
                Bool_t IsPort(Int_t port) const
                Bool_t IsValid() const
                  void LockChannel()
      TXPhyConnection& operator=(const TXPhyConnection&)
                  void ReaderStarted()
                Bool_t ReaderThreadKilled() const
                 Int_t ReadRaw(void* buffer, Int_t BufferLength, ESendRecvOptions opt = kDefault)
            TXMessage* ReadXMessage(Int_t streamid)
                Bool_t ReConnect(TString TcpAddress, Int_t TcpPort, Int_t TcpWindowSize)
              TSocket* SaveSocket()
                  void SetLogged(ELoginState status)
                  void SetTTL(Long_t ttl)
          virtual void ShowMembers(TMemberInspector& insp, char* parent)
                  void StartReader()
          virtual void Streamer(TBuffer& b)
                  void StreamerNVirtual(TBuffer& b)
                  void Touch()
                  void UnlockChannel()
                 Int_t WriteRaw(const void* buffer, Int_t BufferLength, ESendRecvOptions opt = kDefault)
    private:
             time_t fLastUseTimestamp     
        ELoginState fLogged               only 1 login/auth is needed for physical
      TXInputBuffer fMsgQ                 The queue used to hold incoming messages
              Int_t fRequestTimeout       
            TMutex* fRwMutex              Lock before using the physical channel
            TMutex* fMutex                
           TThread* fReaderthreadhandler  The thread which is going to pump
             Bool_t fReaderthreadrunning  
             Bool_t fReaderthreadkilled   
            TString fRemoteAddress        
              Int_t fRemotePort           
          TXSocket* fSocket               
        TCondition* fReaderCV             
    public:
      ERemoteServer fServer  
             Long_t fTTLsec  
                                                                      
 TXPhyConnection                                                      
                                                                      
 Class handling physical connections to xrootd servers.               
                                                                      
 TXPhyConnection(TXAbsUnsolicitedMsgHandler *h)
 Constructor
 ~TXPhyConnection()
 Destructor
Bool_t Connect(TString TcpAddress, Int_t TcpPort,
                                Int_t TcpWindowSize)
 Connect to remote server
void StartReader()
 Start reader thread
void ReaderStarted()
 Called inside SocketReaderThread to flag the running status
 of the thread
Bool_t ReConnect(TString TcpAddress, Int_t TcpPort,
                                  Int_t TcpWindowSize)
 Re-connection attempt
TSocket* SaveSocket()
 Return copy of the TSocket part of the existing socket
 Used to save an open connection to rootd daemons
void Disconnect()
 Terminate connection
void Touch()
 Set last-use-time to present time
Int_t ReadRaw(void *buf, Int_t len, ESendRecvOptions opt)
 Receive 'len' bytes from the connected server and store them in 'buf'.
 Return number of bytes received.
TXMessage* ReadXMessage(Int_t streamid)
 Gets a full loaded TXMessage from this phyconn.
 May be a pure msg pick from a queue
TXMessage* BuildXMessage(ESendRecvOptions opt,
                                          Bool_t IgnoreTimeouts, Bool_t Enqueue)
 Builds an TXMessage, and makes it read its header/data from the socket
 Also put automatically the msg into the queue
void CheckAutoTerm()
 Check if auto-termination is needed
void HandleUnsolicited(TXMessage *m)
 Local processing of unsolicited responses is done here
Int_t WriteRaw(const void *buf, Int_t len, ESendRecvOptions opt)
 Send 'len' bytes located at 'buf' to the connected server.
 Return number of bytes sent.
UInt_t GetBytesSent()
 Return number of bytes sent
UInt_t GetBytesRecv()
 Return number of bytes received
UInt_t GetSocketBytesSent()
 Return number of bytes sent
UInt_t GetSocketBytesRecv()
 Return number of bytes received
Bool_t ExpiredTTL()
 Check expiration time
void LockChannel()
 Lock
void UnlockChannel()
 Unlock
Inline Functions
                  Long_t GetTTL() const
                  Bool_t IsAddress(TString& addr)
                  Bool_t ReaderThreadKilled() const
             ELoginState IsLogged() const
                  Bool_t IsPort(Int_t port) const
                  Bool_t IsValid() const
                    void SetLogged(ELoginState status)
                    void SetTTL(Long_t ttl)
                 TClass* Class()
                 TClass* IsA() const
                    void ShowMembers(TMemberInspector& insp, char* parent)
                    void Streamer(TBuffer& b)
                    void StreamerNVirtual(TBuffer& b)
         TXPhyConnection TXPhyConnection(const TXPhyConnection&)
        TXPhyConnection& operator=(const TXPhyConnection&)
Author: Alvise Dorigo, Fabrizio Furano
Last update: root/netx:$Name:  $:$Id: TXPhyConnection.cxx,v 1.6 2005/01/05 01:55:13 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.