Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TWebFile Class Reference

Definition at line 33 of file TWebFile.h.

Public Member Functions

 TWebFile (const char *url, Option_t *opt="")
 Create a Web file object.
 
 TWebFile (TUrl url, Option_t *opt="")
 Create a Web file object.
 
virtual ~TWebFile ()
 Cleanup.
 
void Close (Option_t *option="") override
 Close a Web file.
 
Long64_t GetSize () const override
 Return maximum file size.
 
TClassIsA () const override
 
Bool_t IsOpen () const override
 A TWebFile that has been correctly constructed is always considered open.
 
Bool_t ReadBuffer (char *buf, Int_t len) override
 Read specified byte range from remote file via HTTP daemon.
 
Bool_t ReadBuffer (char *buf, Long64_t pos, Int_t len) override
 Read specified byte range from remote file via HTTP daemon.
 
Bool_t ReadBuffers (char *buf, Long64_t *pos, Int_t *len, Int_t nbuf) override
 Read specified byte ranges from remote file via HTTP daemon.
 
Int_t ReOpen (Option_t *mode) override
 Reopen a file with a different access mode, like from READ to UPDATE or from NEW, CREATE, RECREATE, UPDATE to READ.
 
void Seek (Long64_t offset, ERelativeTo pos=kBeg) override
 Set position from where to start reading.
 
void Streamer (TBuffer &) override
 Stream a TFile object.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from TFile
 TFile ()
 File default Constructor.
 
 TFile (const char *fname, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault)
 Opens or creates a local ROOT file.
 
 ~TFile () override
 File destructor.
 
void Copy (TObject &) const override
 Copy this to obj.
 
virtual Bool_t Cp (const char *dst, Bool_t progressbar=kTRUE, UInt_t buffersize=1000000)
 Allows to copy this file to the dst URL.
 
virtual TKeyCreateKey (TDirectory *mother, const TObject *obj, const char *name, Int_t bufsize)
 Creates key for object and converts data to buffer.
 
virtual TKeyCreateKey (TDirectory *mother, const void *obj, const TClass *cl, const char *name, Int_t bufsize)
 Creates key for object and converts data to buffer.
 
void Delete (const char *namecycle="") override
 Delete object namecycle.
 
void Draw (Option_t *option="") override
 Fill Graphics Structure and Paint.
 
virtual void DrawMap (const char *keys="*", Option_t *option="")
 Draw map of objects in this file.
 
void FillBuffer (char *&buffer) override
 Encode file output buffer.
 
virtual void Flush ()
 Synchronize a file's in-memory and on-disk states.
 
TArchiveFileGetArchive () const
 
Long64_t GetArchiveOffset () const
 
Int_t GetBestBuffer () const
 Return the best buffer size of objects on this file.
 
virtual Long64_t GetBytesRead () const
 
virtual Long64_t GetBytesReadExtra () const
 
virtual Int_t GetBytesToPrefetch () const
 Max number of bytes to prefetch.
 
virtual Long64_t GetBytesWritten () const
 Return the total number of bytes written so far to the file.
 
TFileCacheReadGetCacheRead (const TObject *tree=nullptr) const
 Return a pointer to the current read cache.
 
TFileCacheWriteGetCacheWrite () const
 Return a pointer to the current write cache.
 
TArrayCGetClassIndex () const
 
Int_t GetCompressionAlgorithm () const
 
Float_t GetCompressionFactor ()
 Return the file compression factor.
 
Int_t GetCompressionLevel () const
 
Int_t GetCompressionSettings () const
 
virtual Long64_t GetEND () const
 
virtual const TUrlGetEndpointUrl () const
 
virtual Int_t GetErrno () const
 Method returning errno.
 
Int_t GetFd () const
 
TListGetListOfFree () const
 
TObjArrayGetListOfProcessIDs () const
 
virtual Int_t GetNbytesFree () const
 
virtual Int_t GetNbytesInfo () const
 
virtual TString GetNewUrl ()
 
virtual Int_t GetNfree () const
 
virtual Int_t GetNProcessIDs () const
 
Option_tGetOption () const override
 
virtual Int_t GetReadCalls () const
 
Int_t GetRecordHeader (char *buf, Long64_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen)
 Read the logical record header starting at a certain postion.
 
Long64_t GetRelOffset () const
 
virtual Long64_t GetSeekFree () const
 
virtual Long64_t GetSeekInfo () const
 
const TListGetStreamerInfoCache ()
 Returns the cached list of StreamerInfos used in this file.
 
virtual TListGetStreamerInfoList () final
 Read the list of TStreamerInfo objects written to this file.
 
Int_t GetVersion () const
 
virtual void IncrementProcessIDs ()
 
virtual Bool_t IsArchive () const
 
Bool_t IsBinary () const
 
Bool_t IsRaw () const
 
void ls (Option_t *option="") const override
 List file contents.
 
virtual void MakeFree (Long64_t first, Long64_t last)
 Mark unused bytes on the file.
 
virtual void MakeProject (const char *dirname, const char *classes="*", Option_t *option="new")
 Generate source code necessary to access the objects stored in the file.
 
virtual void Map ()
 
virtual void Map (Option_t *opt)
 List the contents of a file sequentially.
 
virtual Bool_t Matches (const char *name)
 Return kTRUE if 'url' matches the coordinates of this file.
 
virtual Bool_t MustFlush () const
 
void Paint (Option_t *option="") override
 Paint all objects in the file.
 
void Print (Option_t *option="") const override
 Print all objects in the file.
 
virtual Bool_t ReadBufferAsync (Long64_t offs, Int_t len)
 
virtual void ReadFree ()
 Read the FREE linked list.
 
virtual TProcessIDReadProcessID (UShort_t pidf)
 The TProcessID with number pidf is read from this file.
 
virtual void ReadStreamerInfo ()
 Read the list of StreamerInfo from this file.
 
virtual Int_t Recover ()
 Attempt to recover file if not correctly closed.
 
virtual void ResetErrno () const
 Method resetting the errno.
 
virtual void SetCacheRead (TFileCacheRead *cache, TObject *tree=nullptr, ECacheAction action=kDisconnect)
 Set a pointer to the read cache.
 
virtual void SetCacheWrite (TFileCacheWrite *cache)
 Set a pointer to the write cache.
 
virtual void SetCompressionAlgorithm (Int_t algorithm=ROOT::RCompressionSetting::EAlgorithm::kUseGlobal)
 See comments for function SetCompressionSettings.
 
virtual void SetCompressionLevel (Int_t level=ROOT::RCompressionSetting::ELevel::kUseMin)
 See comments for function SetCompressionSettings.
 
