/usr/include/root/TWebFile.h is in libroot-net-dev 5.34.19+dfsg-1.2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | // @(#)root/net:$Id$
// Author: Fons Rademakers 17/01/97
/*************************************************************************
* Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
#ifndef ROOT_TWebFile
#define ROOT_TWebFile
//////////////////////////////////////////////////////////////////////////
// //
// TWebFile //
// //
// A TWebFile is like a normal TFile except that it reads its data //
// via a standard apache web server. A TWebFile is a read-only file. //
// //
//////////////////////////////////////////////////////////////////////////
#ifndef ROOT_TFile
#include "TFile.h"
#endif
#ifndef ROOT_TUrl
#include "TUrl.h"
#endif
#ifndef ROOT_TSystem
#include "TSystem.h"
#endif
class TSocket;
class TWebSocket;
class TWebFile : public TFile {
friend class TWebSocket;
friend class TWebSystem;
private:
TWebFile() : fSocket(0) { }
protected:
mutable Long64_t fSize; // file size
TSocket *fSocket; // socket for HTTP/1.1 (stays alive between calls)
TUrl fProxy; // proxy URL
Bool_t fHasModRoot; // true if server has mod_root installed
Bool_t fHTTP11; // true if server support HTTP/1.1
Bool_t fNoProxy; // don't use proxy
TString fMsgReadBuffer; // cache ReadBuffer() msg
TString fMsgReadBuffer10; // cache ReadBuffer10() msg
TString fMsgGetHead; // cache GetHead() msg
TString fBasicUrl; // basic url without authentication and options
TUrl fUrlOrg; // save original url in case of temp redirection
TString fBasicUrlOrg; // save original url in case of temp redirection
static TUrl fgProxy; // globally set proxy URL
virtual void Init(Bool_t readHeadOnly);
virtual void CheckProxy();
virtual TString BasicAuthentication();
virtual Int_t GetHead();
virtual Int_t GetLine(TSocket *s, char *line, Int_t maxsize);
virtual Int_t GetHunk(TSocket *s, char *hunk, Int_t maxsize);
virtual const char *HttpTerminator(const char *start, const char *peeked, Int_t peeklen);
virtual Int_t GetFromWeb(char *buf, Int_t len, const TString &msg);
virtual Int_t GetFromWeb10(char *buf, Int_t len, const TString &msg);
virtual Bool_t ReadBuffer10(char *buf, Int_t len);
virtual Bool_t ReadBuffers10(char *buf, Long64_t *pos, Int_t *len, Int_t nbuf);
virtual void SetMsgReadBuffer10(const char *redirectLocation = 0, Bool_t tempRedirect = kFALSE);
virtual void ProcessHttpHeader(const TString& headerLine);
public:
TWebFile(const char *url, Option_t *opt="");
TWebFile(TUrl url, Option_t *opt="");
virtual ~TWebFile();
virtual Long64_t GetSize() const;
virtual Bool_t IsOpen() const;
virtual Int_t ReOpen(Option_t *mode);
virtual Bool_t ReadBuffer(char *buf, Int_t len);
virtual Bool_t ReadBuffer(char *buf, Long64_t pos, Int_t len);
virtual Bool_t ReadBuffers(char *buf, Long64_t *pos, Int_t *len, Int_t nbuf);
virtual void Seek(Long64_t offset, ERelativeTo pos = kBeg);
static void SetProxy(const char *url);
static const char *GetProxy();
ClassDef(TWebFile,2) //A ROOT file that reads via a http server
};
class TWebSystem : public TSystem {
private:
void *fDirp; // directory handler
void *GetDirPtr() const { return fDirp; }
public:
TWebSystem();
virtual ~TWebSystem() { }
Int_t MakeDirectory(const char *name);
void *OpenDirectory(const char *name);
void FreeDirectory(void *dirp);
const char *GetDirEntry(void *dirp);
Int_t GetPathInfo(const char *path, FileStat_t &buf);
Bool_t AccessPathName(const char *path, EAccessMode mode);
Int_t Unlink(const char *path);
ClassDef(TWebSystem,0) // Directory handler for HTTP (TWebFiles)
};
#endif
|