nidas v1.2.3
|
Filesystem mounter/unmounter. More...
#include <FsMount.h>
Public Member Functions | |
FsMount () | |
FsMount (const FsMount &x) | |
Copy. | |
~FsMount () | |
FsMount & | operator= (const FsMount &rhs) |
Assignment. | |
void | setDir (const std::string &val) |
Set the mount point directory. | |
const std::string & | getDir () const |
const std::string & | getDirExpanded () const |
Get the mount point directory, with environment variables expanded. | |
void | setDevice (const std::string &val) |
const std::string & | getDevice () const |
const std::string & | getDeviceExpanded () const |
void | setType (const std::string &val) |
const std::string & | getType () const |
void | setOptions (const std::string &val) |
const std::string & | getOptions () const |
bool | isMounted () |
Reads /proc/mount to see if getDir() is mounted. | |
void | mount () |
Synchronous mount request (on return the file system is mounted). | |
void | autoMount () |
Just issue a "mount /dir" command. | |
void | mount (FileSet *) |
Asynchronous mount request. | |
void | unmount () |
void | cancel () |
void | finished () |
void | fromDOMElement (const xercesc::DOMElement *node) |
virtual xercesc::DOMElement * | toDOMParent (xercesc::DOMElement *parent, bool complete) const |
Create a DOMElement and append it to the parent. | |
virtual xercesc::DOMElement * | toDOMElement (xercesc::DOMElement *node, bool complete) const |
Add my content into a DOMElement. | |
Static Public Member Functions | |
static const XMLCh * | getNamespaceURI () |
Protected Attributes | |
std::string | _dir |
std::string | _dirExpanded |
std::string | _dirMsg |
std::string | _device |
std::string | _deviceExpanded |
std::string | _deviceMsg |
std::string | _type |
std::string | _options |
FileSet * | _fileset |
FsMountWorkerThread * | _worker |
nidas::util::Mutex | _workerLock |
nidas::util::Process | _mountProcess |
nidas::util::Process | _umountProcess |
Static Private Attributes | |
static XMLCh * | namespaceURI = 0 |
Filesystem mounter/unmounter.
FsMount::FsMount | ( | ) |
|
inline |
void FsMount::autoMount | ( | ) |
Just issue a "mount /dir" command.
If /dir is automounted then it may work, whereas "mount /dev/sdXn -o blahblah /dir" may fail for the user on a server.
nidas::util::IOException |
References _dirMsg, _mountProcess, getDirExpanded(), nidas::core::getSample(), ILOG, isMounted(), nidas::util::Process::outStream(), nidas::util::trimString(), and nidas::util::Process::wait().
Referenced by nidas::core::FsMountWorkerThread::run().
void FsMount::cancel | ( | ) |
References _mountProcess, _umountProcess, _worker, _workerLock, DLOG, getDevice(), nidas::util::Process::getPid(), nidas::core::getSample(), nidas::util::Thread::isJoined(), nidas::util::Thread::isRunning(), nidas::util::Thread::kill(), nidas::util::Process::kill(), PLOG, USECS_PER_SEC, and nidas::util::Process::wait().
Referenced by nidas::core::FileSet::close(), and mount().
void FsMount::finished | ( | ) |
References _fileset, _worker, _workerLock, nidas::util::Mutex::lock(), nidas::core::FileSet::mounted(), and nidas::util::Mutex::unlock().
Referenced by nidas::core::FsMountWorkerThread::run().
nidas::util::InvalidParameterException |
Implements nidas::core::DOMable.
References nidas::core::getSample(), setDevice(), setDir(), setOptions(), and setType().
Referenced by nidas::core::FileSet::fromDOMElement().
|
inline |
|
inline |
References _deviceExpanded.
Referenced by mount().
|
inline |
Get the mount point directory, with environment variables expanded.
References _dirExpanded.
Referenced by autoMount(), isMounted(), mount(), and unmount().
References nidas::core::DOMable::namespaceURI.
Referenced by nidas::dynld::UDPSampleOutput::getProjectDOM(), nidas::core::Dataset::toDOMElement(), nidas::core::ProjectConfig::toDOMElement(), nidas::core::Dataset::toDOMParent(), nidas::core::Datasets::toDOMParent(), nidas::core::ProjectConfig::toDOMParent(), nidas::core::ProjectConfigs::toDOMParent(), nidas::core::DSMConfig::toDOMParent(), nidas::core::DSMSensor::toDOMParent(), nidas::core::Project::toDOMParent(), nidas::core::SampleTag::toDOMParent(), nidas::core::Site::toDOMParent(), nidas::core::ServerSocket::toDOMParent(), nidas::core::Variable::toDOMParent(), nidas::core::Datasets::writeXML(), and nidas::core::ProjectConfigs::writeXML().
|
inline |
|
inline |
bool FsMount::isMounted | ( | ) |
Reads /proc/mount to see if getDir() is mounted.
References getDirExpanded(), and nidas::core::getSample().
Referenced by autoMount(), mount(), mount(), nidas::core::FileSet::mounted(), nidas::core::FileSet::requestConnection(), and unmount().
void FsMount::mount | ( | ) |
Synchronous mount request (on return the file system is mounted).
nidas::util::IOException |
References _deviceMsg, _dirMsg, _mountProcess, getDeviceExpanded(), getDirExpanded(), getOptions(), nidas::core::getSample(), getType(), ILOG, isMounted(), nidas::util::Process::outStream(), nidas::util::trimString(), and nidas::util::Process::wait().
Referenced by nidas::core::FileSet::connect(), nidas::core::FileSet::requestConnection(), and nidas::core::FsMountWorkerThread::run().
Asynchronous mount request.
finished() method will be called when mount is done. Does not own the FileSet pointer.
nidas::util::IOException |
References _fileset, _worker, _workerLock, cancel(), nidas::core::getSample(), isMounted(), nidas::core::FileSet::mounted(), and nidas::util::Thread::start().
References _device, _deviceExpanded, _deviceMsg, and nidas::core::getSample().
Referenced by fromDOMElement(), and operator=().
Set the mount point directory.
It may contain environment variables, e.g.: $DATA, or ${DATA}.
References _dir, _dirExpanded, _dirMsg, and nidas::core::getSample().
Referenced by fromDOMElement(), and operator=().
References _options, and nidas::core::getSample().
Referenced by fromDOMElement().
References _type, and nidas::core::getSample().
Referenced by fromDOMElement().
|
virtualinherited |
Add my content into a DOMElement.
xercesc::DOMException |
Reimplemented in nidas::core::DSMConfig, nidas::core::DSMSensor, nidas::core::Project, nidas::core::SampleTag, nidas::core::Site, nidas::core::ServerSocket, and nidas::core::Variable.
Referenced by nidas::core::ServerSocket::toDOMParent().
|
virtualinherited |
Create a DOMElement and append it to the parent.
xercesc::DOMException |
Reimplemented in nidas::core::DSMConfig, nidas::core::DSMSensor, nidas::core::Project, nidas::core::SampleTag, nidas::core::Site, nidas::core::ServerSocket, and nidas::core::Variable.
void FsMount::unmount | ( | ) |
nidas::util::IOException |
References _dirMsg, _umountProcess, getDirExpanded(), nidas::core::getSample(), isMounted(), nidas::util::Process::outStream(), and nidas::util::Process::wait().
Referenced by nidas::core::FileSet::close().
|
protected |
Referenced by getDevice(), and setDevice().
|
protected |
Referenced by getDeviceExpanded(), and setDevice().
|
protected |
Referenced by mount(), and setDevice().
|
protected |
Referenced by getDirExpanded(), and setDir().
|
protected |
Referenced by autoMount(), mount(), setDir(), and unmount().
|
protected |
Referenced by finished(), mount(), and operator=().
|
protected |
Referenced by autoMount(), cancel(), and mount().
|
protected |
Referenced by getOptions(), operator=(), and setOptions().
|
protected |
Referenced by getType(), operator=(), and setType().
|
protected |
|
protected |
Referenced by cancel(), finished(), mount(), and operator=().
|
protected |
Referenced by cancel(), finished(), and mount().
|
staticprivateinherited |
Referenced by nidas::core::DOMable::getNamespaceURI().