virtual void SetCompressionSettings (Int_t settings=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault)
 Used to specify the compression level and algorithm.
 
virtual void SetEND (Long64_t last)
 
virtual void SetOffset (Long64_t offset, ERelativeTo pos=kBeg)
 Set position from where to start reading.
 
virtual void SetOption (Option_t *option=">")
 
virtual void SetReadCalls (Int_t readcalls=0)
 
virtual void ShowStreamerInfo ()
 Show the StreamerInfo of all classes written to this file.
 
Int_t Sizeof () const override
 Return the size in bytes of the file header.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
void SumBuffer (Int_t bufsize)
 Increment statistics for buffer sizes of objects in this file.
 
Int_t Write (const char *name=nullptr, Int_t opt=0, Int_t bufsiz=0) const override
 One can not save a const TDirectory object.
 
Int_t Write (const char *name=nullptr, Int_t opt=0, Int_t bufsiz=0) override
 Write memory objects to this file.
 
virtual Bool_t WriteBuffer (const char *buf, Int_t len)
 Write a buffer to the file.
 
virtual void WriteFree ()
 Write FREE linked list on the file.
 
virtual void WriteHeader ()
 Write File Header.
 
virtual UShort_t WriteProcessID (TProcessID *pid)
 Check if the ProcessID pidd is already in the file, if not, add it and return the index number in the local file list.
 
virtual void WriteStreamerInfo ()
 Write the list of TStreamerInfo as a single object in this file The class Streamer description for all classes written to this file is saved.
 
- Public Member Functions inherited from TDirectoryFile
 TDirectoryFile ()
 Default TDirectoryFile constructor.
 
 TDirectoryFile (const char *name, const char *title, Option_t *option="", TDirectory *motherDir=nullptr)
 Create a new TDirectoryFile.
 
 ~TDirectoryFile () override
 Destructor.
 
void Add (TObject *obj, Bool_t replace=kFALSE) override
 
void Append (TObject *obj, Bool_t replace=kFALSE) override
 Append object to this directory.
 
Int_t AppendKey (TKey *key) override
 Insert key in the linked list of keys of this directory.
 
void Browse (TBrowser *b) override
 Browse the content of the directory.
 
void Build (TFile *motherFile=nullptr, TDirectory *motherDir=nullptr) override
 
Bool_t cd () override
 Change current directory to "this" directory.
 
Bool_t cd (const char *path) override
 Change current directory the directory described by the path if given one.
 
TObjectCloneObject (const TObject *obj, Bool_t autoadd=kTRUE) override
 Make a clone of an object using the Streamer facility.
 
TKeyFindKey (const char *keyname) const override
 Find key with name keyname in the current directory.
 
TKeyFindKeyAny (const char *keyname) const override
 Find key with name keyname in the current directory or its subdirectories.
 
TObjectFindObjectAny (const char *name) const override
 Find object by name in the list of memory objects of the current directory or its sub-directories.
 
TObjectFindObjectAnyFile (const char *name) const override
 Scan the memory lists of all files for an object with name.
 
template<class T >
T * Get (const char *namecycle)
 See documentation of TDirectoryFile::Get(const char *namecycle)
 
TObjectGet (const char *namecycle) override
 Return pointer to object identified by namecycle.
 
Int_t GetBufferSize () const override
 Return the buffer size to create new TKeys.
 
const TDatimeGetCreationDate () const
 
TDirectoryGetDirectory (const char *apath, Bool_t printError=false, const char *funcname="GetDirectory") override
 Find a directory named "apath".
 
TFileGetFile () const override
 
TKeyGetKey (const char *name, Short_t cycle=9999) const override
 Return pointer to key with name,cycle.
 
TListGetListOfKeys () const override
 
const TDatimeGetModificationDate () const
 
Int_t GetNbytesKeys () const override
 
Int_t GetNkeys () const override
 
void * GetObjectChecked (const char *namecycle, const char *classname) override
 See documentation of TDirectoryFile::GetObjectCheck(const char *namecycle, const TClass *cl)
 
void * GetObjectChecked (const char *namecycle, const TClass *cl) override
 Return pointer to object identified by namecycle if and only if the actual object is a type suitable to be stored as a pointer to a "expectedClass" If expectedClass is null, no check is performed.
 
void * GetObjectUnchecked (const char *namecycle) override
 Return pointer to object identified by namecycle.
 
Long64_t GetSeekDir () const override
 
Long64_t GetSeekKeys () const override
 
Long64_t GetSeekParent () const override
 
Bool_t IsModified () const override
 
Bool_t IsWritable () const override
 
TDirectorymkdir (const char *name, const char *title="", Bool_t returnExistingDirectory=kFALSE) override
 Create a sub-directory "a" or a hierarchy of sub-directories "a/b/c/...".
 
TFileOpenFile (const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0) override
 Interface to TFile::Open.
 
void Purge (Short_t nkeep=1) override
 Purge lowest key cycles in a directory.
 
void ReadAll (Option_t *option="") override
 Read objects from a ROOT file directory into memory.
 
Int_t ReadKeys (Bool_t forceRead=kTRUE) override
 Read the linked list of keys.
 
Int_t ReadTObject (TObject *obj, const char *keyname) override
 Read object with keyname from the current directory.
 
virtual void ResetAfterMerge (TFileMergeInfo *)
 Reset the TDirectory after its content has been merged into another Directory.
 
void rmdir (const char *name) override
 Removes subdirectory from the directory.
 
void Save () override
 Save recursively all directory keys and headers.
 
Int_t SaveObjectAs (const TObject *obj, const char *filename="", Option_t *option="") const override
 Save object in filename.
 
void SaveSelf (Bool_t force=kFALSE) override
 Save Directory keys and header.
 
void SetBufferSize (Int_t bufsize) override
 Set the default buffer size when creating new TKeys.
 
void SetModified () override
 
void SetSeekDir (Long64_t v) override
 
void SetTRefAction (TObject *ref, TObject *parent) override
 Find the action to be executed in the dictionary of the parent class and store the corresponding exec number into fBits.
 
void SetWritable (Bool_t writable=kTRUE) override
 Set the new value of fWritable recursively.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
void WriteDirHeader () override
 Overwrite the Directory header record.
 
void WriteKeys () override
 Write Keys linked list on the file.
 
Int_t WriteObjectAny (const void *obj, const char *classname, const char *name, Option_t *option="", Int_t bufsize=0) override
 Write object from pointer of class classname in this directory.
 
Int_t WriteObjectAny (const void *obj, const TClass *cl, const char *name, Option_t *option="", Int_t bufsize=0) override
 Write object of class with dictionary cl in this directory.
 
