|
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().