OpenWalnut 1.3.1
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes
WProjectFile Class Reference

Class loading project files. More...

#include <WProjectFile.h>

Inheritance diagram for WProjectFile:

List of all members.

Public Types

typedef boost::shared_ptr
< WProjectFile
SPtr
 Abbreviation for a shared pointer.
typedef boost::shared_ptr
< const WProjectFile
ConstSPtr
 Abbreviation for const shared pointer.
typedef boost::function< void(boost::filesystem::path,
std::vector< std::string >) > 
ProjectLoadCallback
 A callback function type reporting bach a finished load job.
typedef
boost::signals2::signal< void(boost::filesystem::path,
std::vector< std::string >) > 
ProjectLoadCallbackSignal
 A callback function signal type reporting bach a finished load job.

Public Member Functions

 WProjectFile (boost::filesystem::path project)
 Default constructor.
 WProjectFile (boost::filesystem::path project, ProjectLoadCallback doneCallback)
 Default constructor.
virtual ~WProjectFile ()
 Destructor.
virtual void load ()
 Parses the project file and applies it.
virtual void save ()
 Saves the current state to the file specified in the constructor.
virtual void save (const std::vector< boost::shared_ptr< WProjectFileIO > > &writer)
 Saves the current state to the file specified in the constructor.

Static Public Member Functions

static boost::shared_ptr
< WProjectFileIO
getCameraWriter ()
 Returns an instance of the Camera writer.
static boost::shared_ptr
< WProjectFileIO
getModuleWriter ()
 Returns an instance of the module writer.
static boost::shared_ptr
< WProjectFileIO
getROIWriter ()
 Returns an instance of the ROI writer.

Protected Member Functions

virtual void threadMain ()
 Function that has to be overwritten for execution.
virtual void onThreadException (const WException &e)
 Do custom exception handling.

Protected Attributes

boost::filesystem::path m_project
 The project file to parse.
std::vector< boost::shared_ptr
< WProjectFileIO > > 
m_parsers
 The parser instances.

Private Attributes

ProjectLoadCallbackSignal m_signalLoadDone
 Signal used to callback someone that the loader was finished.
boost::signals2::connection m_signalLoadDoneConnection
 Connection managing the signal m_signalLoadDone.

Detailed Description

Class loading project files.

This class opens an file and reads it line by line. It delegates the actual parsing to each of the known WProjectFileIO instances which then do their job.

Definition at line 43 of file WProjectFile.h.


Member Typedef Documentation

typedef boost::shared_ptr< const WProjectFile > WProjectFile::ConstSPtr

Abbreviation for const shared pointer.

Definition at line 55 of file WProjectFile.h.

typedef boost::function< void( boost::filesystem::path, std::vector< std::string > ) > WProjectFile::ProjectLoadCallback

A callback function type reporting bach a finished load job.

The given string vector contains a list of errors if any.

Definition at line 60 of file WProjectFile.h.

typedef boost::signals2::signal< void( boost::filesystem::path, std::vector< std::string > ) > WProjectFile::ProjectLoadCallbackSignal

A callback function signal type reporting bach a finished load job.

The given string vector contains a list of errors if any.

Definition at line 65 of file WProjectFile.h.

typedef boost::shared_ptr< WProjectFile > WProjectFile::SPtr

Abbreviation for a shared pointer.

Definition at line 50 of file WProjectFile.h.


Constructor & Destructor Documentation

WProjectFile::WProjectFile ( boost::filesystem::path  project) [explicit]

Default constructor.

It does NOT parse the file. Parsing is done by using load.

Parameters:
projectthe project file to load or save.

Definition at line 43 of file WProjectFile.cpp.

References m_parsers.

WProjectFile::WProjectFile ( boost::filesystem::path  project,
ProjectLoadCallback  doneCallback 
)

Default constructor.

It does NOT parse the file. Parsing is done by using load.

Parameters:
projectthe project file to load.
doneCallbackgets called whenever the load thread finishes.

Definition at line 60 of file WProjectFile.cpp.

References m_parsers.

WProjectFile::~WProjectFile ( ) [virtual]

Destructor.

Definition at line 76 of file WProjectFile.cpp.

References m_parsers, and m_signalLoadDoneConnection.


Member Function Documentation

boost::shared_ptr< WProjectFileIO > WProjectFile::getCameraWriter ( ) [static]

Returns an instance of the Camera writer.

Returns:
the writer able to output the camera configuration to a stream.

Definition at line 83 of file WProjectFile.cpp.

boost::shared_ptr< WProjectFileIO > WProjectFile::getModuleWriter ( ) [static]

Returns an instance of the module writer.

Returns:
the writer able to output the module configuration to a stream.

Definition at line 88 of file WProjectFile.cpp.

boost::shared_ptr< WProjectFileIO > WProjectFile::getROIWriter ( ) [static]

Returns an instance of the ROI writer.

Returns:
the writer able to output the ROI configuration to a stream.

Definition at line 93 of file WProjectFile.cpp.

void WProjectFile::load ( ) [virtual]

Parses the project file and applies it.

It applies the project file asynchronously!

Definition at line 98 of file WProjectFile.cpp.

References WKernel::getRootContainer(), WKernel::getRunningKernel(), and WThreadedRunner::run().

void WProjectFile::onThreadException ( const WException e) [protected, virtual]

Do custom exception handling.

Parameters:
ethe exception

Reimplemented from WThreadedRunner.

Definition at line 223 of file WProjectFile.cpp.

References WKernel::getRootContainer(), WKernel::getRunningKernel(), and WThreadedRunner::handleDeadlyException().

void WProjectFile::save ( ) [virtual]

Saves the current state to the file specified in the constructor.

Definition at line 129 of file WProjectFile.cpp.

References m_parsers.

void WProjectFile::save ( const std::vector< boost::shared_ptr< WProjectFileIO > > &  writer) [virtual]

Saves the current state to the file specified in the constructor.

This also supports a custom list of writers. This is useful to only write some parts of the state.

Parameters:
writerthe list of writers to use.

Definition at line 107 of file WProjectFile.cpp.

References wlog::info(), and m_project.

void WProjectFile::threadMain ( ) [protected, virtual]

Function that has to be overwritten for execution.

It gets executed in a separate thread after run() has been called.

Reimplemented from WThreadedRunner.

Definition at line 134 of file WProjectFile.cpp.

References wlog::error(), WKernel::getRootContainer(), WKernel::getRunningKernel(), wlog::info(), m_parsers, m_project, m_signalLoadDone, m_signalLoadDoneConnection, string_utils::toString(), and wlog::warn().


Member Data Documentation

std::vector< boost::shared_ptr< WProjectFileIO > > WProjectFile::m_parsers [protected]

The parser instances.

They are used to parse the file.

Definition at line 141 of file WProjectFile.h.

Referenced by save(), threadMain(), WProjectFile(), and ~WProjectFile().

boost::filesystem::path WProjectFile::m_project [protected]

The project file to parse.

Definition at line 136 of file WProjectFile.h.

Referenced by save(), and threadMain().

Signal used to callback someone that the loader was finished.

Definition at line 153 of file WProjectFile.h.

Referenced by threadMain().

boost::signals2::connection WProjectFile::m_signalLoadDoneConnection [private]

Connection managing the signal m_signalLoadDone.

This is the one and only connection allowed and will be disconnected upon thread has finished.

Definition at line 159 of file WProjectFile.h.

Referenced by threadMain(), and ~WProjectFile().


The documentation for this class was generated from the following files: