5 #ifndef DMLITE_CPP_IO_H
6 #define DMLITE_CPP_IO_H
8 #include "dmlite/common/config.h"
38 return std::string(
"IOHandler");
51 virtual struct ::stat
fstat(
void) ;
57 virtual size_t read(
char* buffer,
size_t count) ;
63 virtual size_t write(
const char* buffer,
size_t count) ;
71 virtual size_t readv(
const struct iovec* vector,
size_t count) ;
79 virtual size_t writev(
const struct iovec* vector,
size_t count) ;
86 virtual size_t pread(
void* buffer,
size_t count, off_t offset) ;
93 virtual size_t pwrite(
const void* buffer,
size_t count, off_t offset) ;
132 mode_t mode = 0660) ;
134 const std::string& pfn,
137 mode_t mode = 0660) ;
Base class for factories.
Definition: base.h:48
Base class for interfaces.
Definition: base.h:18
Helpful typedef for KeyValue containers.
Definition: extensible.h:20
Plug-ins must implement a concrete factory to be instantiated.
Definition: io.h:153
static IODriver * createIODriver(IODriverFactory *factory, PluginManager *pm)
virtual IODriver * createIODriver(PluginManager *pm)
Create a IODriver.
virtual ~IODriverFactory()
Virtual destructor.
IO Driver.
Definition: io.h:111
virtual void setSecurityContext(const SecurityContext *ctx)
Set the security context.
static IOHandler * createIOHandler(IODriver *factory, const std::string &pfn, int flags, const Extensible &extras, mode_t mode=0660)
virtual void doneWriting(const Location &loc)
@ kInsecure
Definition: io.h:116
virtual std::string getImplId(void) const =0
String ID of the implementation.
virtual ~IODriver()
Virtual destructor.
static void setSecurityContext(IODriver *i, const SecurityContext *ctx)
virtual IOHandler * createIOHandler(const std::string &pfn, int flags, const Extensible &extras, mode_t mode=0660)
IO interface.
Definition: io.h:26
Whence
Definition: io.h:28
@ kEnd
End of file.
Definition: io.h:30
@ kSet
Beginning of the file.
Definition: io.h:28
@ kCur
Current position.
Definition: io.h:29
virtual ~IOHandler()
Virtual destructor.
virtual void close(void)
Close.
virtual size_t read(char *buffer, size_t count)
virtual bool eof(void)
Return true if end of file.
virtual size_t readv(const struct iovec *vector, size_t count)
virtual struct ::stat fstat(void)
virtual size_t writev(const struct iovec *vector, size_t count)
virtual int fileno(void)
Return internal file descriptor, if any.
virtual size_t write(const char *buffer, size_t count)
virtual void flush(void)
Flush the buffer.
std::string getImplId(void) const
String ID of the implementation.
Definition: io.h:37
virtual off_t tell(void)
Return the cursor position.
virtual size_t pwrite(const void *buffer, size_t count, off_t offset)
virtual void seek(off_t offset, Whence whence)
virtual size_t pread(void *buffer, size_t count, off_t offset)
Represent the complete location of a file.
Definition: pooldriver.h:50
CatalogInterface can only be instantiated through this class.
Definition: dmlite.h:42
Security context. To be created by the Authn.
Definition: authn.h:73
Exceptions used by the API.
Extensible types (hold metadata).
Namespace for the dmlite C++ API.
Definition: authn.h:16