CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes
LStoreFile Class Reference

#include <LStoreFile.h>

Inheritance diagram for LStoreFile:
Storage IOInput IOOutput

Classes

class  MutexWrapper
 

Public Member Functions

virtual void abort (void)
 
void close (void) override
 
virtual void create (const char *name, bool exclusive=false, int perms=0666)
 
virtual void create (const std::string &name, bool exclusive=false, int perms=0666)
 
 LStoreFile (void)
 
 LStoreFile (void *fd)
 
 LStoreFile (const char *name, int flags=IOFlags::OpenRead, int perms=0666)
 
 LStoreFile (const std::string &name, int flags=IOFlags::OpenRead, int perms=0666)
 
virtual void open (const char *name, int flags=IOFlags::OpenRead, int perms=0666)
 
virtual void open (const std::string &name, int flags=IOFlags::OpenRead, int perms=0666)
 
IOOffset position (IOOffset offset, Relative whence=SET) override
 
IOSize read (void *into, IOSize n) override
 
void resize (IOOffset size) override
 
IOSize write (const void *from, IOSize n) override
 
 ~LStoreFile (void) override
 
- Public Member Functions inherited from Storage
virtual bool eof (void) const
 
virtual void flush (void)
 
virtual IOOffset position (void) const
 
virtual bool prefetch (const IOPosBuffer *what, IOSize n)
 
virtual IOSize read (void *into, IOSize n, IOOffset pos)
 
IOSize read (IOBuffer into, IOOffset pos)
 
virtual IOSize readv (IOPosBuffer *into, IOSize buffers)
 
virtual void rewind (void)
 
virtual IOOffset size (void) const
 
 Storage (void)
 
virtual IOSize write (const void *from, IOSize n, IOOffset pos)
 
IOSize write (IOBuffer from, IOOffset pos)
 
virtual IOSize writev (const IOPosBuffer *from, IOSize buffers)
 
 ~Storage (void) override
 
- Public Member Functions inherited from IOInput
int read (void)
 
IOSize read (IOBuffer into)
 
virtual IOSize readv (IOBuffer *into, IOSize buffers)
 
IOSize xread (IOBuffer into)
 
IOSize xread (void *into, IOSize n)
 
IOSize xreadv (IOBuffer *into, IOSize buffers)
 
virtual ~IOInput (void)
 Destruct the stream. A no-op. More...
 
- Public Member Functions inherited from IOOutput
IOSize write (unsigned char byte)
 
IOSize write (IOBuffer from)
 
virtual IOSize writev (const IOBuffer *from, IOSize buffers)
 
IOSize xwrite (const void *from, IOSize n)
 
IOSize xwrite (IOBuffer from)
 
IOSize xwritev (const IOBuffer *from, IOSize buffers)
 
virtual ~IOOutput (void)
 Destruct the stream. A no-op. More...
 

Static Public Attributes

static pthread_mutex_t m_dlopen_lock = PTHREAD_MUTEX_INITIALIZER
 

Private Member Functions

void closeLibrary ()
 
void loadLibrary ()
 

Private Attributes

bool m_close
 
void * m_fd
 
bool m_is_loaded
 
void * m_library_handle
 
std::string m_name
 
int32_t(* redd_close )(void *)
 
int32_t(* redd_errno )()
 
int32_t(* redd_init )()
 
int64_t(* redd_lseek )(void *, int64_t, uint32_t)
 
void *(* redd_open )(const char *, int32_t, int32_t)
 
int64_t(* redd_read )(void *, char *, int64_t)
 
const std::string &(* redd_strerror )()
 
int32_t(* redd_term )()
 
int64_t(* redd_write )(void *, const char *, int64_t)
 

Additional Inherited Members

- Public Types inherited from Storage
enum  Relative { SET, CURRENT, END }
 

Detailed Description

Definition at line 8 of file LStoreFile.h.

Constructor & Destructor Documentation

LStoreFile::LStoreFile ( void  )

Definition at line 16 of file LStoreFile.cc.

References loadLibrary().

17  : m_fd(nullptr),
18  m_close(false),
19  m_name(),
20  m_library_handle(nullptr),
21  m_is_loaded(false),
22  redd_init(nullptr),
23  redd_read(nullptr),
24  redd_close(nullptr),
25  redd_lseek(nullptr),
26  redd_open(nullptr),
27  redd_write(nullptr),
28  redd_term(nullptr),
29  redd_errno(nullptr),
30  redd_strerror(nullptr) {
31  loadLibrary();
32 }
void loadLibrary()
Definition: LStoreFile.cc:84
int32_t(* redd_errno)()
Definition: LStoreFile.h:67
void * m_library_handle
Definition: LStoreFile.h:54
int64_t(* redd_lseek)(void *, int64_t, uint32_t)
Definition: LStoreFile.h:63
std::string m_name
Definition: LStoreFile.h:53
int32_t(* redd_init)()
Definition: LStoreFile.h:60
int32_t(* redd_term)()
Definition: LStoreFile.h:66
bool m_close
Definition: LStoreFile.h:52
void * m_fd
Definition: LStoreFile.h:51
int64_t(* redd_write)(void *, const char *, int64_t)
Definition: LStoreFile.h:65
void *(* redd_open)(const char *, int32_t, int32_t)
Definition: LStoreFile.h:64
bool m_is_loaded
Definition: LStoreFile.h:55
const std::string &(* redd_strerror)()
Definition: LStoreFile.h:68
int32_t(* redd_close)(void *)
Definition: LStoreFile.h:62
int64_t(* redd_read)(void *, char *, int64_t)
Definition: LStoreFile.h:61
LStoreFile::LStoreFile ( void *  fd)

Definition at line 34 of file LStoreFile.cc.

References loadLibrary().

35  : m_fd(fd),
36  m_close(true),
37  m_name(),
38  m_library_handle(nullptr),
39  m_is_loaded(false),
40  redd_init(nullptr),
41  redd_read(nullptr),
42  redd_close(nullptr),
43  redd_lseek(nullptr),
44  redd_open(nullptr),
45  redd_write(nullptr),
46  redd_term(nullptr),
47  redd_errno(nullptr),
48  redd_strerror(nullptr) {
49  loadLibrary();
50 }
void loadLibrary()
Definition: LStoreFile.cc:84
int32_t(* redd_errno)()
Definition: LStoreFile.h:67
void * m_library_handle
Definition: LStoreFile.h:54
int64_t(* redd_lseek)(void *, int64_t, uint32_t)
Definition: LStoreFile.h:63
std::string m_name
Definition: LStoreFile.h:53
int32_t(* redd_init)()
Definition: LStoreFile.h:60
int32_t(* redd_term)()
Definition: LStoreFile.h:66
bool m_close
Definition: LStoreFile.h:52
void * m_fd
Definition: LStoreFile.h:51
int64_t(* redd_write)(void *, const char *, int64_t)
Definition: LStoreFile.h:65
void *(* redd_open)(const char *, int32_t, int32_t)
Definition: LStoreFile.h:64
bool m_is_loaded
Definition: LStoreFile.h:55
const std::string &(* redd_strerror)()
Definition: LStoreFile.h:68
int32_t(* redd_close)(void *)
Definition: LStoreFile.h:62
int64_t(* redd_read)(void *, char *, int64_t)
Definition: LStoreFile.h:61
fd
Definition: ztee.py:136
LStoreFile::LStoreFile ( const char *  name,
int  flags = IOFlags::OpenRead,
int  perms = 0666 
)

Definition at line 52 of file LStoreFile.cc.

References loadLibrary(), and open().

53  : m_fd(nullptr), m_close(false), m_is_loaded(false) {
54  loadLibrary();
55  open(name, flags, perms);
56 }
void loadLibrary()
Definition: LStoreFile.cc:84
bool m_close
Definition: LStoreFile.h:52
void * m_fd
Definition: LStoreFile.h:51
virtual void open(const char *name, int flags=IOFlags::OpenRead, int perms=0666)
Definition: LStoreFile.cc:157
bool m_is_loaded
Definition: LStoreFile.h:55
LStoreFile::LStoreFile ( const std::string &  name,
int  flags = IOFlags::OpenRead,
int  perms = 0666 
)

Definition at line 58 of file LStoreFile.cc.

References HLT_2018_cff::flags, loadLibrary(), and open().

59  : m_fd(nullptr), m_close(false), m_is_loaded(false) {
60  loadLibrary();
61  open(name.c_str(), flags, perms);
62 }
void loadLibrary()
Definition: LStoreFile.cc:84
bool m_close
Definition: LStoreFile.h:52
void * m_fd
Definition: LStoreFile.h:51
virtual void open(const char *name, int flags=IOFlags::OpenRead, int perms=0666)
Definition: LStoreFile.cc:157
bool m_is_loaded
Definition: LStoreFile.h:55
LStoreFile::~LStoreFile ( void  )
override

Definition at line 64 of file LStoreFile.cc.

References closeLibrary(), m_close, and m_name.

64  {
65  if (m_close)
66  edm::LogError("LStoreFileError") << "Destructor called on LStore file '" << m_name
67  << "' but the file is still open";
68  closeLibrary();
69 }
std::string m_name
Definition: LStoreFile.h:53
bool m_close
Definition: LStoreFile.h:52
void closeLibrary()
Definition: LStoreFile.cc:116

Member Function Documentation

void LStoreFile::abort ( void  )
virtual

Definition at line 226 of file LStoreFile.cc.

References m_close, and m_fd.

226  {
227  if (m_fd != nullptr)
228  (*redd_close)(m_fd);
229 
230  m_close = false;
231  m_fd = nullptr;
232 }
bool m_close
Definition: LStoreFile.h:52
void * m_fd
Definition: LStoreFile.h:51
void LStoreFile::close ( void  )
overridevirtual

Reimplemented from Storage.

Definition at line 208 of file LStoreFile.cc.

References m_close, m_fd, m_name, redd_close, and redd_errno.

Referenced by esMonitoring.AsyncLineReaderMixin::handle_close(), esMonitoring.FDJsonServer::handle_close(), Vispa.Gui.BoxContentDialog.BoxContentDialog::keyPressEvent(), Vispa.Gui.FindDialog.FindDialog::keyPressEvent(), and open().

208  {
209  if (m_fd == nullptr) {
210  edm::LogError("LStoreFileError") << "LStoreFile::close(name='" << m_name << "') called but the file is not open";
211  m_close = false;
212  return;
213  }
214  edm::LogInfo("LStoreFile::close()") << "closing " << m_name << std::endl;
215  if ((*redd_close)(m_fd) == -1)
216  edm::LogWarning("LStoreFileWarning") << "redd_close(name='" << m_name << "') failed with error '"
217  << (*redd_strerror)() << "' (redd_errno=" << (*redd_errno)() << ")";
218 
219  m_close = false;
220  m_fd = nullptr;
221 
222  // Caused hang. Will be added back after problem is fixed.
223  // edm::LogInfo("LStoreFileInfo") << "Closed " << m_name;
224 }
int32_t(* redd_errno)()
Definition: LStoreFile.h:67
std::string m_name
Definition: LStoreFile.h:53
bool m_close
Definition: LStoreFile.h:52
void * m_fd
Definition: LStoreFile.h:51
int32_t(* redd_close)(void *)
Definition: LStoreFile.h:62
void LStoreFile::closeLibrary ( )
private

Definition at line 116 of file LStoreFile.cc.

References MillePedeFileConverter_cfg::e, Exception, m_dlopen_lock, m_is_loaded, m_library_handle, and redd_term.

Referenced by ~LStoreFile().

