10 #ifndef ROOT_TNetXNGFile
11 #define ROOT_TNetXNGFile
27 #include <XrdCl/XrdClFileSystem.hh>
39 enum Flags {None = 0};
44 class TNetXNGFile:
public TFile {
48 XrdCl::OpenFlags::Flags fMode;
49 XrdSysCondVar *fInitCondVar;
53 Int_t fQueryReadVParams;
57 TNetXNGFile() : TFile(),
58 fFile(0), fUrl(0), fMode(XrdCl::OpenFlags::None), fInitCondVar(0),
59 fReadvIorMax(0), fReadvIovMax(0) {}
60 TNetXNGFile(
const char *url,
const char *lurl, Option_t *mode ,
const char *title ,
61 Int_t compress , Int_t netopt , Bool_t parallelopen );
62 TNetXNGFile(
const char *url, Option_t *mode =
"",
const char *title =
"",
63 Int_t compress = 1, Int_t netopt = 0, Bool_t parallelopen = kFALSE);
65 virtual ~TNetXNGFile();
67 virtual void Init(Bool_t create);
68 virtual void Close(
const Option_t *option =
"");
69 virtual void Seek(Long64_t offset, ERelativeTo position = kBeg);
70 virtual void SetAsyncOpenStatus(EAsyncOpenStatus status);
71 virtual Long64_t GetSize()
const;
72 virtual Int_t ReOpen(Option_t *modestr);
73 virtual Bool_t IsOpen()
const;
74 virtual Bool_t WriteBuffer(
const char *buffer, Int_t length);
76 virtual Bool_t ReadBuffer(
char *buffer, Int_t length);
77 virtual Bool_t ReadBuffer(
char *buffer, Long64_t position, Int_t length);
78 virtual Bool_t ReadBuffers(
char *buffer, Long64_t *position, Int_t *length,
80 virtual TString GetNewUrl() {
return fNewUrl; }
83 virtual Bool_t IsUseable()
const;
84 virtual Bool_t GetVectorReadLimits();
85 virtual void SetEnv();
86 Int_t ParseOpenMode(Option_t *in, TString &modestr,
87 XrdCl::OpenFlags::Flags &mode, Bool_t assumeRead);
89 TNetXNGFile(
const TNetXNGFile &other);
90 TNetXNGFile &operator =(
const TNetXNGFile &other);
92 ClassDef(TNetXNGFile, 0)
95 #endif // ROOT_TNetXNGFile