Int_t WriteTObject (const TObject *obj, const char *name=nullptr, Option_t *option="", Int_t bufsize=0) override
 Write object obj to this directory.
 
- Public Member Functions inherited from TDirectory
 TDirectory ()
 Directory default constructor.
 
 TDirectory (const char *name, const char *title, Option_t *option="", TDirectory *motherDir=nullptr)
 Create a new Directory.
 
virtual ~TDirectory ()
 Destructor.
 
void Clear (Option_t *option="") override
 Delete all objects from a Directory list.
 
virtual void DeleteAll (Option_t *option="")
 Delete all objects from memory.
 
TObjectFindObject (const char *name) const override
 Find object by name in the list of memory objects.
 
TObjectFindObject (const TObject *obj) const override
 Find object in the list of memory objects.
 
template<class T >
T * Get (const char *namecycle)
 See documentation of TDirectoryFile::Get(const char *namecycle)
 
virtual TListGetList () const
 
TObjectGetMother () const
 
TDirectoryGetMotherDir () const
 
template<class T >
void GetObject (const char *namecycle, T *&ptr)
 Get an object with proper type checking.
 
virtual const char * GetPath () const
 Returns the full path of the directory.
 
virtual const char * GetPathStatic () const
 Returns the full path of the directory.
 
TUUID GetUUID () const
 
Bool_t IsBuilt () const
 
Bool_t IsFolder () const override
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
 
virtual void pwd () const
 Print the path of the directory.
 
void RecursiveRemove (TObject *obj) override
 Recursively remove object from a Directory.
 
virtual TObjectRemove (TObject *)
 Remove an object from the in-memory list.
 
virtual void SetMother (TObject *mother)
 
void SetName (const char *newname) override
 Set the name for directory If the directory name is changed after the directory was written once, ROOT currently would NOT change the name of correspondent key in the mother directory.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
template<typename T >
std::enable_if_t<!std::is_base_of< TObject, T >::value, Int_tWriteObject (const T *obj, const char *name, Option_t *option="", Int_t bufsize=0)
 Write an object with proper type checking.
 
template<typename T >
std::enable_if_t< std::is_base_of< TObject, T >::value, Int_tWriteObject (const T *obj, const char *name, Option_t *option="", Int_t bufsize=0)
 Write an object with proper type checking.
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor.
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 TNamed destructor.
 
void Clear (Option_t *option="") override
 Set name and title to empty strings ("").
 
TObjectClone (const char *newname="") const override
 Make a clone of an object using the Streamer facility.
 
Int_t Compare (const TObject *obj) const override
 Compare two TNamed objects.
 
void Copy (TObject &named) const override
 Copy this to obj.
 
const char * GetName () const override
 Returns name of object.
 
const char * GetTitle () const override
 Returns title of object.
 
ULong_t Hash () const override
 Return hash value for this object.
 
Bool_t IsSortable () const override
 
void ls (Option_t *option="") const override
 List TNamed name and title.
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator.
 
void Print (Option_t *option="") const override
 Print TNamed name and title.
 
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title).
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor.
 
 TObject (const TObject &object)
 TObject copy ctor.
 
virtual ~TObject ()
 TObject destructor.
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract.
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad.
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object.
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs.
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object.
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs.
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad with: gROOT->SetSelectedPad(c1).
 
virtual void Dump () const
 Dump contents of object on stdout.
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message.
 
virtual void Execute (const char *method, const char *params, Int_t *error=nullptr)
 Execute method on this object with the given parameter string, e.g.
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
 Execute method on this object with parameters stored in the TObjArray.
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py).
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message.
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object.
 
virtual const char * GetIconName () const
 Returns mime type name of object.
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py).
 
virtual UInt_t GetUniqueID () const
 Return the unique object id.
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out.
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e.
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message.
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname".
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl.
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas.
 
void InvertBit (UInt_t f)
 
Bool_t IsDestructed () const
 IsDestructed.
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory).
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary).
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification (the base implementation is no-op).
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete.
 
void operator delete (void *ptr)
 Operator delete.
 
void operator delete (void *ptr, void *vp)
 Only called by placement new when throwing an exception.
 
void operator delete[] (void *ptr)
 Operator delete [].
 
void operator delete[] (void *ptr, void *vp)
 Only called by placement new[] when throwing an exception.
 
void * operator new (size_t sz)
 
void * operator new (size_t sz, void *vp)
 
void * operator new[] (size_t sz)
 
void * operator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator.
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list.
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory.
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename.
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out".
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f.
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object.
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id.
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message.
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked.
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message.
 

Static Public Member Functions

static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static Long64_t GetMaxFullCacheSize ()
 Static method returning maxmimal size of full cache, which can be preserved by file instance.
 
static const char * GetProxy ()
 Static method returning the global proxy URL.
 
static void SetMaxFullCacheSize (Long64_t sz)
 Static method, set maxmimal size of full cache,.
 
static void SetProxy (const char *url)
 Static method setting global proxy URL.
 
- Static Public Member Functions inherited from TFile
static TFileOpenHandleAsyncOpen (const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
 Submit an asynchronous open request.
 
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static Bool_t Cp (const char *src, const char *dst, Bool_t progressbar=kTRUE, UInt_t buffersize=1000000)
 Allows to copy file from src to dst URL.
 
static TFile *& CurrentFile ()
 Return the current ROOT file if any.
 
static const char * DeclFileName ()
 
static EAsyncOpenStatus GetAsyncOpenStatus (const char *name)
 Get status of the async open request related to 'name'.
 
static EAsyncOpenStatus GetAsyncOpenStatus (TFileOpenHandle *handle)
 Get status of the async open request related to 'handle'.
 
static const char * GetCacheFileDir ()
 Get the directory where to locally stage/cache remote files.
 
static const TUrlGetEndpointUrl (const char *name)
 Get final URL for file being opened asynchronously.
 
static Long64_t GetFileBytesRead ()
 Static function returning the total number of bytes read from all files.
 
static Long64_t GetFileBytesWritten ()
 Static function returning the total number of bytes written to all files.
 
static Long64_t GetFileCounter ()
 
static Int_t GetFileReadCalls ()
 Static function returning the total number of read calls from all files.
 
static Bool_t GetOnlyStaged ()
 Returns staged only flag.
 
static UInt_t GetOpenTimeout ()
 Returns open timeout (in ms).
 
static Int_t GetReadaheadSize ()
 Static function returning the readahead buffer size.
 
static Bool_t GetReadStreamerInfo ()
 If the streamerinfos are to be read at file opening.
 
static EFileType GetType (const char *name, Option_t *option="", TString *prefix=nullptr)
 Resolve the file type as a function of the protocol field in 'name'.
 
static void IncrementFileCounter ()
 
static TFileOpen (const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
 Create / open a file.
 
static TFileOpen (TFileOpenHandle *handle)
 Waits for the completion of an asynchronous open request.
 
static Bool_t SetCacheFileDir (std::string_view cacheDir, Bool_t operateDisconnected=kTRUE, Bool_t forceCacheread=kFALSE)
 Sets the directory where to locally stage/cache remote files.
 
static void SetFileBytesRead (Long64_t bytes=0)
 
static void SetFileBytesWritten (Long64_t bytes=0)
 
static void SetFileReadCalls (Int_t readcalls=0)
 
static Bool_t SetOnlyStaged (Bool_t onlystaged)
 Sets only staged flag.
 
static UInt_t SetOpenTimeout (UInt_t timeout)
 Sets open timeout time (in ms). Returns previous timeout value.
 
static void SetReadaheadSize (Int_t bufsize=256000)
 
static void SetReadStreamerInfo (Bool_t readinfo=kTRUE)
 Specify if the streamerinfos must be read at file opening.
 
static Bool_t ShrinkCacheFileDir (Long64_t shrinkSize, Long_t cleanupInteval=0)
 Try to shrink the cache to the desired size.
 
- Static Public Member Functions inherited from TDirectoryFile
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TDirectory
static void AddDirectory (Bool_t add=kTRUE)
 Sets the flag controlling the automatic add objects like histograms, TGraph2D, etc in memory.
 
static Bool_t AddDirectoryStatus ()
 Static function: see TDirectory::AddDirectory for more comments.
 
static Bool_t Cd (const char *path)
 Change current directory to "path".
 
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static std::atomic< TDirectory * > & CurrentDirectory ()
 Return the current directory for the current thread.
 
static const char * DeclFileName ()
 
static void DecodeNameCycle (const char *namecycle, char *name, Short_t &cycle, const size_t namesize=0)
 Decode a namecycle "aap;2" into name "aap" and cycle "2".
 
- Static Public Member Functions inherited from TNamed
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TObject
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static Longptr_t GetDtorOnly ()
 Return destructor only flag.
 
static Bool_t GetObjectStat ()
 Get status of object stat flag.
 
static void SetDtorOnly (void *obj)
 Set destructor only flag.
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable.
 

Protected Member Functions

virtual TString BasicAuthentication ()
 Return basic authentication scheme, to be added to the request.
 
virtual void CheckProxy ()
 Check if shell var "http_proxy" has been set and should be used.
 
virtual Int_t GetFromCache (char *buf, Int_t len, Int_t nseg, Long64_t *seg_pos, Int_t *seg_len)
 Extract requested segments from the cached content.
 
virtual Int_t GetFromWeb (char *buf, Int_t len, const TString &msg)
 Read request from web server.
 
virtual Int_t GetFromWeb10 (char *buf, Int_t len, const TString &msg, Int_t nseg=0, Long64_t *seg_pos=nullptr, Int_t *seg_len=nullptr)
 Read multiple byte range request from web server.
 
virtual Int_t GetHead ()
 Get the HTTP header.
 
virtual Int_t GetHunk (TSocket *s, char *hunk, Int_t maxsize)
 Read a hunk of data from the socket, up until a terminator.
 
virtual Int_t GetLine (TSocket *s, char *line, Int_t maxsize)
 Read a line from the socket.
 
virtual const char * HttpTerminator (const char *start, const char *peeked, Int_t peeklen)
 Determine whether [START, PEEKED + PEEKLEN) contains an HTTP new line [\r]\n.
 
void Init (Bool_t readHeadOnly) override
 Initialize a TWebFile object.
 
virtual void ProcessHttpHeader (const TString &headerLine)
 Process the HTTP header in the argument.
 
virtual Bool_t ReadBuffer10 (char *buf, Int_t len)
 Read specified byte range from remote file via HTTP 1.0 daemon (without mod-root installed).
 
virtual Bool_t ReadBuffers10 (char *buf, Long64_t *pos, Int_t *len, Int_t nbuf)
 Read specified byte ranges from remote file via HTTP 1.0 daemon (without mod-root installed).
 
virtual void SetMsgReadBuffer10 (const char *redirectLocation=nullptr, Bool_t tempRedirect=kFALSE)
 Set GET command for use by ReadBuffer(s)10(), handle redirection if needed.
 
- Protected Member Functions inherited from TFile
virtual Long64_t DirCreateEntry (TDirectory *)
 
virtual Int_t DirReadKeys (TDirectory *)
 
virtual void DirWriteHeader (TDirectory *)
 
virtual void DirWriteKeys (TDirectory *)
 
Bool_t FlushWriteCache ()
 Flush the write cache if active.
 
virtual EAsyncOpenStatus GetAsyncOpenStatus ()
 
virtual InfoListRet GetStreamerInfoListImpl (bool lookupSICache)
 See documentation of GetStreamerInfoList for more details.
 
Int_t MakeProjectParMake (const char *packname, const char *filename)
 Create makefile at 'filemake' for PAR package 'pack'.
 
Int_t MakeProjectParProofInf (const char *packname, const char *proofinfdir)
 Create BUILD.sh and SETUP.C under 'proofinf' for PAR package 'pack'.
 
Int_t ReadBufferViaCache (char *buf, Int_t len)
 Read buffer via cache.
 
virtual Int_t SysClose (Int_t fd)
 Interface to system close. All arguments like in POSIX close().
 
virtual Int_t SysOpen (const char *pathname, Int_t flags, UInt_t mode)
 Interface to system open. All arguments like in POSIX open().
 
virtual Int_t SysRead (Int_t fd, void *buf, Int_t len)
 Interface to system read. All arguments like in POSIX read().
 
virtual Long64_t SysSeek (Int_t fd, Long64_t offset, Int_t whence)
 Interface to system lseek.
 
virtual Int_t SysStat (Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime)
 Return file stat information.
 
virtual Int_t SysSync (Int_t fd)
 Interface to system fsync. All arguments like in POSIX fsync().
 
virtual Int_t SysWrite (Int_t fd, const void *buf, Int_t len)
 Interface to system write. All arguments like in POSIX write().
 
Int_t WriteBufferViaCache (const char *buf, Int_t len)
 Write buffer via cache.
 
- Protected Member Functions inherited from TDirectoryFile
void BuildDirectoryFile (TFile *motherFile, TDirectory *motherDir)
 Initialise directory to defaults.
 
void CleanTargets ()
 Clean the pointers to this object (gDirectory, TContext, etc.)
 
void InitDirectoryFile (TClass *cl=nullptr)
 Initialize the key associated with this directory (and the related data members.
 
- Protected Member Functions inherited from TDirectory
 TDirectory (const TDirectory &directory)=delete
 
void BuildDirectory (TFile *motherFile, TDirectory *motherDir)
 Initialise directory to defaults.
 
Bool_t cd1 (const char *path)
 flag to add histograms, graphs,etc to the directory
 
void CleanTargets ()
 Clean the pointers to this object (gDirectory, TContext, etc.).
 
void FillFullPath (TString &buf) const
 Recursive method to fill full path for directory.
 
void operator= (const TDirectory &)=delete
 
void RegisterContext (TContext *ctxt)
 Register a TContext pointing to this TDirectory object.
 
void RegisterGDirectory (SharedGDirectory_t &ptr)
 Register a std::atomic<TDirectory*> that will soon be pointing to this TDirectory object.
 
void UnregisterContext (TContext *ctxt)
 UnRegister a TContext pointing to this TDirectory object.
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected).
 
void MakeZombie ()
 

Protected Attributes

TString fBasicUrl
 
TString fBasicUrlOrg
 
void * fFullCache
 
Long64_t fFullCacheSize
 complete content of the file, some http server may return complete content
 
Bool_t fHasModRoot
 
Bool_t fHTTP11
 
TString fMsgGetHead
 
TString fMsgReadBuffer
 
TString fMsgReadBuffer10
 
Bool_t fNoProxy
 
TUrl fProxy
 
Long64_t fSize
 
TSocketfSocket
 
TUrl fUrlOrg
 
- Protected Attributes inherited from TFile
TArchiveFilefArchive {nullptr}
 !Archive file from which we read this file
 
Long64_t fArchiveOffset {0}
 !Offset at which file starts in archive
 
TFileOpenHandlefAsyncHandle {nullptr}
 !For proper automatic cleanup
 
EAsyncOpenStatus fAsyncOpenStatus {kAOSNotAsync}
 !Status of an asynchronous open request
 
Long64_t fBEGIN {0}
 First used byte in file.
 
Long64_t fBytesRead {0}
 Number of bytes read from this file.
 
Long64_t fBytesReadExtra {0}
 Number of extra bytes (overhead) read by the readahead buffer.
 
Long64_t fBytesWrite {0}
 Number of bytes written to this file.
 
TFileCacheReadfCacheRead {nullptr}
 !Pointer to the read cache (if any)
 
TMapfCacheReadMap {nullptr}
 !Pointer to the read cache (if any)
 
TFileCacheWritefCacheWrite {nullptr}
 !Pointer to the write cache (if any)
 
TArrayCfClassIndex {nullptr}
 !Index of TStreamerInfo classes written to this file
 
Int_t fCompress {0}
 Compression level and algorithm.
 
Int_t fD {-1}
 File descriptor.
 
Long64_t fEND {0}
 Last used byte in file.
 
TListfFree {nullptr}
 Free segments linked list table.
 
bool fGlobalRegistration = true
 ! if true, bypass use of global lists
 
TListfInfoCache {nullptr}
 !Cached list of the streamer infos in this file
 
Bool_t fInitDone {kFALSE}
 !True if the file has been initialized
 
Bool_t fIsArchive {kFALSE}
 !True if this is a pure archive file
 
Bool_t fIsPcmFile {kFALSE}
 !True if the file is a ROOT pcm file.
 
Bool_t fIsRootFile {kTRUE}
 !True is this is a ROOT file, raw file otherwise
 
Bool_t fMustFlush {kTRUE}
 !True if the file buffers must be flushed
 
Int_t fNbytesFree {0}
 Number of bytes for free segments structure.
 
Int_t fNbytesInfo {0}
 Number of bytes for StreamerInfo record.
 
Bool_t fNoAnchorInName {kFALSE}
 !True if we don't want to force the anchor to be appended to the file name
 
Int_t fNProcessIDs {0}
 Number of TProcessID written to this file.
 
Long64_t fOffset {0}
 !Seek offset cache
 
TListfOpenPhases {nullptr}
 !Time info about open phases
 
TString fOption
 File options.
 
TObjArrayfProcessIDs {nullptr}
 !Array of pointers to TProcessIDs
 
Int_t fReadCalls {0}
 Number of read calls ( not counting the cache calls )
 
TString fRealName
 Effective real file name (not original url)
 
Long64_t fSeekFree {0}
 Location on disk of free segments structure.
 
Long64_t fSeekInfo {0}
 Location on disk of StreamerInfo record.
 
Double_t fSum2Buffer {0}
 Sum of squares of buffer sizes of objects written so far.
 
Double_t fSumBuffer {0}
 Sum of buffer sizes of objects written so far.
 
Char_t fUnits {0}
 Number of bytes for file pointers.
 
TUrl fUrl
 !URL of file
 
Int_t fVersion {0}
 File format version.
 
std::mutex fWriteMutex
 !Lock for writing baskets / keys into the file.
 
Int_t fWritten {0}
 Number of objects written so far.
 
- Protected Attributes inherited from TDirectoryFile
Int_t fBufferSize {0}
 Default buffer size to create new TKeys.
 
TDatime fDatimeC
 Date and time when directory is created.
 
TDatime fDatimeM
 Date and time of last modification.
 
TFilefFile {nullptr}
 Pointer to current file in memory.
 
TListfKeys {nullptr}
 Pointer to keys list in memory.
 
Bool_t fModified {kFALSE}
 True if directory has been modified.
 
Int_t fNbytesKeys {0}
 Number of bytes for the keys.
 
Int_t fNbytesName {0}
 Number of bytes in TNamed at creation time.
 
Long64_t fSeekDir {0}
 Location of directory on file.
 
Long64_t fSeekKeys {0}
 Location of Keys record on file.
 
Long64_t fSeekParent {0}
 Location of parent directory on file.
 
Bool_t fWritable {kFALSE}
 True if directory is writable.
 
- Protected Attributes inherited from TDirectory
TContextfContext {nullptr}
 Buffer for GetPath() function.
 
std::atomic< size_t > fContextPeg {0}
 thread local gDirectory pointing to this object.
 
std::vector< SharedGDirectory_tfGDirectories
 
TListfList {nullptr}
 
TObjectfMother {nullptr}
 
TString fPathBuffer
 
std::atomic_flag fSpinLock
 Counter delaying the TDirectory destructor from finishing.
 
TUUID fUUID
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 

Static Protected Attributes

static Long64_t fgMaxFullCacheSize = 500000000
 
static TUrl fgProxy
 size of the cached content
 
- Static Protected Attributes inherited from TFile
static TListfgAsyncOpenRequests = nullptr
 
static std::atomic< Long64_tfgBytesRead {0}
 Number of bytes read by all TFile objects.
 
static std::atomic< Long64_tfgBytesWrite {0}
 Number of bytes written by all TFile objects.
 
static TString fgCacheFileDir
 Directory where to locally stage files.
 
static Bool_t fgCacheFileDisconnected = kTRUE
 Indicates, we trust in the files in the cache dir without stat on the cached file.
 
static Bool_t fgCacheFileForce = kFALSE
 Indicates, to force all READ to CACHEREAD.
 
static std::atomic< Long64_tfgFileCounter {0}
 Counter for all opened files.
 
static Bool_t fgOnlyStaged = kFALSE
 Before the file is opened, it is checked, that the file is staged, if not, the open fails.
 
static UInt_t fgOpenTimeout = TFile::kEternalTimeout
 Timeout for open operations in ms - 0 corresponds to blocking i/o.
 
static Int_t fgReadaheadSize = 256000
 Readahead buffer size.
 
static std::atomic< Int_tfgReadCalls {0}
 Number of bytes read from all TFile objects.
 
static Bool_t fgReadInfo = kTRUE
 if true (default) ReadStreamerInfo is called when opening a file
 
static ROOT::Internal::RConcurrentHashColl fgTsSIHashes
 !TS Set of hashes built from read streamer infos
 
- Static Protected Attributes inherited from TDirectory
static Bool_t fgAddDirectory = kTRUE
 MSVC doesn't support = ATOMIC_FLAG_INIT;.
 

Private Member Functions

 TWebFile ()
 

Friends

class TWebSocket
 
class TWebSystem
 

Additional Inherited Members

- Public Types inherited from TFile
enum  { kStartBigFile = 2000000000 }
 
enum  EAsyncOpenStatus { kAOSNotAsync = -1 , kAOSFailure = 0 , kAOSInProgress = 1 , kAOSSuccess = 2 }
 Asynchronous open request status. More...
 
enum  ECacheAction { kDisconnect = 0 , kDoNotDisconnect = 1 }
 TTreeCache flushing semantics. More...
 
enum  EFileType {
  kDefault = 0 , kLocal = 1 , kNet = 2 , kWeb = 3 ,
  kFile = 4 , kMerge = 5
}
 File type. More...
 
enum  EOpenTimeOut { kInstantTimeout = 0 , kEternalTimeout = 999999999 }
 Open timeout constants. More...
 
enum  ERelativeTo { kBeg = 0 , kCur = 1 , kEnd = 2 }
 
enum  EStatusBits {
  k630forwardCompatibility = (1ULL << ( 2 )) , kRecovered = (1ULL << ( 10 )) , kHasReferences = (1ULL << ( 11 )) , kDevNull = (1ULL << ( 12 )) ,
  kWriteError = (1ULL << ( 14 )) , kBinaryFile = (1ULL << ( 15 )) , kRedirected = (1ULL << ( 16 )) , kReproducible = (1ULL << ( 17 ))
}
 TFile status bits. BIT(13) is taken up by TObject. More...
 
- Public Types inherited from TDirectoryFile
enum  EStatusBits { kCloseDirectory = (1ULL << ( 7 )) }
 
- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) }
 
