library: libCore
#include "TNetFile.h"

TNetFile


class description - header file - source file
viewCVS header - viewCVS source

class TNetFile: public TFile

Inheritance Inherited Members Includes Libraries
Class Charts

Function Members (Methods)

Display options:
Show inherited
Show non-public
public:
TNetFile()
TNetFile(const char* url, Option_t* option = "", const char* ftitle = "", Int_t compress = 1, Int_t netopt = 0)
virtual~TNetFile()
voidTObject::AbstractMethod(const char* method) const
voidTDirectory::Add(TObject* obj)
virtual voidTDirectory::Append(TObject* obj)
Int_tTDirectory::AppendKey(TKey* key)
virtual voidTObject::AppendPad(Option_t* option = "")
static TFileOpenHandle*TFile::AsyncOpen(const char* name, Option_t* option = "", const char* ftitle = "", Int_t compress = 1, Int_t netopt = 0)
virtual voidTDirectory::Browse(TBrowser* b)
voidTDirectory::Build(TFile* motherFile = 0, TDirectory* motherDir = 0)
virtual Bool_tTDirectory::cd(const char* path = "0")
static Bool_tTDirectory::Cd(const char* path)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTDirectory::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual voidClose(Option_t* option = "")
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTFile::Copy(TObject&) const
virtual TKey*TFile::CreateKey(TDirectory* mother, const TObject* obj, const char* name, Int_t bufsize)
virtual TKey*TFile::CreateKey(TDirectory* mother, const void* obj, const TClass* cl, const char* name, Int_t bufsize)
static voidTDirectory::DecodeNameCycle(const char* namecycle, char* name, Short_t& cycle)
virtual voidTFile::Delete(const char* namecycle = "")
virtual voidTDirectory::DeleteAll(Option_t* option = "")
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTFile::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() const
virtual TObject*TObject::DrawClone(Option_t* option = "") const
virtual voidTFile::DrawMap(const char* keys = "*", Option_t* option = "")
virtual voidTObject::Dump() const
static voidTDirectory::EncodeNameCycle(char* buffer, const char* name, Short_t cycle)
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTFile::FillBuffer(char*& buffer)
virtual TKey*TDirectory::FindKey(const char* keyname) const
virtual TKey*TDirectory::FindKeyAny(const char* keyname) const
virtual TObject*TDirectory::FindObject(const char* name) const
virtual TObject*TDirectory::FindObject(const TObject* obj) const
virtual TObject*TDirectory::FindObjectAny(const char* name) const
virtual voidFlush()
virtual TObject*TDirectory::Get(const char* namecycle)
TArchiveFile*TFile::GetArchive() const
static TFile::EAsyncOpenStatusTFile::GetAsyncOpenStatus(const char* name)
static TFile::EAsyncOpenStatusTFile::GetAsyncOpenStatus(TFileOpenHandle* handle)
Int_tTFile::GetBestBuffer() const
virtual Int_tTDirectory::GetBufferSize() const
virtual Long64_tTFile::GetBytesRead() const
virtual Long64_tTFile::GetBytesWritten() const
TFileCacheRead*TFile::GetCacheRead() const
TFileCacheWrite*TFile::GetCacheWrite() const
TArrayC*TFile::GetClassIndex() const
Float_tTFile::GetCompressionFactor()
Int_tTFile::GetCompressionLevel() const
const TDatime&TDirectory::GetCreationDate() const
virtual TDirectory*TDirectory::GetDirectory(const char* namecycle, Bool_t printError = false, const char* funcname = "GetDirectory")
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual Long64_tTFile::GetEND() const
virtual const TUrl*GetEndpointUrl() const
virtual Int_tTFile::GetErrno() const
Int_tGetErrorCode() const
Int_tTFile::GetFd() const
virtual TFile*TDirectory::GetFile() const
static Long64_tTFile::GetFileBytesRead()
static Long64_tTFile::GetFileBytesWritten()
static Long64_tTFile::GetFileCounter()
static Int_tTFile::GetFileReadCalls()
virtual const char*TObject::GetIconName() const
virtual TKey*TDirectory::GetKey(const char* name, Short_t cycle = 9999) const
virtual TList*TDirectory::GetList() const
TList*TFile::GetListOfFree() const
virtual TList*TDirectory::GetListOfKeys() const
TObjArray*TFile::GetListOfProcessIDs() const
const TDatime&TDirectory::GetModificationDate() const
TObject*TDirectory::GetMother() const
TDirectory*TDirectory::GetMotherDir() const
virtual const char*TNamed::GetName() const
virtual Int_tTFile::GetNbytesFree() const
virtual Int_tTFile::GetNbytesInfo() const
virtual Int_tTDirectory::GetNbytesKeys() const
virtual Int_tTFile::GetNfree() const
virtual Int_tTDirectory::GetNkeys() const
virtual Int_tTFile::GetNProcessIDs() const
voidTDirectory::GetObject(const char* namecycle, void*& ptr)
virtual void*TDirectory::GetObjectChecked(const char* namecycle, const char* classname)
virtual void*TDirectory::GetObjectChecked(const char* namecycle, const TClass* cl)
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual void*TDirectory::GetObjectUnchecked(const char* namecycle)
virtual Option_t*TFile::GetOption() const
virtual const char*TDirectory::GetPath() const
virtual const char*TDirectory::GetPathStatic() const
virtual Int_tTFile::GetReadCalls() const
Int_tTFile::GetRecordHeader(char* buf, Long64_t first, Int_t maxbytes, Int_t& nbytes, Int_t& objlen, Int_t& keylen)
virtual Long64_tTDirectory::GetSeekDir() const
virtual Long64_tTFile::GetSeekFree() const
virtual Long64_tTFile::GetSeekInfo() const
virtual Long64_tTDirectory::GetSeekKeys() const
virtual Long64_tTDirectory::GetSeekParent() const
virtual Long64_tTFile::GetSize() const
const TList*TFile::GetStreamerInfoCache()
virtual TList*TFile::GetStreamerInfoList()
virtual const char*TNamed::GetTitle() const
static TFile::EFileTypeTFile::GetType(const char* name, Option_t* option = "")
virtual UInt_tTObject::GetUniqueID() const
TUUIDTDirectory::GetUUID() const
Int_tTFile::GetVersion() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
static voidTFile::IncrementFileCounter()
virtual voidTFile::IncrementProcessIDs()
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() const
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTFile::IsArchive() const
Bool_tTFile::IsBinary() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTDirectory::IsFolder() const
Bool_tTDirectory::IsModified() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tIsOpen() const
Bool_tTFile::IsRaw() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTDirectory::IsWritable() const
Bool_tTObject::IsZombie() const
virtual voidTFile::ls(Option_t* option = "") const
virtual voidTFile::MakeFree(Long64_t first, Long64_t last)
virtual voidTFile::MakeProject(const char* dirname, const char* classes = "*", Option_t* option = "new")
virtual voidTFile::Map()
virtual Bool_tMatches(const char* url)
voidTObject::MayNotUse(const char* method) const
virtual TDirectory*TDirectory::mkdir(const char* name, const char* title = "")
virtual Bool_tTFile::MustFlush() const
virtual Bool_tTObject::Notify()
static TFile*TFile::Open(TFileOpenHandle* handle)
static TFile*TFile::Open(const char* name, Option_t* option = "", const char* ftitle = "", Int_t compress = 1, Int_t netopt = 0)
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTFile::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTDirectory::Purge(Short_t nkeep = 1)
virtual voidTDirectory::pwd() const
virtual Int_tTObject::Read(const char* name)
virtual voidTDirectory::ReadAll(Option_t* option = "")
virtual Bool_tReadBuffer(char* buf, Int_t len)
virtual Bool_tReadBuffers(char* buf, Long64_t* pos, Int_t* len, Int_t nbuf)
virtual voidTFile::ReadFree()
virtual Int_tTDirectory::ReadKeys()
virtual voidTFile::ReadStreamerInfo()
virtual Int_tTFile::Recover()
virtual voidTDirectory::RecursiveRemove(TObject* obj)
virtual Int_tReOpen(Option_t* mode)
voidTObject::ResetBit(UInt_t f)
virtual voidTFile::ResetErrno() const
virtual voidTDirectory::rmdir(const char* name)
virtual voidTDirectory::Save()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") const
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
virtual voidTDirectory::SaveSelf(Bool_t force = kFALSE)
virtual voidSeek(Long64_t offset, TFile::ERelativeTo pos = kBeg)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTDirectory::SetBufferSize(Int_t bufsize)
virtual voidTFile::SetCacheRead(TFileCacheRead* cache)
virtual voidTFile::SetCacheWrite(TFileCacheWrite* cache)
virtual voidTFile::SetCompressionLevel(Int_t level = 1)
virtual voidTObject::SetDrawOption(Option_t* option = "")
static voidTObject::SetDtorOnly(void* obj)
virtual voidTFile::SetEND(Long64_t last)
static voidTFile::SetFileBytesRead(Long64_t bytes = 0)
static voidTFile::SetFileBytesWritten(Long64_t bytes = 0)
static voidTFile::SetFileReadCalls(Int_t readcalls = 0)
voidTDirectory::SetModified()
voidTDirectory::SetMother(const TObject* mother)
virtual voidTDirectory::SetName(const char* newname)
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTFile::SetOption(Option_t* option = ">")
virtual voidTFile::SetReadCalls(Int_t readcalls = 0)
static voidTFile::SetReadStreamerInfo(Bool_t readinfo = kTRUE)
voidTDirectory::SetSeekDir(Long64_t v)
virtual voidTNamed::SetTitle(const char* title = "")
virtual voidTObject::SetUniqueID(UInt_t uid)
voidTDirectory::SetWritable(Bool_t writable = kTRUE)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidTFile::ShowStreamerInfo()
virtual Int_tTFile::Sizeof() const
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
voidTFile::SumBuffer(Int_t bufsize)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTFile::UseCache(Int_t maxCacheSize = 10, Int_t pageSize = 0)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTFile::Write(const char* name = "0", Int_t opt = 0, Int_t bufsiz = 0)
virtual Int_tTFile::Write(const char* name = "0", Int_t opt = 0, Int_t bufsiz = 0) const
virtual Bool_tWriteBuffer(const char* buf, Int_t len)
virtual voidTDirectory::WriteDirHeader()
virtual voidTFile::WriteFree()
virtual voidTFile::WriteHeader()
virtual voidTDirectory::WriteKeys()
Int_tTDirectory::WriteObject(const void* obj, const char* name, Option_t* option = "")
virtual Int_tTDirectory::WriteObjectAny(const void* obj, const char* classname, const char* name, Option_t* option = "")
virtual Int_tTDirectory::WriteObjectAny(const void* obj, const TClass* cl, const char* name, Option_t* option = "")
virtual voidTFile::WriteStreamerInfo()
virtual Int_tTDirectory::WriteTObject(const TObject* obj, const char* name = "0", Option_t* option = "")
protected:
TNetFile(const TNetFile&)
TNetFile(const char* url, const char* ftitle, Int_t comp, Bool_t)
Bool_tTDirectory::cd1(const char* path)
static Bool_tTDirectory::Cd1(const char* path)
virtual voidConnectServer(Int_t* stat, EMessageTypes* kind, Int_t netopt, Int_t tcpwindowsize, Bool_t forceOpen, Bool_t forceRead)
virtual voidCreate(const char* url, Option_t* option, Int_t netopt)
virtual voidCreate(TSocket* s, Option_t* option, Int_t netopt)
virtual Long64_tTFile::DirCreateEntry(TDirectory*)
virtual Int_tTFile::DirReadKeys(TDirectory*)
virtual voidTFile::DirWriteHeader(TDirectory*)
virtual voidTFile::DirWriteKeys(TDirectory*)
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTDirectory::FillFullPath(TString& buf) const
Bool_tTFile::FlushWriteCache()
virtual TFile::EAsyncOpenStatusTFile::GetAsyncOpenStatus()
Long64_tTFile::GetRelOffset() const
virtual voidInit(Bool_t create)
voidTObject::MakeZombie()
TNetFile&operator=(const TNetFile&)
virtual voidPrint(Option_t* option) const
voidPrintError(const char* where, Int_t err)
Int_tTFile::ReadBufferViaCache(char* buf, Int_t len)
Int_tRecv(Int_t& status, EMessageTypes& kind)
virtual Int_tSysClose(Int_t fd)
virtual Int_tSysOpen(const char* pathname, Int_t flags, UInt_t mode)
virtual Int_tTFile::SysRead(Int_t fd, void* buf, Int_t len)
virtual Long64_tTFile::SysSeek(Int_t fd, Long64_t offset, Int_t whence)
virtual Int_tSysStat(Int_t fd, Long_t* id, Long64_t* size, Long_t* flags, Long_t* modtime)
virtual Int_tTFile::SysSync(Int_t fd)
virtual Int_tTFile::SysWrite(Int_t fd, const void* buf, Int_t len)
Int_tTFile::WriteBufferViaCache(const char* buf, Int_t len)

