TNetFolder.h

Go to the documentation of this file.
00001 /********************************************************************
00002   TNetFolder.h, M. Schneebeli PSI
00003 
00004   $Id: TNetFolder.h 149 2006-05-31 16:40:34Z chuma $
00005 
00006 ********************************************************************/
00007 
00008 #ifndef TNetFolder_H
00009 #define TNetFolder_H
00010 
00011 #include <RConfig.h>
00012 #if defined( R__VISUAL_CPLUSPLUS )
00013 #   pragma warning( push )
00014 #   pragma warning( disable : 4800 )
00015 #endif // R__VISUAL_CPLUSPLUS
00016 #include "TNamed.h"
00017 #include "TSocket.h"
00018 #include "TCollection.h"
00019 #include "TObjArray.h"
00020 #include "TFolder.h"
00021 #include "TMessage.h"
00022 #if defined( R__VISUAL_CPLUSPLUS )
00023 #   pragma warning( pop )
00024 #endif // R__VISUAL_CPLUSPLUS
00025 
00026 class TNetFolder : public TNamed
00027 {
00028 protected:
00029   TSocket  *fSocket;     // connection to TObjServer server
00030   size_t    fFolder;     // pointer to TFolder object
00031   Bool_t    fReconnect;  // try to reconnect when connection is broken
00032   TString   fHost;       // host of socket connection
00033   Int_t     fPort;       // port of socket connection
00034   
00035 public:
00036   TNetFolder();
00037   TNetFolder( char const *, char const *, TSocket * ,Bool_t reconnect=true);  
00038   virtual ~TNetFolder();
00039   
00040   virtual void        Add( TObject * ) { Error("Add","Not available for TNetFolders"); }
00041   TFolder            *AddFolder( char const *, char const *, TCollection * =0 ) { Error("AddFolder","Not available for TNetFolders"); return NULL; }
00042   virtual void        Browse( TBrowser * ) { Error("Browse","Not available for TNetFolders"); }
00043   virtual void        Clear( Option_t * ="" ) { Error("Clear","Not available for TNetFolders"); }
00044   virtual void        Copy( TObject & ) const { MayNotUse("Copy(TObject &)"); }
00045   virtual char const *FindFullPathName( char const * );
00046   virtual TObject    *FindObject( char const * ) const;
00047   virtual TObject    *FindObject( const TObject* obj ) const { MayNotUse("FindObject"); return NULL; };  
00048   virtual TObject    *FindObjectAny( char const * ) const;  
00049   TObjArray          *GetListOfFolders();
00050   Bool_t              IsFolder() const { return kTRUE; }
00051   virtual Int_t       Occurence( TObject const * );
00052   virtual void        RecursiveRemove( TObject * ) { Error("RecursiveRemove","Not available for TNetFolders"); }
00053   virtual void        Remove( TObject * ) { Error("Remove","Not available for TNetFolders"); }    
00054   void                ExecuteCommand(const char *line);
00055   size_t              GetPointer();
00056   void                GetServerName(char* serverName,int serverNameSize);
00057 
00058 protected:
00059 
00060   void                Reconnect();
00061   Bool_t              Send(const TMessage& mess);
00062   Bool_t              Send(const Char_t* mess, Int_t kind = kMESS_STRING);
00063   Bool_t              Recv(TMessage*& mess);
00064 
00065   ClassDef( TNetFolder, 0 ) // Client for socket connection
00066 };
00067 
00068 #endif   // TNetFolder_H

Roody DOC Version 1.0.1 ---- TRIUMF ----
Contributions: Pierre-Andre Amaudruz - Joe Chuma - Doxygen - Greg King - Konstantin Olchanski - Matthias Schneebeli