enum  EStatusBits {
  kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) ,
  kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 ))
}
 
- Protected Types inherited from TDirectory
using SharedGDirectory_t = std::shared_ptr< std::atomic< TDirectory * > >
 Pointer to a list of TContext object pointing to this TDirectory.
 
- Protected Types inherited from TObject
enum  { kOnlyPrepStep = (1ULL << ( 3 )) }
 
- Static Protected Member Functions inherited from TDirectory
static Bool_t Cd1 (const char *path)
 Change current directory to "path".
 
static SharedGDirectory_tGetSharedLocalCurrentDirectory ()
 Return the (address of) a shared pointer to the struct holding the actual thread local gDirectory pointer and the atomic_flag for its lock.
 

#include <TWebFile.h>

Inheritance diagram for TWebFile:
[legend]

Constructor & Destructor Documentation

◆ TWebFile() [1/3]

TWebFile::TWebFile ( )
inlineprivate

Definition at line 39 of file TWebFile.h.

◆ TWebFile() [2/3]

TWebFile::TWebFile ( const char *  url,
Option_t opt = "" 
)

Create a Web file object.

A web file is the same as a read-only TFile except that it is being read via a HTTP server. The url argument must be of the form: http://host.dom.ain/file.root. The opt can be "NOPROXY", to bypass any set "http_proxy" shell variable. The proxy can be specified as (in sh, or equivalent csh): export http_proxy=http://pcsalo.cern.ch:3128 The proxy can also be specified via the static method TWebFile::SetProxy(). Basic authentication (AuthType Basic) is supported. The user name and passwd can be specified in the url like this: http://username:mypasswd@pcsalo.cern.ch/files/aap.root If the file specified in the URL does not exist or is not accessible the kZombie bit will be set in the TWebFile object. Use IsZombie() to see if the file is accessible. The preferred interface to this constructor is via TFile::Open().