Data Members

public:
enum TFile::EAsyncOpenStatus { kAOSNotAsync
kAOSFailure
kAOSInProgress
kAOSSuccess
};
enum TFile::EStatusBits { kRecovered
kHasReferences
kDevNull
kWriteError
kBinaryFile
kRedirected
};
enum TFile::ERelativeTo { kBeg
kCur
kEnd
};
enum TFile::[unnamed] { kStartBigFile
};
enum TFile::EFileType { kDefault
kLocal
kNet
kWeb
kFile
};
enum TDirectory::[unnamed] { kCloseDirectory
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
TUrlfEndpointUrlURL of realfile (after possible redirection)
TStringfUserremote user name
TSocket*fSocketconnection to rootd server
Int_tfProtocolrootd protocol level
Int_tfErrorCodeerror code returned by rootd (matching gRootdErrStr)
Double_tTFile::fSumBufferSum of buffer sizes of objects written so far
Double_tTFile::fSum2BufferSum of squares of buffer sizes of objects written so far
Long64_tTFile::fBytesWriteNumber of bytes written to this file
Long64_tTFile::fBytesReadNumber of bytes read from this file
Long64_tTFile::fBEGINFirst used byte in file
Long64_tTFile::fENDLast used byte in file
Long64_tTFile::fSeekFreeLocation on disk of free segments structure
Long64_tTFile::fSeekInfoLocation on disk of StreamerInfo record
Int_tTFile::fDFile descriptor
Int_tTFile::fVersionFile format version
Int_tTFile::fCompressCompression level from 0(not compressed) to 9 (max compression)
Int_tTFile::fNbytesFreeNumber of bytes for free segments structure
Int_tTFile::fNbytesInfoNumber of bytes for StreamerInfo record
Int_tTFile::fWrittenNumber of objects written so far
Int_tTFile::fNProcessIDsNumber of TProcessID written to this file
Int_tTFile::fReadCallsNumber of read calls ( not counting the cache calls )
TStringTFile::fRealNameEffective real file name (not original url)
TStringTFile::fOptionFile options
Char_tTFile::fUnitsNumber of bytes for file pointers
TList*TFile::fFreeFree segments linked list table
TArrayC*TFile::fClassIndex!Index of TStreamerInfo classes written to this file
TObjArray*TFile::fProcessIDs!Array of pointers to TProcessIDs
Long64_tTFile::fOffset!Seek offset used by remote file classes
TArchiveFile*TFile::fArchive!Archive file from which we read this file
TFileCacheRead*TFile::fCacheRead!Pointer to the read cache (if any)
TFileCacheWrite*TFile::fCacheWrite!Pointer to the write cache (if any)
Long64_tTFile::fArchiveOffset!Offset at which file starts in archive
Bool_tTFile::fIsArchive!True if this is a pure archive file
Bool_tTFile::fNoAnchorInName!True if we don't want to force the anchor to be appended to the file name
Bool_tTFile::fIsRootFile!True is this is a ROOT file, raw file otherwise
Bool_tTFile::fInitDone!True if the file has been initialized
Bool_tTFile::fMustFlush!True if the file buffers must be flushed
TFileOpenHandle*TFile::fAsyncHandle!For proper automatic cleanup
TFile::EAsyncOpenStatusTFile::fAsyncOpenStatus!Status of an asynchronous open request
TUrlTFile::fUrl!URL of file
TList*TFile::fInfoCache!Cached list of the streamer infos in this file
static TList*TFile::fgAsyncOpenRequests!List of handles for pending open requests
static Long64_tTFile::fgBytesWriteNumber of bytes written by all TFile objects
static Long64_tTFile::fgBytesReadNumber of bytes read by all TFile objects
static Long64_tTFile::fgFileCounterCounter for all opened files
static Int_tTFile::fgReadCallsNumber of bytes read from all TFile objects
static Bool_tTFile::fgReadInfoif true (default) ReadStreamerInfo is called when opening a file
Bool_tTDirectory::fModifiedtrue if directory has been modified
Bool_tTDirectory::fWritabletrue if directory is writable
TDatimeTDirectory::fDatimeCDate and time when directory is created
TDatimeTDirectory::fDatimeMDate and time of last modification
Int_tTDirectory::fNbytesKeysNumber of bytes for the keys
Int_tTDirectory::fNbytesNameNumber of bytes in TNamed at creation time
Int_tTDirectory::fBufferSizeDefault buffer size to create new TKeys
Long64_tTDirectory::fSeekDirLocation of directory on file
Long64_tTDirectory::fSeekParentLocation of parent directory on file
Long64_tTDirectory::fSeekKeysLocation of Keys record on file
TFile*TDirectory::fFilepointer to current file in memory
TObject*TDirectory::fMotherpointer to mother of the directory
TList*TDirectory::fListPointer to objects list in memory
TList*TDirectory::fKeysPointer to keys list in memory
TUUIDTDirectory::fUUIDUnique identifier
TStringTDirectory::fPathBuffer!Buffer for GetPath() function
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title

Class Description

                                                                      
 TNetFile                                                             
                                                                      
