00001 ////////////////////////////////////////////////////////////////////////// 00002 // // 00003 // XrdClientLogConnection // 00004 // // 00005 // Author: Fabrizio Furano (INFN Padova, 2004) // 00006 // Adapted from TXNetFile (root.cern.ch) originally done by // 00007 // Alvise Dorigo, Fabrizio Furano // 00008 // INFN Padova, 2003 // 00009 // // 00010 // Class implementing logical connections // 00011 // // 00012 ////////////////////////////////////////////////////////////////////////// 00013 00014 // $Id: XrdClientLogConnection.hh 22437 2008-03-04 14:35:16Z rdm $ 00015 00016 #ifndef XRD_CLOGCONNECTION_H 00017 #define XRD_CLOGCONNECTION_H 00018 00019 00020 #include "XProtocol/XPtypes.hh" 00021 #include "XrdClient/XrdClientUnsolMsg.hh" 00022 00023 class XrdClientSid; 00024 class XrdClientPhyConnection; 00025 00026 class XrdClientLogConnection: public XrdClientAbsUnsolMsgHandler, 00027 public XrdClientUnsolMsgSender { 00028 private: 00029 XrdClientPhyConnection *fPhyConnection; 00030 00031 // A logical connection has a private streamid 00032 kXR_unt16 fStreamid; 00033 00034 XrdClientSid *fSidManager; 00035 00036 public: 00037 XrdClientLogConnection(XrdClientSid *sidmgr); 00038 virtual ~XrdClientLogConnection(); 00039 00040 inline XrdClientPhyConnection *GetPhyConnection() { 00041 return fPhyConnection; 00042 } 00043 00044 UnsolRespProcResult ProcessUnsolicitedMsg(XrdClientUnsolMsgSender *sender, 00045 XrdClientMessage *unsolmsg); 00046 00047 int ReadRaw(void *buffer, int BufferLength); 00048 00049 inline void SetPhyConnection(XrdClientPhyConnection *PhyConn) { 00050 fPhyConnection = PhyConn; 00051 } 00052 00053 int WriteRaw(const void *buffer, int BufferLength, int substreamid); 00054 00055 inline kXR_unt16 Streamid() { 00056 return fStreamid; 00057 }; 00058 }; 00059 00060 #endif