Definition at line 146 of file TWebFile.cxx.

◆ TWebFile() [3/3]

TWebFile::TWebFile ( TUrl  url,
Option_t opt = "" 
)

Create a Web file object.

A web file is the same as a read-only TFile except that it is being read via a HTTP server. Make sure url is a valid TUrl object. The opt can be "NOPROXY", to bypass any set "http_proxy" shell variable. The proxy can be specified as (in sh, or equivalent csh): export http_proxy=http://pcsalo.cern.ch:3128 The proxy can also be specified via the static method TWebFile::SetProxy(). Basic authentication (AuthType Basic) is supported. The user name and passwd can be specified in the url like this: http://username:mypasswd@pcsalo.cern.ch/files/aap.root If the file specified in the URL does not exist or is not accessible the kZombie bit will be set in the TWebFile object. Use IsZombie() to see if the file is accessible.

Definition at line 181 of file TWebFile.cxx.

◆ ~TWebFile()

TWebFile::~TWebFile ( )
virtual

Cleanup.

Definition at line 199 of file TWebFile.cxx.

Member Function Documentation

◆ BasicAuthentication()

TString TWebFile::BasicAuthentication ( )
protectedvirtual

Return basic authentication scheme, to be added to the request.

Definition at line 1385 of file TWebFile.cxx.

◆ CheckProxy()

void TWebFile::CheckProxy ( )
protectedvirtual

Check if shell var "http_proxy" has been set and should be used.