116  {
117  try {
118  LStoreFile::MutexWrapper lockObj(&this->m_dlopen_lock);
119 
120  // What is the correct idiom for propagating error messages
121  // in functions that are exclusively called in destructors?
122  // Seriously. I have no idea
123  // melo
124  if (m_is_loaded) {
125  if ((*redd_term)()) {
126  throw cms::Exception("LStoreFile::closeLibrary()") << "Error in redd_term: " << (*redd_strerror)();
127  }
128  }
129  if (m_library_handle != nullptr) {
130  if (dlclose(m_library_handle)) {
131  throw cms::Exception("LStoreFile::closeLibrary()") << "Error on dlclose(): " << dlerror();
132  }
133  }
134  } catch (cms::Exception &e) {
135  edm::LogError("LStoreFileError") << "LStoreFile had an error in its destructor: " << e;
136  }
137  m_is_loaded = false;
138 }
void * m_library_handle
Definition: LStoreFile.h:54
int32_t(* redd_term)()
Definition: LStoreFile.h:66
bool m_is_loaded
Definition: LStoreFile.h:55
static pthread_mutex_t m_dlopen_lock
Definition: LStoreFile.h:41
void LStoreFile::create ( const char *  name,
bool  exclusive = false,
int  perms = 0666 
)
virtual

Definition at line 141 of file LStoreFile.cc.

References open(), IOFlags::OpenCreate, IOFlags::OpenExclusive, IOFlags::OpenTruncate, and IOFlags::OpenWrite.

141  {
142  open(name,
144  perms);
145 }
virtual void open(const char *name, int flags=IOFlags::OpenRead, int perms=0666)
Definition: LStoreFile.cc:157
void LStoreFile::create ( const std::string &  name,
bool  exclusive = false,
int  perms = 0666 
)
virtual

Definition at line 147 of file LStoreFile.cc.

References open(), IOFlags::OpenCreate, IOFlags::OpenExclusive, IOFlags::OpenTruncate, and IOFlags::OpenWrite.

147  {
148  open(name.c_str(),
150  perms);
151 }
virtual void open(const char *name, int flags=IOFlags::OpenRead, int perms=0666)
Definition: LStoreFile.cc:157
void LStoreFile::loadLibrary ( )
private

Definition at line 84 of file LStoreFile.cc.

References Exception, m_dlopen_lock, m_is_loaded, m_library_handle, redd_errno, redd_init, REDD_LOAD_SYMBOL, redd_lseek, redd_open, redd_read, redd_strerror, redd_term, redd_write, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by LStoreFile().

84  {
85  edm::LogError("LStoreFile::loadLibrary()") << "Loading library\n";
87  // until ACCRE removes the java dependency from their client libs,
88  // we'll dlopen() them so they don't need to be brought along with cmssw
89  // if you're running LStore at your site, you will have the libs anyway
90  // TODO add wrappers to make this work in OSX as well (CMSSW's getting ported?)
91  // TODO should be easy, just need to know the "proper" way to do #if OSX
92  // -Melo
93 
94  m_library_handle = dlopen("libreddnet.so", RTLD_LAZY);
95  if (m_library_handle == nullptr) {
96  throw cms::Exception("LStoreFile::loadLibrary()") << "Can't dlopen() LStore libraries: " << dlerror();
97  }
98 
99  char *retval = nullptr;
100  // Explicitly state the size of these values, keeps weird 64/32 bit stuff away
101  REDD_LOAD_SYMBOL(redd_init, int32_t(*)());
102  REDD_LOAD_SYMBOL(redd_read, int64_t(*)(void *, char *, int64_t));
103  REDD_LOAD_SYMBOL(redd_lseek, int64_t(*)(void *, int64_t, uint32_t));
104  REDD_LOAD_SYMBOL(redd_open, void *(*)(const char *, int, int));
105  REDD_LOAD_SYMBOL(redd_write, int64_t(*)(void *, const char *, int64_t));
106  REDD_LOAD_SYMBOL(redd_term, int32_t(*)());
107  REDD_LOAD_SYMBOL(redd_errno, int32_t(*)());
109 
110  if ((*redd_init)()) {
111  throw cms::Exception("LStoreFile::loadLibrary()") << "Error in redd_init: " << (*redd_strerror)();
112  }
113  m_is_loaded = true;
114 }
int32_t(* redd_errno)()
Definition: LStoreFile.h:67
void * m_library_handle
Definition: LStoreFile.h:54
int64_t(* redd_lseek)(void *, int64_t, uint32_t)
Definition: LStoreFile.h:63
int32_t(* redd_init)()
Definition: LStoreFile.h:60
int32_t(* redd_term)()
Definition: LStoreFile.h:66
int64_t(* redd_write)(void *, const char *, int64_t)
Definition: LStoreFile.h:65
void *(* redd_open)(const char *, int32_t, int32_t)
Definition: LStoreFile.h:64
bool m_is_loaded
Definition: LStoreFile.h:55
#define REDD_LOAD_SYMBOL(NAME, TYPE)
Definition: LStoreFile.cc:74
const std::string &(* redd_strerror)()
Definition: LStoreFile.h:68
int64_t(* redd_read)(void *, char *, int64_t)
Definition: LStoreFile.h:61
static pthread_mutex_t m_dlopen_lock
Definition: LStoreFile.h:41
void LStoreFile::open ( const char *  name,
int  flags = IOFlags::OpenRead,
int  perms = 0666 
)
virtual

