Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

/Go4Socket/TGo4Socket.h

Go to the documentation of this file.
00001 //---------------------------------------------------------------
00002 //        Go4 Release Package v2.10-5 (build 21005) 
00003 //                      03-Nov-2005
00004 //---------------------------------------------------------------
00005 //       The GSI Online Offline Object Oriented (Go4) Project
00006 //       Experiment Data Processing at DVEE department, GSI
00007 //---------------------------------------------------------------
00008 //
00009 //Copyright (C) 2000- Gesellschaft f. Schwerionenforschung, GSI
00010 //                    Planckstr. 1, 64291 Darmstadt, Germany
00011 //Contact:            http://go4.gsi.de
00012 //----------------------------------------------------------------
00013 //This software can be used under the license agreements as stated
00014 //in Go4License.txt file which is part of the distribution.
00015 //----------------------------------------------------------------
00016 #ifndef TGO4SOCKET_H
00017 #define TGO4SOCKET_H
00018 
00019 #include "TObject.h"
00020 
00021 class TBuffer;
00022 class TSocket;
00023 class TServerSocket;
00024 class TGo4SocketSignalHandler;
00025 
00026 class TGo4Socket {
00027   public:
00028      TGo4Socket(Bool_t IsClient);
00029      virtual ~TGo4Socket();
00030 
00031      virtual Int_t Open(const char* host, Int_t port, Bool_t keepservsock=kFALSE);
00032      virtual Int_t Close();
00033 
00034      virtual Int_t Send(TObject *obj);
00035      virtual Int_t Send(const char* name);
00036      virtual TObject* Recv(const char* name=0);
00037      virtual Text_t* RecvRaw(const char* name=0);
00038 
00039      Bool_t IsOpen() const { return fbOpen; }
00040 
00041      Bool_t IsClientMode() const { return fbClientMode; }
00042 
00043      Int_t GetPort() const { return fiPort; }
00044 
00050      Int_t SendBuffer(TBuffer* buf);
00051 
00056      Int_t ReceiveBuffer();
00057 
00061      const TBuffer * GetBuffer() const { return fxBuffer; }
00062 
00064      static const Int_t fguOPENWAIT;
00065   
00067      static const Int_t fgiOPENCYCLES;
00068 
00070      static const Int_t fgiBUFLENGTH;
00071 
00073      static const Int_t fgiBUFINITSIZE;
00074 
00076      static const Int_t fgiBUFEXTRASPACE;
00077 
00079      static const Text_t fgcGOON[];   
00080 
00082      static const Int_t fgiISOWNER;
00083 
00084   protected:
00085     TGo4Socket();  // not implemented, only for compiler to avoid calling of default
00086 
00088     void ReallocBuffer(TBuffer* buffer, Int_t oldsize, Int_t newsize);
00089 
00090   private:
00091 
00093     Bool_t fbClientMode;
00094 
00096     Bool_t fbOpen;
00097 
00100     TGo4SocketSignalHandler * fxSignalHandler;  
00101 
00103     TSocket * fxSocket;
00104 
00106     TServerSocket * fxServerSocket;
00107 
00109     Int_t fiPort;
00110 
00111     Text_t* fxLocalBuffer; 
00112 
00115     TBuffer * fxBuffer;
00116 };
00117 
00118 #endif
00119 
00120 //----------------------------END OF GO4 SOURCE FILE ---------------------

Generated on Tue Nov 8 10:56:04 2005 for Go4-v2.10-5 by doxygen1.2.15