Definition at line 353 of file TWebFile.cxx.

◆ Class()

static TClass * TWebFile::Class ( )
static
Returns
TClass describing this class

◆ Class_Name()

static const char * TWebFile::Class_Name ( )
static
Returns
Name of this class

◆ Class_Version()

static constexpr Version_t TWebFile::Class_Version ( )
inlinestaticconstexpr
Returns
Version of this class

Definition at line 95 of file TWebFile.h.

◆ Close()

void TWebFile::Close ( Option_t option = "")
overridevirtual

Close a Web file.

Close the socket connection and delete the cache See also the TFile::Close() function

Reimplemented from TFile.

Definition at line 412 of file TWebFile.cxx.

◆ DeclFileName()

static const char * TWebFile::DeclFileName ( )
inlinestatic
Returns
Name of the file containing the class declaration

Definition at line 95 of file TWebFile.h.

◆ GetFromCache()

Int_t TWebFile::GetFromCache ( char *  buf,
Int_t  len,
Int_t  nseg,
Long64_t seg_pos,
Int_t seg_len 
)
protectedvirtual

Extract requested segments from the cached content.

Such cache can be produced when server suddenly returns full data instead of segments Returns -1 in case of error, 0 in case of success

Definition at line 600 of file TWebFile.cxx.

◆ GetFromWeb()

Int_t TWebFile::GetFromWeb ( char *  buf,
Int_t  len,
const TString msg 
)
protectedvirtual

Read request from web server.

Returns -1 in case of error, 0 in case of success.

Definition at line 625 of file TWebFile.cxx.

◆ GetFromWeb10()

Int_t TWebFile::GetFromWeb10 ( char *  buf,
Int_t  len,
const TString msg,
Int_t  nseg = 0,
Long64_t seg_pos = nullptr,
Int_t seg_len = nullptr 
)
protectedvirtual

Read multiple byte range request from web server.

Uses HTTP 1.0 daemon wihtout mod-root. Returns -2 in case file does not exist, -1 in case of error and 0 in case of success.

Definition at line 692 of file TWebFile.cxx.

◆ GetHead()

Int_t TWebFile::GetHead ( )
protectedvirtual

Get the HTTP header.

Depending on the return code we can see if the file exists and if the server uses mod_root. Returns -1 in case of an error, -2 in case the file does not exists, -3 in case HEAD is not supported (dCache HTTP door) and 0 in case of success.

Reimplemented in TS3WebFile.

Definition at line 1045 of file TWebFile.cxx.

◆ GetHunk()

Int_t TWebFile::GetHunk ( TSocket s,
char *  hunk,
Int_t  maxsize 
)
protectedvirtual

Read a hunk of data from the socket, up until a terminator.

The hunk is limited by whatever the TERMINATOR callback chooses as its terminator. For example, if terminator stops at newline, the hunk will consist of a line of data; if terminator stops at two newlines, it can be used to read the head of an HTTP response. Upon determining the boundary, the function returns the data (up to the terminator) in hunk.

In case of read error, -1 is returned. In case of having read some data, but encountering EOF before seeing the terminator, the data that has been read is returned, but it will (obviously) not contain the terminator.

The TERMINATOR function is called with three arguments: the beginning of the data read so far, the beginning of the current block of peeked-at data, and the length of the current block. Depending on its needs, the function is free to choose whether to analyze all data or just the newly arrived data. If TERMINATOR returns 0, it means that the terminator has not been seen. Otherwise it should return a pointer to the character immediately following the terminator.

The idea is to be able to read a line of input, or otherwise a hunk of text, such as the head of an HTTP request, without crossing the boundary, so that the next call to RecvRaw() etc. reads the data after the hunk. To achieve that, this function does the following:

  1. Peek at incoming data.
  2. Determine whether the peeked data, along with the previously read data, includes the terminator.

3a. If yes, read the data until the end of the terminator, and exit.

3b. If no, read the peeked data and goto 1.

The function is careful to assume as little as possible about the implementation of peeking. For example, every peek is followed by a read. If the read returns a different amount of data, the process is retried until all data arrives safely.

Reads at most one less than the number of characters specified by maxsize.

Definition at line 1275 of file TWebFile.cxx.

◆ GetLine()

Int_t TWebFile::GetLine ( TSocket s,
char *  line,
Int_t  maxsize 
)
protectedvirtual

Read a line from the socket.

Reads at most one less than the number of characters specified by maxsize. Reading stops when a newline character is found, The newline (\n) and cr (\r), if any, are removed. Returns -1 in case of error, or the number of characters read (>= 0) otherwise.

Definition at line 1212 of file TWebFile.cxx.

◆ GetMaxFullCacheSize()

Long64_t TWebFile::GetMaxFullCacheSize ( )
static

Static method returning maxmimal size of full cache, which can be preserved by file instance.

Definition at line 1440 of file TWebFile.cxx.

◆ GetProxy()

const char * TWebFile::GetProxy ( )
static

Static method returning the global proxy URL.

Definition at line 1420 of file TWebFile.cxx.

◆ GetSize()

Long64_t TWebFile::GetSize ( ) const
overridevirtual

Return maximum file size.

Reimplemented from TFile.

Definition at line 1010 of file TWebFile.cxx.

◆ HttpTerminator()

const char * TWebFile::HttpTerminator ( const char *  start,
const char *  peeked,
Int_t  peeklen 
)
protectedvirtual

Determine whether [START, PEEKED + PEEKLEN) contains an HTTP new line [\r]\n.

If so, return the pointer to the position after the line, otherwise return 0. This is used as callback to GetHunk(). The data between START and PEEKED has been read and cannot be "unread"; the data after PEEKED has only been peeked.

Definition at line 1350 of file TWebFile.cxx.

◆ Init()

void TWebFile::Init ( Bool_t  readHeadOnly)
overrideprotectedvirtual

Initialize a TWebFile object.

Reimplemented from TFile.

Definition at line 212 of file TWebFile.cxx.

◆ IsA()

TClass * TWebFile::IsA ( ) const
inlineoverridevirtual
Returns
TClass describing current object

Reimplemented from TFile.

Definition at line 95 of file TWebFile.h.

◆ IsOpen()

Bool_t TWebFile::IsOpen ( ) const
overridevirtual

A TWebFile that has been correctly constructed is always considered open.

Reimplemented from TFile.

Definition at line 380 of file TWebFile.cxx.

◆ ProcessHttpHeader()

void TWebFile::ProcessHttpHeader ( const TString headerLine)
protectedvirtual

Process the HTTP header in the argument.

This method is intended to be overwritten by subclasses that exploit the information contained in the HTTP headers.

Reimplemented in TS3WebFile.

Definition at line 1432 of file TWebFile.cxx.

◆ ReadBuffer() [1/2]

Bool_t TWebFile::ReadBuffer ( char *  buf,
Int_t  len 
)
overridevirtual

Read specified byte range from remote file via HTTP daemon.

This routine connects to the remote host, sends the request and returns the buffer. Returns kTRUE in case of error.

Reimplemented from TFile.

Definition at line 429 of file TWebFile.cxx.

◆ ReadBuffer() [2/2]

Bool_t TWebFile::ReadBuffer ( char *  buf,
Long64_t  pos,
Int_t  len 
)
overridevirtual

Read specified byte range from remote file via HTTP daemon.

This routine connects to the remote host, sends the request and returns the buffer. Returns kTRUE in case of error.

Reimplemented from TFile.

Definition at line 467 of file TWebFile.cxx.

◆ ReadBuffer10()

Bool_t TWebFile::ReadBuffer10 ( char *  buf,
Int_t  len 
)
protectedvirtual

Read specified byte range from remote file via HTTP 1.0 daemon (without mod-root installed).

This routine connects to the remote host, sends the request and returns the buffer. Returns kTRUE in case of error.

Definition at line 478 of file TWebFile.cxx.

◆ ReadBuffers()

Bool_t TWebFile::ReadBuffers ( char *  buf,
Long64_t pos,
Int_t len,
Int_t  nbuf 
)
overridevirtual

Read specified byte ranges from remote file via HTTP daemon.

Reads the nbuf blocks described in arrays pos and len, where pos[i] is the seek position of block i of length len[i]. Note that for nbuf=1, this call is equivalent to TFile::ReafBuffer This function is overloaded by TNetFile, TWebFile, etc. Returns kTRUE in case of failure.

Reimplemented from TFile.

Definition at line 517 of file TWebFile.cxx.

◆ ReadBuffers10()

Bool_t TWebFile::ReadBuffers10 ( char *  buf,
Long64_t pos,
Int_t len,
Int_t  nbuf 
)
protectedvirtual

Read specified byte ranges from remote file via HTTP 1.0 daemon (without mod-root installed).

Read the nbuf blocks described in arrays pos and len, where pos[i] is the seek position of block i of length len[i]. Note that for nbuf=1, this call is equivalent to TFile::ReafBuffer This function is overloaded by TNetFile, TWebFile, etc. Returns kTRUE in case of failure.

Definition at line 566 of file TWebFile.cxx.

◆ ReOpen()

Int_t TWebFile::ReOpen ( Option_t mode)
overridevirtual

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. A TWebFile cannot be reopened in update mode.

Reimplemented from TFile.

Definition at line 394 of file TWebFile.cxx.

◆ Seek()

void TWebFile::Seek ( Long64_t  offset,
ERelativeTo  pos = kBeg 
)
overridevirtual

Set position from where to start reading.

Reimplemented from TFile.

Definition at line 989 of file TWebFile.cxx.

◆ SetMaxFullCacheSize()

void TWebFile::SetMaxFullCacheSize ( Long64_t  sz)
static

Static method, set maxmimal size of full cache,.

Definition at line 1449 of file TWebFile.cxx.

◆ SetMsgReadBuffer10()

void TWebFile::SetMsgReadBuffer10 ( const char *  redirectLocation = nullptr,
Bool_t  tempRedirect = kFALSE 
)
protectedvirtual

Set GET command for use by ReadBuffer(s)10(), handle redirection if needed.

Give full URL so Apache's virtual hosts solution works.

Reimplemented in TS3WebFile.

Definition at line 268 of file TWebFile.cxx.

◆ SetProxy()

void TWebFile::SetProxy ( const char *  url)
static

Static method setting global proxy URL.

Definition at line 1404 of file TWebFile.cxx.

◆ Streamer()

void TWebFile::Streamer ( TBuffer b)
overridevirtual

Stream a TFile object.

Reimplemented from TFile.

◆ StreamerNVirtual()

void TWebFile::StreamerNVirtual ( TBuffer ClassDef_StreamerNVirtual_b)
inline

Definition at line 95 of file TWebFile.h.

Friends And Related Symbol Documentation

◆ TWebSocket

friend class TWebSocket
friend

Definition at line 35 of file TWebFile.h.

◆ TWebSystem

friend class TWebSystem
friend

Definition at line 36 of file TWebFile.h.

Member Data Documentation

◆ fBasicUrl

TString TWebFile::fBasicUrl
protected

Definition at line 51 of file TWebFile.h.

◆ fBasicUrlOrg

TString TWebFile::fBasicUrlOrg
protected

Definition at line 53 of file TWebFile.h.

◆ fFullCache

void* TWebFile::fFullCache
protected

Definition at line 54 of file TWebFile.h.

◆ fFullCacheSize

Long64_t TWebFile::fFullCacheSize
protected

complete content of the file, some http server may return complete content

Definition at line 55 of file TWebFile.h.

◆ fgMaxFullCacheSize

Long64_t TWebFile::fgMaxFullCacheSize = 500000000
staticprotected

Definition at line 58 of file TWebFile.h.

◆ fgProxy

TUrl TWebFile::fgProxy
staticprotected

size of the cached content

Definition at line 57 of file TWebFile.h.

◆ fHasModRoot

Bool_t TWebFile::fHasModRoot
protected

Definition at line 45 of file TWebFile.h.

◆ fHTTP11

Bool_t TWebFile::fHTTP11
protected

Definition at line 46 of file TWebFile.h.

◆ fMsgGetHead

TString TWebFile::fMsgGetHead
protected

Definition at line 50 of file TWebFile.h.

◆ fMsgReadBuffer

TString TWebFile::fMsgReadBuffer
protected

Definition at line 48 of file TWebFile.h.

◆ fMsgReadBuffer10

TString TWebFile::fMsgReadBuffer10
protected

Definition at line 49 of file TWebFile.h.

◆ fNoProxy

Bool_t TWebFile::fNoProxy
protected

Definition at line 47 of file TWebFile.h.

◆ fProxy

TUrl TWebFile::fProxy
protected

Definition at line 44 of file TWebFile.h.

◆ fSize

Long64_t TWebFile::fSize
mutableprotected

Definition at line 42 of file TWebFile.h.

◆ fSocket

TSocket* TWebFile::fSocket
protected

Definition at line 43 of file TWebFile.h.

◆ fUrlOrg

TUrl TWebFile::fUrlOrg
protected

Definition at line 52 of file TWebFile.h.

Libraries for TWebFile:

The documentation for this class was generated from the following files: