#include <fd_array.hh>
|
| | FDArray (std::string const &input, std::string const &output, std::string const &errout) |
| | Initialize the file descriptor array and set the standard file descriptors to defaults or values passed in with the process params. More...
|
| |
| void | updateFileOffsets () |
| | Figure out the file offsets for all currently open files and save them the offsets during the calls to drain by the owning process. More...
|
| |
| void | restoreFileOffsets () |
| | Restore all offsets for currently open files during the unserialize phase for the owning process class. More...
|
| |
| std::shared_ptr< FDEntry > | operator[] (int tgt_fd) |
| | Treat this object like a normal array in using the subscript operator to pull entries out of it. More...
|
| |
| int | allocFD (std::shared_ptr< FDEntry > fdp) |
| | Step through the file descriptor array and find the first available entry which is denoted as being free by being a 'nullptr'. More...
|
| |
| int | getSize () const |
| | Return the size of the _fdArray field. More...
|
| |
| void | setFDEntry (int tgt_fd, std::shared_ptr< FDEntry > fdep) |
| | Put the pointer specified by fdep into the _fdArray entry indexed by tgt_fd. More...
|
| |
| int | closeFDEntry (int tgt_fd) |
| | Try to close the host file descriptor. More...
|
| |
|
| int | openFile (std::string const &file_name, int flags, mode_t mode) const |
| | Help clarify our intention when opening files in the init and restoration code. More...
|
| |
| int | openInputFile (std::string const &file_name) const |
| |
| int | openOutputFile (std::string const &file_name) const |
| |
| std::shared_ptr< FDEntry > | getFDEntry (int tgt_fd) |
| | Return the file descriptor entry object associated with the index provided. More...
|
| |
|
std::array< std::shared_ptr
< FDEntry >, NUM_FDS > | _fdArray |
| | Hold pointers to the file descriptor entries. More...
|
| |
| std::map< std::string, int > | imap |
| | Hold strings which represent the default values which are checked against to initialize the standard file descriptors. More...
|
| |
| std::map< std::string, int > | oemap |
| |
Definition at line 45 of file fd_array.hh.
| FDArray::FDArray |
( |
std::string const & |
input, |
|
|
std::string const & |
output, |
|
|
std::string const & |
errout |
|
) |
| |
Initialize the file descriptor array and set the standard file descriptors to defaults or values passed in with the process params.
- Parameters
-
| input | Used to initialize the stdin file descriptor |
| output | Used to initialize the stdout file descriptor |
| errout | Used to initialize the stderr file descriptor |
Definition at line 49 of file fd_array.cc.
| int FDArray::allocFD |
( |
std::shared_ptr< FDEntry > |
fdp | ) |
|
Step through the file descriptor array and find the first available entry which is denoted as being free by being a 'nullptr'.
That file descriptor entry is the new target file descriptor entry that we return as the return parameter.
- Parameters
-
| fdp | Allocated beforehand and passed into this method; the fdp is meant to be a generic pointer capable of pointing to different types of file descriptors. Must cast the pointer to the correct type before dereferencing to access the needed fields. |
| int FDArray::closeFDEntry |
( |
int |
tgt_fd | ) |
|
Try to close the host file descriptor.
If successful, set the specified file descriptor entry object pointer to nullptr. Used to "close" the target file descriptor.
- Parameters
-
| tgt_fd | Use target file descriptors to index the array. |
| std::shared_ptr<FDEntry> FDArray::getFDEntry |
( |
int |
tgt_fd | ) |
|
|
private |
Return the file descriptor entry object associated with the index provided.
(The index is protected with bounds checking on the array size without the use of the array's at operator.)
- Parameters
-
| tgt_fd | Use target file descriptors to index the array. |
Referenced by operator[]().
| int FDArray::getSize |
( |
| ) |
const |
|
inline |
| int FDArray::openFile |
( |
std::string const & |
file_name, |
|
|
int |
flags, |
|
|
mode_t |
mode |
|
) |
| const |
|
private |
Help clarify our intention when opening files in the init and restoration code.
These are helper functions which are not meant to be exposed to other objects or files.
| int FDArray::openInputFile |
( |
std::string const & |
file_name | ) |
const |
|
private |
| int FDArray::openOutputFile |
( |
std::string const & |
file_name | ) |
const |
|
private |
| std::shared_ptr<FDEntry> FDArray::operator[] |
( |
int |
tgt_fd | ) |
|
|
inline |
Treat this object like a normal array in using the subscript operator to pull entries out of it.
- Parameters
-
| tgt_fd | Use target file descriptors to index the array. |
Definition at line 84 of file fd_array.hh.
References getFDEntry().
| void FDArray::restoreFileOffsets |
( |
| ) |
|
Restore all offsets for currently open files during the unserialize phase for the owning process class.
| void FDArray::setFDEntry |
( |
int |
tgt_fd, |
|
|
std::shared_ptr< FDEntry > |
fdep |
|
) |
| |
Put the pointer specified by fdep into the _fdArray entry indexed by tgt_fd.
- Parameters
-
| tgt_fd | Use target file descriptors to index the array. |
| fdep | Incoming pointer used to set the entry pointed to by tgt_fd. |
| void FDArray::updateFileOffsets |
( |
| ) |
|
Figure out the file offsets for all currently open files and save them the offsets during the calls to drain by the owning process.
| std::string FDArray::_errout |
Hold pointers to the file descriptor entries.
The array size is statically defined by the operating system.
Definition at line 144 of file fd_array.hh.
Referenced by getSize().
| std::string FDArray::_input |
| std::string FDArray::_output |
| std::map<std::string, int> FDArray::imap |
|
private |
Hold strings which represent the default values which are checked against to initialize the standard file descriptors.
If the string provided doesn't hit against these maps, then a file is opened on the host instead of using the host's standard file descriptors.
Definition at line 152 of file fd_array.hh.
| const int FDArray::NUM_FDS = 1024 |
|
staticprivate |
| std::map<std::string, int> FDArray::oemap |
|
private |
The documentation for this class was generated from the following files: