library: libRFIO #include "TCastorFile.h"

# TCastorFile

class description - source file - inheritance tree (.pdf)

## class TCastorFile : public TNetFile

| Inheritance Chart:
`TObject`
| <- | `TNamed`
| <- | `TDirectory`
| <- | `TFile`
| <- | `TNetFile`
| <- | `TCastorFile` |

        private:

           virtual void ConnectServer(Int_t* stat, EMessageTypes* kind, Int_t netopt, Int_t tcpwindowsize, Bool_t forceOpen, Bool_t forceRead)
                   void FindServerAndPath()
          virtual Int_t SysClose(Int_t fd)

        public:

                          TCastorFile(const char* url, Option_t* option = "", const char* ftitle = "", Int_t compress = 1, Int_t netopt = 0)
                          TCastorFile()
                  virtual ~TCastorFile()
           static TClass* Class()
          virtual TClass* IsA() const
             virtual void ShowMembers(TMemberInspector& insp, char* parent)
             virtual void Streamer(TBuffer& b)
                     void StreamerNVirtual(TBuffer& b)
           virtual Bool_t WriteBuffer(const char* buf, Int_t len)

### Data Members

        private:

          TString fDiskServer    CASTOR remote disk server
          TString fInternalPath  CASTOR internal path
           Bool_t fIsCastor      true if internal path is valid
           Bool_t fWrittenTo     true if data has been written to file

## Class Description

     TCastorFile

     A TCastorFile is like a normal TNetFile except that it obtains the
     remote node (disk server) via the CASTOR API, once the disk server
     and the local file path are determined, the file will be accessed
     via the rootd daemon. File names have to be specified like:
        castor:/castor/cern.ch/user/r/rdm/bla.root.

TCastorFile(const char *url, Option_t *option, const char *ftitle, Int_t compress, Int_t netopt) : TNetFile(url, ftitle, compress, kFALSE)

     Create a TCastorFile. A TCastorFile is like a normal TNetFile except
     that it obtains the remote node (disk server) via the CASTOR API, once
     the disk server and the local file path are determined, the file will
     be accessed via the rootd daemon. File names have to be specified like:
        castor:/castor/cern.ch/user/r/rdm/bla.root.
     The other arguments are the same as for TNetFile and TFile.

void FindServerAndPath()

     Find the CASTOR disk server and internal file path.

Int_t SysClose(Int_t fd)

     Close currently open file.

Bool_t WriteBuffer(const char *buf, Int_t len)

     Write specified byte range to remote file via rootd daemon.
     Returns kTRUE in case of error.

void ConnectServer(Int_t *stat, EMessageTypes *kind, Int_t netopt, Int_t tcpwindowsize, Bool_t forceOpen, Bool_t forceRead)

     Connect to remote rootd server on CASTOR disk server.

### Inline Functions

                   void ~TCastorFile()
            TCastorFile TCastorFile()
                TClass* Class()
                TClass* IsA() const
                   void ShowMembers(TMemberInspector& insp, char* parent)
                   void Streamer(TBuffer& b)
                   void StreamerNVirtual(TBuffer& b)

Author: Fons Rademakers + Jean-Damien Durand 17/09/2003
Last update: root/rfio:$Name: $:$Id: TCastorFile.cxx,v 1.7 2005/05/24 15:58:31 rdm Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *