PARTONS
|
PARtonic Tomography Of Nucleon Software
|
Services hide the complexity of low-level functions to provide high-level functionalities to the user. More...
Public Member Functions | |
ServiceObject (const std::string &className) | |
Default constructor. More... | |
virtual | ~ServiceObject () |
Default destructor. More... | |
virtual void | resolveObjectDependencies () |
Because of the initialization step order of the program, objects are registered in a total random order and some objects depend on others. More... | |
virtual void | computeTask (Task &task)=0 |
Method used in automation to compute given tasks. More... | |
void | addTasks (const List< ElemUtils::Packet > &tasks) |
Add task to queue. More... | |
bool | isEmptyTaskQueue () |
Check if queue is empty. More... | |
ElemUtils::Packet | popTaskFormQueue () |
Pop task from queue. More... | |
void | initComputationalThread (ModuleObject *pModuleObject) |
Initialize all threads. More... | |
void | launchAllThreadAndWaitingFor () |
Lunch all threads. More... | |
void | clearAllThread () |
Clear all threads. More... | |
std::string | generateSQLQueryForPlotFile (const std::string &tableName, const ElemUtils::Parameters &selectParams, const ElemUtils::Parameters &whereParams) const |
Generate SQL query to create a plot file. More... | |
void | generatePlotFile (const std::string &filePath, const std::string &sqlQuery, const char splitChar) const |
Generate a plot file. More... | |
Public Member Functions inherited from PARTONS::BaseObject | |
BaseObject (const std::string &className) | |
Constructor. More... | |
virtual | ~BaseObject () |
Default destructor. More... | |
virtual BaseObject * | clone () const |
Virtual clone function to allow the factory to clone all derived members object stored in the BaseObjectRegistry. More... | |
virtual std::string | toString () const |
Return a pre-formatted characters string for output visualization of class member's values. More... | |
void | serialize (ElemUtils::Packet &packet) const |
Used to split a complex C++ object into a concatenation of simple types. More... | |
void | unserialize (ElemUtils::Packet &packet) |
Used to rebuild a complex C++ object from a concatenation of simple type. More... | |
bool | operator< (const BaseObject &other) const |
Overload of < operator to sort BaseObject object by its indexId value. More... | |
const std::string & | getClassName () const |
unsigned int | getObjectId () const |
int | getIndexId () const |
void | setIndexId (int indexId) |
Protected Member Functions | |
std::string | generateSQLQueryForPlotFileTask (Task &task, const std::string &tableName) const |
Generate SQL query from a task. More... | |
std::string | getOutputFilePathForPlotFileTask (Task &task) const |
Get path to a plot file from a task. More... | |
List< GPDType > | getGPDTypeListFromTask (Task &task) const |
Get list of GPD types to be computed from a task. More... | |
List< CollinearDistributionType > | getCollinearDistributionTypeListFromTask (Task &task) const |
Get list of Collinear Distribution types to be computed from a task. More... | |
void | errorUnknownMethod (const Task &task) const |
Throw exception if unknown method. More... | |
Protected Member Functions inherited from PARTONS::BaseObject | |
BaseObject (const BaseObject &other) | |
Copy constructor. More... | |
void | info (const std::string &functionName, const std::string &message) const |
Print info message into logger. More... | |
void | debug (const std::string &functionName, const std::string &message) const |
Print debug message into logger. More... | |
void | warn (const std::string &functionName, const std::string &message) const |
Print warning message into logger. More... | |
void | errorMissingParameter (const std::string ¶meterName) const |
Use in automation process to throw exception when a parameter is missing from the XML scenario file. More... | |
Protected Attributes | |
ModuleObjectFactory * | m_pModuleObjectFactory |
Pointer to ModuleObjectFactory. More... | |
AutomationService * | m_pAutomationService |
Pointer to AutomationService. More... | |
Private Attributes | |
ThreadQueue | m_queueOfTask |
Queue of tasks. More... | |
ThreadManager | m_threadManager |
Thread manager. More... | |
Services hide the complexity of low-level functions to provide high-level functionalities to the user.
A service is basically a toolbox for the user: the user is being given tools to use the software without knowing the details of its operating. Services combine different modules and datasets to produce results in a transparent way.
For example : the GPDService provide several functions that hide the complexity related to repetitive tasks, like evaluating a GPD at a list of kinematic configurations, or evaluating several GPD models at the same input kinematic.
PARTONS::ServiceObject::ServiceObject | ( | const std::string & | className | ) |
Default constructor.
className |
|
virtual |
Default destructor.
void PARTONS::ServiceObject::addTasks | ( | const List< ElemUtils::Packet > & | tasks | ) |
Add task to queue.
void PARTONS::ServiceObject::clearAllThread | ( | ) |
Clear all threads.
|
pure virtual |
Method used in automation to compute given tasks.
Implemented in child classes.
task | Automation task to compute. |
Implemented in PARTONS::VizualisationService, PARTONS::ObservableService< KinematicType, ResultType >, PARTONS::ObservableService< DDVCSObservableKinematic, DDVCSObservableResult >, PARTONS::ObservableService< DVCSObservableKinematic, DVCSObservableResult >, PARTONS::ObservableService< TCSObservableKinematic, TCSObservableResult >, PARTONS::ObservableService< DVMPObservableKinematic, DVMPObservableResult >, PARTONS::CryptographicHashService, PARTONS::GPDService, PARTONS::ConvolCoeffFunctionService< KinematicType, ResultType >, PARTONS::ConvolCoeffFunctionService< TCSConvolCoeffFunctionKinematic, TCSConvolCoeffFunctionResult >, PARTONS::ConvolCoeffFunctionService< DDVCSConvolCoeffFunctionKinematic, DDVCSConvolCoeffFunctionResult >, PARTONS::ConvolCoeffFunctionService< DVCSConvolCoeffFunctionKinematic, DVCSConvolCoeffFunctionResult >, PARTONS::ConvolCoeffFunctionService< DVMPConvolCoeffFunctionKinematic, DVMPConvolCoeffFunctionResult >, PARTONS::ComparisonService, PARTONS::CollinearDistributionService, PARTONS::ServiceObjectTyped< KinematicType, ResultType >, PARTONS::ServiceObjectTyped< CollinearDistributionKinematic, CollinearDistributionResult >, and PARTONS::ServiceObjectTyped< GPDKinematic, GPDResult >.
|
protected |
Throw exception if unknown method.
void PARTONS::ServiceObject::generatePlotFile | ( | const std::string & | filePath, |
const std::string & | sqlQuery, | ||
const char | splitChar | ||
) | const |
Generate a plot file.
std::string PARTONS::ServiceObject::generateSQLQueryForPlotFile | ( | const std::string & | tableName, |
const ElemUtils::Parameters & | selectParams, | ||
const ElemUtils::Parameters & | whereParams | ||
) | const |
Generate SQL query to create a plot file.
|
protected |
Generate SQL query from a task.
|
protected |
Get list of Collinear Distribution types to be computed from a task.
Get list of GPD types to be computed from a task.
|
protected |
Get path to a plot file from a task.
void PARTONS::ServiceObject::initComputationalThread | ( | ModuleObject * | pModuleObject | ) |
Initialize all threads.
bool PARTONS::ServiceObject::isEmptyTaskQueue | ( | ) |
Check if queue is empty.
void PARTONS::ServiceObject::launchAllThreadAndWaitingFor | ( | ) |
Lunch all threads.
ElemUtils::Packet PARTONS::ServiceObject::popTaskFormQueue | ( | ) |
Pop task from queue.
|
virtual |
Because of the initialization step order of the program, objects are registered in a total random order and some objects depend on others.
To avoid the problem of pointer resolution order, this method is called by the BaseObjectRegistery after all objects are well registered in it. See BaseObjectRegistry class documentation for more details.
Reimplemented from PARTONS::BaseObject.
Reimplemented in PARTONS::TCSObservableService, PARTONS::TCSConvolCoeffFunctionService, PARTONS::ObservableService< KinematicType, ResultType >, PARTONS::ObservableService< DDVCSObservableKinematic, DDVCSObservableResult >, PARTONS::ObservableService< DVCSObservableKinematic, DVCSObservableResult >, PARTONS::ObservableService< TCSObservableKinematic, TCSObservableResult >, PARTONS::ObservableService< DVMPObservableKinematic, DVMPObservableResult >, PARTONS::GPDService, PARTONS::DVMPObservableService, PARTONS::DVMPConvolCoeffFunctionService, PARTONS::DVCSObservableService, PARTONS::DVCSConvolCoeffFunctionService, PARTONS::DDVCSObservableService, PARTONS::DDVCSConvolCoeffFunctionService, PARTONS::ConvolCoeffFunctionService< KinematicType, ResultType >, PARTONS::ConvolCoeffFunctionService< TCSConvolCoeffFunctionKinematic, TCSConvolCoeffFunctionResult >, PARTONS::ConvolCoeffFunctionService< DDVCSConvolCoeffFunctionKinematic, DDVCSConvolCoeffFunctionResult >, PARTONS::ConvolCoeffFunctionService< DVCSConvolCoeffFunctionKinematic, DVCSConvolCoeffFunctionResult >, PARTONS::ConvolCoeffFunctionService< DVMPConvolCoeffFunctionKinematic, DVMPConvolCoeffFunctionResult >, PARTONS::CollinearDistributionService, PARTONS::ServiceObjectTyped< KinematicType, ResultType >, PARTONS::ServiceObjectTyped< CollinearDistributionKinematic, CollinearDistributionResult >, and PARTONS::ServiceObjectTyped< GPDKinematic, GPDResult >.
|
protected |
Pointer to AutomationService.
|
protected |
Pointer to ModuleObjectFactory.
|
private |
Queue of tasks.
|
private |
Thread manager.