00001 // @(#)root/proofd:$Id: XrdProofPhyConn.h 29510 2009-07-17 12:04:40Z ganis $ 00002 // Author: G. Ganis June 2005 00003 00004 /************************************************************************* 00005 * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. * 00006 * All rights reserved. * 00007 * * 00008 * For the licensing terms see $ROOTSYS/LICENSE. * 00009 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00010 *************************************************************************/ 00011 00012 #ifndef ROOT_XrdProofPhyConn 00013 #define ROOT_XrdProofPhyConn 00014 00015 00016 ////////////////////////////////////////////////////////////////////////// 00017 // // 00018 // XrdProofPhyConn // 00019 // // 00020 // Authors: G. Ganis, CERN, 2005 // 00021 // // 00022 // XrdProofConn implementation using a simple phycical connection // 00023 // (Unix or Tcp) // 00024 ////////////////////////////////////////////////////////////////////////// 00025 00026 #ifndef ROOT_XrdProofConn 00027 #include "XrdProofConn.h" 00028 #endif 00029 00030 class XrdProofPhyConn : public XrdProofConn { 00031 00032 friend class TXSocket; 00033 friend class TXUnixSocket; 00034 00035 private: 00036 00037 bool fTcp; // TRUE for TCP sockets 00038 00039 void Connect(); 00040 int TryConnect(); 00041 bool GetAccessToSrv(); 00042 bool Init(const char *url); 00043 00044 public: 00045 XrdProofPhyConn(const char *url, int psid = -1, char ver = -1, 00046 XrdClientAbsUnsolMsgHandler *uh = 0, bool tcp = 0); 00047 virtual ~XrdProofPhyConn() { Close(); } 00048 00049 void Close(const char *opt = ""); 00050 00051 // Send, Recv interfaces 00052 int ReadRaw(void *buf, int len); 00053 XrdClientMessage *ReadMsg(); 00054 void SetAsync(XrdClientAbsUnsolMsgHandler *uh, XrdProofConnSender_t = 0, void * = 0); 00055 int WriteRaw(const void *buf, int len); 00056 }; 00057 00058 #endif