Definition at line 157 of file LStoreFile.cc.

References close(), TauDecayModes::dec, Exception, m_close, m_fd, m_name, Skims_PA_cff::name, O_NONBLOCK, IOFlags::OpenAppend, IOFlags::OpenCreate, IOFlags::OpenExclusive, IOFlags::OpenNonBlock, IOFlags::OpenRead, IOFlags::OpenTruncate, IOFlags::OpenWrite, redd_errno, and redd_open.

Referenced by create(), LStoreFile(), and open().

157  {
158  // Actual open
159  if ((name == nullptr) || (*name == 0))
160  throw cms::Exception("LStoreFile::open()") << "Cannot open a file without a name";
161 
162  if ((flags & (IOFlags::OpenRead | IOFlags::OpenWrite)) == 0)
163  throw cms::Exception("LStoreFile::open()") << "Must open file '" << name << "' at least for read or write";
164 
165  // If I am already open, close old file first
166  if (m_fd != nullptr && m_close)
167  close();
168 
169  // Translate our flags to system flags
170  int openflags = 0;
171 
173  openflags |= O_RDWR;
174  else if (flags & IOFlags::OpenRead)
175  openflags |= O_RDONLY;
176  else if (flags & IOFlags::OpenWrite)
177  openflags |= O_WRONLY;
178 
180  openflags |= O_NONBLOCK;
181 
183  openflags |= O_APPEND;
184 
186  openflags |= O_CREAT;
187 
189  openflags |= O_EXCL;
190 
192  openflags |= O_TRUNC;
193 
194  void *newfd = nullptr;
195  if ((newfd = (*redd_open)(name, openflags, perms)) == nullptr)
196  throw cms::Exception("LStoreFile::open()")
197  << "redd_open(name='" << name << "', flags=0x" << std::hex << openflags << ", permissions=0" << std::oct
198  << perms << std::dec << ") => error '" << (*redd_strerror)() << "' (redd_errno=" << (*redd_errno)() << ")";
199 
200  m_name = name;
201  m_fd = newfd;
202 
203  m_close = true;
204 
205  edm::LogInfo("LStoreFileInfo") << "Opened " << m_name;
206 }
int32_t(* redd_errno)()
Definition: LStoreFile.h:67
std::string m_name
Definition: LStoreFile.h:53
void close(void) override
Definition: LStoreFile.cc:208
bool m_close
Definition: LStoreFile.h:52
void * m_fd
Definition: LStoreFile.h:51
void *(* redd_open)(const char *, int32_t, int32_t)
Definition: LStoreFile.h:64
#define O_NONBLOCK
Definition: SysFile.h:21
void LStoreFile::open ( const std::string &  name,
int  flags = IOFlags::OpenRead,
int  perms = 0666 
)
virtual

Definition at line 153 of file LStoreFile.cc.

References HLT_2018_cff::flags, and open().