 A TNetFile is like a normal TFile except that it reads and writes    
 its data via a rootd server (for more on the rootd daemon see the    
 source files root/rootd/src/*.cxx). TNetFile file names are in       
 standard URL format with protocol "root" or "roots". The following   
 are valid TNetFile URL's:                                            
                                                                      
    roots://hpsalo/files/aap.root                                     
    root://hpbrun.cern.ch/root/hsimple.root                           
    root://pcna49a:5151/~na49/data/run821.root                        
    root://pcna49d.cern.ch:5050//v1/data/run810.root                  
                                                                      
 The only difference with the well known httpd URL's is that the root 
 of the remote file tree is the user's home directory. Therefore an   
 absolute pathname requires a // after the host or port specifier     
 (see last example). Further the expansion of the standard shell      
 characters, like ~, $, .., are handled as expected.                  
 TNetFile (actually TUrl) uses 1094 as default port for rootd.        
                                                                      
 Connecting to a rootd requires the remote user id and password.      
 TNetFile allows three ways for you to provide your login:            
   1) Setting it globally via the static functions:                   
         TAuthenticate::SetGlobalUser() and                           
         TAuthenticate::SetGlobalPasswd()                             
   2) Getting it from the ~/.netrc file (same file as used by ftp)    
   3) Command line prompt                                             
 The different methods will be tried in the order given above.        
 On machines with AFS rootd will authenticate using AFS (if it was    
 compiled with AFS support).                                          
                                                                      
 If the protocol is specified as "roots" a secure authetication       
 method will be used. The secure method uses the SRP, Secure Remote   
 Passwords, package. SRP uses a so called "asymmetric key exchange    //
 protocol" in which no passwords are ever send over the wire. This    //
 protocol is safe against all known security attacks. For more see:   
 
NetFile //
                                                             
 If the protocol is specified as "rootk" kerberos5 will be used for   
 authentication.                                                      
                                                                      
 The rootd daemon lives in the directory $ROOTSYS/bin. It can be      
 started either via inetd or by hand from the command line (no need   
 to be super user). For more info about rootd see the web page:       
 
NetFile //
                                                             
                                                                      

TNetFile(const char *url, Option_t *option, const char *ftitle, Int_t compress, Int_t netopt)
 Create a TNetFile object. This is actually done inside Create(), so
 for a description of the options and other arguments see Create().
 Normally a TNetFile is created via TFile::Open().
TNetFile(const char *url, const char *ftitle, Int_t compress, Bool_t)
 Create a TNetFile object. To be used by derived classes, that need
 to initialize the TFile base class but not open a connection at this
 moment.
~TNetFile()
 TNetFile dtor. Send close message and close socket.
Int_t SysOpen(const char * /*file*/, Int_t /*flags*/, UInt_t /*mode*/)
 Open a remote file. Requires fOption to be set correctly.
Int_t SysClose(Int_t /*fd*/)
 Close currently open file.
Int_t SysStat(Int_t, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime)
 Return file stat information. The interface and return value is
 identical to TSystem::GetPathInfo().
void Close(Option_t *opt)
 Close remote file.
void Flush()
 Flush file to disk.
void Init(Bool_t create)
 Initialize a TNetFile object.
Bool_t IsOpen()
 Retruns kTRUE if file is open, kFALSE otherwise.
void Print(Option_t *)
 Print some info about the net file.
void PrintError(const char *where, Int_t err)
 Print error string depending on error code.
Int_t ReOpen(Option_t *mode)
 Reopen a file with a different access mode, like from READ to
 UPDATE or from NEW, CREATE, RECREATE, UPDATE to READ. Thus the
 mode argument can be either "READ" or "UPDATE". The method returns
 0 in case the mode was successfully modified, 1 in case the mode
 did not change (was already as requested or wrong input arguments)
 and -1 in case of failure, in which case the file cannot be used
 anymore.
Bool_t ReadBuffer(char *buf, Int_t len)
 Read specified byte range from remote file via rootd daemon.
 Returns kTRUE in case of error.
Bool_t ReadBuffers(char *buf, Long64_t *pos, Int_t *len, Int_t nbuf)
 Read a list of buffers given in pos[] and len[] and return it in a single
 buffer.
 Returns kTRUE in case of error.
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.
Int_t Recv(Int_t &status, EMessageTypes &kind)
 Return status from rootd server and message kind. Returns -1 in
 case of error otherwise 8 (sizeof 2 words, status and kind).
void Seek(Long64_t offset, ERelativeTo pos)
 Set position from where to start reading.
void ConnectServer(Int_t *stat, EMessageTypes *kind, Int_t netopt, Int_t tcpwindowsize, Bool_t forceOpen, Bool_t forceRead)
 Connect to remote rootd server.
void Create(const char * /*url*/, Option_t *option, Int_t netopt)
 Create a NetFile object. A net file is the same as a TFile
 except that it is being accessed via a rootd server. The url
 argument must be of the form: root[s|k]://host.dom.ain/file.root.
 When protocol is "roots" try using SRP authentication.
 When protocol is "rootk" try using kerberos5 authentication.
 If the file specified in the URL does not exist, is not accessable
 or can not be created the kZombie bit will be set in the TNetFile
 object. Use IsZombie() to see if the file is accessable.
 If the remote daemon thinks the file is still connected, while you are
 sure this is not the case you can force open the file by preceding the
 option argument with an "-", e.g.: "-recreate". Do this only
 in cases when you are very sure nobody else is using the file.
 To bypass the writelock on a file, to allow the reading of a file
 that is being written by another process, explicitely specify the
 "+read" option ("read" being the default option).
 The netopt argument can be used to specify the size of the tcp window in
 bytes (for more info see: http://www.psc.edu/networking/perf_tune.html).
 The default and minimum tcp window size is 65535 bytes.
 If netopt < -1 then |netopt| is the number of parallel sockets that will
 be used to connect to rootd. This option should be used on fat pipes
 (i.e. high bandwidth, high latency links). The ideal number of parallel
 sockets depends on the bandwidth*delay product. Generally 5-7 is a good
 number.
 For a description of the option and other arguments see the TFile ctor.
 The preferred interface to this constructor is via TFile::Open().
void Create(TSocket *s, Option_t *option, Int_t netopt)
 Create a NetFile object using an existing connection (socket s).
 Provided for use in TXNetFile.
 See:
    TNetFile::Create(const char *url, Option_t *option, Int_t netopt)
 for details about the arguments.
Bool_t Matches(const char *url)
 Return kTRUE if 'url' matches the coordinates of this file.
 Check the full URL, including port and FQDN.
TNetFile(const TNetFile&)
TNetFile& operator=(const TNetFile&)
TNetFile(const char *url, const char *ftitle, Int_t comp, Bool_t)
Int_t GetErrorCode()
{ return fErrorCode; }
const TUrl * GetEndpointUrl()
{ return &fEndpointUrl; }

Author: Fons Rademakers 14/08/97
Last update: root/net:$Name: $:$Id: TNetFile.cxx,v 1.85 2006/09/04 00:45:03 rdm Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *


ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.