CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/Utilities/XrdAdaptor/src/XrdFile.h

Go to the documentation of this file.
00001 #ifndef XRD_ADAPTOR_XRD_FILE_H
00002 # define XRD_ADAPTOR_XRD_FILE_H
00003 
00004 # include "Utilities/StorageFactory/interface/Storage.h"
00005 # include "Utilities/StorageFactory/interface/IOFlags.h"
00006 # include "XrdClient/XrdClient.hh"
00007 # include <string>
00008 
00009 class XrdFile : public Storage
00010 {
00011 public:
00012   XrdFile (void);
00013   XrdFile (IOFD fd);
00014   XrdFile (const char *name, int flags = IOFlags::OpenRead, int perms = 0666);
00015   XrdFile (const std::string &name, int flags = IOFlags::OpenRead, int perms = 0666);
00016   ~XrdFile (void);
00017 
00018   virtual void  create (const char *name,
00019                         bool exclusive = false,
00020                         int perms = 0666);
00021   virtual void  create (const std::string &name,
00022                         bool exclusive = false,
00023                         int perms = 0666);
00024   virtual void  open (const char *name,
00025                       int flags = IOFlags::OpenRead,
00026                       int perms = 0666);
00027   virtual void  open (const std::string &name,
00028                       int flags = IOFlags::OpenRead,
00029                       int perms = 0666);
00030 
00031   using Storage::read;
00032   using Storage::readv;
00033   using Storage::write;
00034   using Storage::position;
00035 
00036   virtual bool          prefetch (const IOPosBuffer *what, IOSize n);
00037   virtual IOSize        read (void *into, IOSize n);
00038   virtual IOSize        read (void *into, IOSize n, IOOffset pos);
00039   virtual IOSize        readv (IOBuffer *into, IOSize n);
00040   virtual IOSize        readv (IOPosBuffer *into, IOSize n);
00041   virtual IOSize        write (const void *from, IOSize n);
00042   virtual IOSize        write (const void *from, IOSize n, IOOffset pos);
00043 
00044   virtual IOOffset      position (IOOffset offset, Relative whence = SET);
00045   virtual void          resize (IOOffset size);
00046 
00047   virtual void          close (void);
00048   virtual void          abort (void);
00049 
00050 private:
00051   XrdClient             *m_client;
00052   IOOffset              m_offset;
00053   XrdClientStatInfo     m_stat;
00054   bool                  m_close;
00055   std::string           m_name;
00056 };
00057 
00058 #endif // XRD_ADAPTOR_XRD_FILE_H