153  {
154  open(name.c_str(), flags, perms);
155 }
virtual void open(const char *name, int flags=IOFlags::OpenRead, int perms=0666)
Definition: LStoreFile.cc:157
IOOffset LStoreFile::position ( IOOffset  offset,
Relative  whence = SET 
)
overridevirtual

Implements Storage.

Definition at line 263 of file LStoreFile.cc.

References Storage::CURRENT, Storage::END, Exception, m_fd, m_name, redd_errno, redd_lseek, mps_fire::result, and Storage::SET.

Referenced by LStoreStorageMaker::check().

263  {
264  if (m_fd == nullptr)
265  throw cms::Exception("LStoreFile::position()") << "LStoreFile::position() called on a closed file";
266  if (whence != CURRENT && whence != SET && whence != END)
267  throw cms::Exception("LStoreFile::position()") << "LStoreFile::position() called with incorrect 'whence' parameter";
268 
270  uint32_t mywhence = (whence == SET ? SEEK_SET : whence == CURRENT ? SEEK_CUR : SEEK_END);
271  if ((result = (*redd_lseek)(m_fd, (off_t)offset, (uint32_t)mywhence)) == -1)
272  throw cms::Exception("LStoreFile::position()")
273  << "redd_lseek64(name='" << m_name << "', offset=" << offset << ", whence=" << mywhence
274  << ") failed with error '" << (*redd_strerror)() << "' (redd_errno=" << (*redd_errno)() << ")";
275  return result;
276 }
int32_t(* redd_errno)()
Definition: LStoreFile.h:67
int64_t(* redd_lseek)(void *, int64_t, uint32_t)
Definition: LStoreFile.h:63
std::string m_name
Definition: LStoreFile.h:53
void * m_fd
Definition: LStoreFile.h:51
int64_t IOOffset
Definition: IOTypes.h:19
IOSize LStoreFile::read ( void *  into,
IOSize  n 
)
overridevirtual

Read into into at most n number of bytes.

If this is a blocking stream, the call will block until some data can be read, end of input is reached, or an exception is thrown. For a non-blocking stream the available input is returned. If none is available, an exception is thrown.

Returns
The number of bytes actually read. This is less or equal to the size of the buffer. Zero indicates that the end of the input has been reached: end of file, or remote end closing for a connected channel like a pipe or a socket. Otherwise the value can be less than requested if limited amount of input is currently available for platform or implementation reasons.
Exceptions
Incase of error, a #IOError exception is thrown. This includes the situation where the input stream is in non-blocking mode and no input is currently available (FIXME: make this simpler; clarify which exception).

Implements IOInput.

Definition at line 234 of file LStoreFile.cc.

References fileCollector::done, Exception, m_fd, m_name, redd_errno, redd_strerror, and alignCSCRings::s.

234  {
235  IOSize done = 0;
236  while (done < n) {
237  ssize_t s = (*redd_read)(m_fd, (char *)into + done, n - done);
238  if (s == -1)
239  throw cms::Exception("LStoreFile::read()")
240  << "redd_read(name='" << m_name << "', n=" << (n - done) << ") failed with error '" << (*redd_strerror)()
241  << "' (redd_errno=" << (*redd_errno)() << ")";
242  done += s;
243  }
244  return done;
245 }
int32_t(* redd_errno)()
Definition: LStoreFile.h:67
std::string m_name
Definition: LStoreFile.h:53
void * m_fd
Definition: LStoreFile.h:51
const std::string &(* redd_strerror)()
Definition: LStoreFile.h:68
size_t IOSize
Definition: IOTypes.h:14
void LStoreFile::resize ( IOOffset  size)
overridevirtual

Implements Storage.

Definition at line 278 of file LStoreFile.cc.

References Exception, and m_name.

