FARGOS/VISTA Object Management Environment Core  ..
FARGOS/VISTA Object Management Environment Core Table of Contents
OMEfileDescriptor.h
Go to the documentation of this file.
1 #ifndef _OME_FILE_DESCRIPTOR_H
2 #define _OME_FILE_DESCRIPTOR_H "$Id: OMEfileDescriptor.h 357 2020-06-18 23:13:25Z geoff $"
4 
6 #include <OMEioObjects.h>
7 
12 class OMEfileDescriptor final : public OMEioDescriptor {
13 private:
14 static OMEioDescriptor *openFile(const char *name, uint32_t openMode,
15  int *errRC = nullptr);
16 
18  bool fileIsOpen;
19 public:
20 static OMEioDescriptor *openFileScheme(const OMEstring &url, int *errRet = nullptr);
21 
22  OMEfileDescriptor(uint64_t handle, OMEioEvent::OMEfileType type,
23  const OMEstring *fileName);
24 
26 
27  virtual int readBytes(unsigned char *bfr, size_t bytes, size_t *actualBytes, int *errRet) override;
28 
29  virtual int writeBytes(const unsigned char *bfr, size_t bytes, size_t *actualBytes, int *errRet) override;
30 
31 #ifndef _WIN32
32  virtual int writeVectorOfBytes(const OMEioVector *v, uint_fast16_t elementCount,
33  size_t *actualBytes, int *errRet, size_t skipBytes = 0) override;
34 #endif
35  virtual OMEevent *selectForRead(OMEeventCallbackFP func, OMEthread *t = nullptr) override;
36 
37  virtual OMEevent *selectForWrite(OMEeventCallbackFP func, OMEthread *t = nullptr) override;
38 
39  virtual OMEioDescriptor *acceptConnection(int *errRet) override;
40 
41  virtual int seekToOffset(size_t offset) override;
42 
43  virtual int close(int mask) override;
44 
45  virtual OMEstring *getLocalAddress() const override;
46 
47  virtual bool isOpen() const override { return (fileIsOpen); }
48 }; // end class OMEfileDescriptor
49 
52 #endif
53 /* vim: set expandtab shiftwidth=4 tabstop=4: */
OMEeventCallbackFP
bool(* OMEeventCallbackFP)(class OMEevent *, OMEthread *)
Definition: OMEevent.h:16
OMEfileDescriptor::fileIsOpen
bool fileIsOpen
Definition: OMEfileDescriptor.h:18
OMEprofileCounter< uint32_t >
OMEfileDescriptor::~OMEfileDescriptor
~OMEfileDescriptor()
Definition: OMEfileDescriptor.cpp:255
OMEioObjects.h
INIT_DECLARE_file
OME_DLL_EXPORT void INIT_DECLARE_file()
Definition: OMEfileDescriptor.cpp:539
OMEfileDescriptor::seekToOffset
virtual int seekToOffset(size_t offset) override
Definition: OMEfileDescriptor.cpp:519
OMEioDescriptor::mustExist
@ mustExist
Definition: OMEioObjects.h:30
OMEioEvent::selectRead
@ selectRead
Definition: OMEioEvents.h:21
OMEioDescriptor::write
@ write
Definition: OMEioObjects.h:28
OMEioDescriptor::read
@ read
Definition: OMEioObjects.h:28
OMEioEvent::selectWrite
@ selectWrite
Definition: OMEioEvents.h:21
OMEioEvent::file
@ file
Definition: OMEioEvents.h:20
OMEioDescriptor::truncate
@ truncate
Definition: OMEioObjects.h:30
OMEstring
Implements text and binary string storage.
Definition: OMEstring.h:305
OMEfileDescriptor::openFileScheme
static OMEioDescriptor * openFileScheme(const OMEstring &url, int *errRet=nullptr)
Definition: OMEfileDescriptor.cpp:178
EAGAIN
#define EAGAIN
Definition: tmp.o.cpp:64
OMEioEvent
I/O-specific event.
Definition: OMEioEvents.h:16
OMEfileDescriptor::writeBytes
virtual int writeBytes(const unsigned char *bfr, size_t bytes, size_t *actualBytes, int *errRet) override
Definition: OMEfileDescriptor.cpp:354
OMEfileDescriptor.h
INVALID_HANDLE_VALUE
#define INVALID_HANDLE_VALUE
Definition: poll_monitor.hpp:19
OMEcore.h
OMEfileDescriptor::close
virtual int close(int mask) override
Definition: OMEfileDescriptor.cpp:512
OMEfileDescriptor::selectForRead
virtual OMEevent * selectForRead(OMEeventCallbackFP func, OMEthread *t=nullptr) override
Definition: OMEfileDescriptor.cpp:480
srcID
const char srcID[]
Definition: catSym.c:17
OMEfileDescriptor::openFile
static OMEioDescriptor * openFile(const char *name, uint32_t openMode, int *errRC=nullptr)
Definition: OMEfileDescriptor.cpp:122
OMEfileDescriptor::acceptConnection
virtual OMEioDescriptor * acceptConnection(int *errRet) override
Definition: OMEfileDescriptor.cpp:527
OMEfileDescriptor::selectForWrite
virtual OMEevent * selectForWrite(OMEeventCallbackFP func, OMEthread *t=nullptr) override
Definition: OMEfileDescriptor.cpp:501
OMEioEvent::OMEfileType
OMEfileType
Definition: OMEioEvents.h:20
NULL
#define NULL
Definition: tmp.o.cpp:327
OMEfileDescriptor::localName
OMEstring localName
Definition: OMEfileDescriptor.h:17
OMEioDescriptor::create
@ create
Definition: OMEioObjects.h:29
OMEioDescriptor::adjustVector
uint_fast16_t adjustVector(OMEioVector *result, uint_fast16_t count, const OMEioVector *v, size_t skipCount)
Definition: OMEioObjects.cpp:121
OMEioVector
Equivalent of iov structure.
Definition: OMEioObjects.h:18
OMEfileDescriptor
Filesystem-specific I/O descriptor.
Definition: OMEfileDescriptor.h:12
OMEfileDescriptor::getLocalAddress
virtual OMEstring * getLocalAddress() const override
Definition: OMEfileDescriptor.cpp:533
OMEstring::length
size_t length() const
Definition: OMEstring.h:401
OME_USED
const char srcID[] OME_USED
Definition: tick_time.cpp:24
SEEK_SET
#define SEEK_SET
Definition: tmp.o.cpp:506
OMEioDescriptor::append
@ append
Definition: OMEioObjects.h:31
OMEioDescriptor::ioHandle
uint64_t ioHandle
Definition: OMEioObjects.h:36
errno
int errno
Definition: ethers.c:41
OMEevent
Base class for events within the FARGOS/VISTA Object Management Environment.
Definition: OMEevent.h:22
elementCount
int elementCount(OMEthread *thread, OMEtype &result, const OMEtype &arg)
Definition: OILtypeFuncs.cpp:168
OMEdebugInfo.h
OME debug and profiling interfaces.
OME_DLL_EXPORT
#define OME_DLL_EXPORT
Definition: compiler_hints.h:464
OMEthread
Public interface to an OME thread.
Definition: OMEthread.h:60
LOG_ENDLINE
#define LOG_ENDLINE
Closing clause for text line output using << operators.
Definition: logging_api.hpp:2956
OMEregisterIOscheme
int OMEregisterIOscheme(const OMEstring &prefix, OMEopenSchemeFP func)
Register support for new I/O transport scheme.
Definition: OMEioObjects.cpp:219
OMEfileDescriptor::OMEfileDescriptor
OMEfileDescriptor(uint64_t handle, OMEioEvent::OMEfileType type, const OMEstring *fileName)
Definition: OMEfileDescriptor.cpp:242
OMEfileDescriptor::writeVectorOfBytes
virtual int writeVectorOfBytes(const OMEioVector *v, uint_fast16_t elementCount, size_t *actualBytes, int *errRet, size_t skipBytes=0) override
Definition: OMEfileDescriptor.cpp:385
OMEioDescriptor
Base class for open files and sockets.
Definition: OMEioObjects.h:26
OMEfileDescriptor::isOpen
virtual bool isOpen() const override
Definition: OMEfileDescriptor.h:47
MAX_IO_VECTORS
#define MAX_IO_VECTORS
Definition: OMEfileDescriptor.cpp:31
OMEfileDescriptor::readBytes
virtual int readBytes(unsigned char *bfr, size_t bytes, size_t *actualBytes, int *errRet) override
Definition: OMEfileDescriptor.cpp:294
LOG_CERR
#define LOG_CERR(lvl)
Convenience macro that uses LOG_INTO() to conditionally log a message to standard error.
Definition: logging_api.hpp:3014
logging_api.hpp
FARGOS Logging API.
Generated: Fri Jul 31 2020 18:19:14
Support Information