Referenced by Vispa.Gui.TextDialog.TextDialog::__init__(), Vispa.Plugins.ConfigEditor.ToolDialog.ToolDialog::__init__(), Vispa.Main.MainWindow.MainWindow::_loadIni(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

278  {
279  throw cms::Exception("LStoreFile::resize()") << "LStoreFile::resize(name='" << m_name << "') not implemented";
280 }
std::string m_name
Definition: LStoreFile.h:53
IOSize LStoreFile::write ( const void *  from,
IOSize  n 
)
overridevirtual

Write n bytes of data starting at address from.

Returns
The number of bytes written. Normally this will be n, but can be less, even zero, for example if the stream is non-blocking mode and cannot accept input at this time.
Exceptions
Incase of error, an exception is thrown. However if the stream is in non-blocking mode and cannot accept output, it will not throw an exception – the return value will be less than requested.

Implements IOOutput.

Definition at line 247 of file LStoreFile.cc.

References fileCollector::done, Exception, m_fd, m_name, redd_errno, redd_strerror, and alignCSCRings::s.

247  {
248  IOSize done = 0;
249  while (done < n) {
250  ssize_t s = (*redd_write)(m_fd, (const char *)from + done, n - done);
251  if (s == -1)
252  throw cms::Exception("LStoreFile::write()")
253  << "redd_write(name='" << m_name << "', n=" << (n - done) << ") failed with error '" << (*redd_strerror)()
254  << "' (redd_errno=" << (*redd_errno)() << ")";
255  done += s;
256  }
257 
258  return done;
259 }
int32_t(* redd_errno)()
Definition: LStoreFile.h:67
std::string m_name
Definition: LStoreFile.h:53
void * m_fd
Definition: LStoreFile.h:51
const std::string &(* redd_strerror)()
Definition: LStoreFile.h:68
size_t IOSize
Definition: IOTypes.h:14

Member Data Documentation

bool LStoreFile::m_close
private

Definition at line 52 of file LStoreFile.h.

Referenced by abort(), close(), open(), and ~LStoreFile().

pthread_mutex_t LStoreFile::m_dlopen_lock = PTHREAD_MUTEX_INITIALIZER
static

Definition at line 41 of file LStoreFile.h.

Referenced by closeLibrary(), and loadLibrary().

void* LStoreFile::m_fd
private

Definition at line 51 of file LStoreFile.h.

Referenced by abort(), close(), open(), position(), read(), and write().

bool LStoreFile::m_is_loaded
private

Definition at line 55 of file LStoreFile.h.

Referenced by closeLibrary(), and loadLibrary().

void* LStoreFile::m_library_handle
private

Definition at line 54 of file LStoreFile.h.

Referenced by closeLibrary(), and loadLibrary().

std::string LStoreFile::m_name
private

Definition at line 53 of file LStoreFile.h.

Referenced by close(), open(), position(), read(), resize(), write(), and ~LStoreFile().

int32_t(* LStoreFile::redd_close) (void *)
private

Definition at line 62 of file LStoreFile.h.

Referenced by close().

int32_t(* LStoreFile::redd_errno) ()
private

Definition at line 67 of file LStoreFile.h.

Referenced by close(), loadLibrary(), open(), position(), read(), and write().

int32_t(* LStoreFile::redd_init) ()
private

Definition at line 60 of file LStoreFile.h.

Referenced by loadLibrary().

int64_t(* LStoreFile::redd_lseek) (void *, int64_t, uint32_t)
private

Definition at line 63 of file LStoreFile.h.

Referenced by loadLibrary(), and position().

void*(* LStoreFile::redd_open) (const char *, int32_t, int32_t)
private

Definition at line 64 of file LStoreFile.h.

Referenced by loadLibrary(), and open().

int64_t(* LStoreFile::redd_read) (void *, char *, int64_t)
private

Definition at line 61 of file LStoreFile.h.

Referenced by loadLibrary().

const std::string&(* LStoreFile::redd_strerror) ()
private

Definition at line 68 of file LStoreFile.h.

Referenced by loadLibrary(), read(), and write().

int32_t(* LStoreFile::redd_term) ()
private

Definition at line 66 of file LStoreFile.h.

Referenced by closeLibrary(), and loadLibrary().

int64_t(* LStoreFile::redd_write) (void *, const char *, int64_t)
private

Definition at line 65 of file LStoreFile.h.

Referenced by loadLibrary().