source: pacpusframework/trunk/src/PacpusLib/ComponentBase.cpp@ 172

Last change on this file since 172 was 152, checked in by Marek Kurdej, 11 years ago

Major update.
Renamed: addInput -> addInputs, addOutput -> addOutputs and made pure virtual (=0).
Transformed macro definitions into template methods: ADD_INPUT -> ComponentBase::addInput, ADD_OUTPUT -> ComponentBase::addOutput, GET_INPUT -> ComponentBase::getTypedInput, GET_OUTPUT -> ComponentBase::getTypedOutput.
Fixed: added public/protected set/get methods in ComponentBase, made member fields private.

  • Property svn:executable set to *
File size: 3.6 KB
RevLine 
[89]1// %pacpus:license{
2// This file is part of the PACPUS framework distributed under the
3// CECILL-C License, Version 1.0.
4// %pacpus:license}
5/// @version $Id: ComponentBase.cpp 76 2013-01-10 17:05:10Z kurdejma $
6
7#include <Pacpus/kernel/ComponentBase.h>
8#include <Pacpus/kernel/ComponentManager.h>
9#include <Pacpus/kernel/Log.h>
10
11using namespace pacpus;
12
13DECLARE_STATIC_LOGGER("pacpus.core.ComponentBase");
14
[152]15ComponentBase::ComponentBase(const QString& componentName)
16 : m_componentName(componentName)
17 , m_isActive(false)
18 , m_isRecording(true)
19 , m_manager(NULL)
20 , m_ui(NULL)
21 , m_componentState(NOT_MONITORED)
[89]22{
23 LOG_TRACE("constructor");
24 // Get a pointer on the instance of ComponentManager.
[152]25 m_manager = ComponentManager::getInstance();
26 LOG_INFO("component " << name() << " was created");
[89]27}
28
29ComponentBase::~ComponentBase()
30{
31 LOG_TRACE("destructor");
32}
33
[152]34bool ComponentBase::isActive() const
35{
36 return m_isActive;
37}
38
39void ComponentBase::setActive(bool isActive)
40{
41 m_isActive = isActive;
42}
43
44bool ComponentBase::isRecording() const
45{
46 return m_isRecording;
47}
48
49void ComponentBase::setRecording(bool isRecording)
50{
51 m_isRecording = isRecording;
52}
53
54const XmlComponentConfig ComponentBase::xmlParameters() const
55{
56 return param;
57}
58
[89]59int ComponentBase::startComponent()
60{
[152]61 if (isActive()) {
62 LOG_DEBUG("component already started, cannot (re-)start");
63 return false;
64 }
65
66 setActive(true);
[89]67 startActivity();
68
69 return true;
70}
71
72int ComponentBase::stopComponent()
73{
[152]74 if (!isActive()) {
75 LOG_DEBUG("component already stopped, cannot (re-)stop");
76 return false;
77 }
78
79 setActive(false);
[89]80 stopActivity();
81
82 return true;
83}
84
85void ComponentBase::setState(const COMPONENT_STATE state)
86{
[152]87 m_componentState = state;
[89]88}
89
90// FIXME: this should be const.
91ComponentBase::COMPONENT_STATE ComponentBase::getState()
92{
[152]93 COMPONENT_STATE state = m_componentState;
94 if (ComponentBase::NOT_MONITORED != m_componentState) {
95 m_componentState = ComponentBase::MONITOR_NOK;
[89]96 }
97 return state;
98}
99
[152]100ComponentBase::COMPONENT_CONFIGURATION ComponentBase::configurationState() const
101{
102 return m_configurationState;
103}
104
105void ComponentBase::setConfigurationState(COMPONENT_CONFIGURATION state)
106{
107 m_configurationState = state;
108}
109
[89]110bool ComponentBase::isConfigured() const
111{
[152]112 return (m_configurationState == CONFIGURED_OK);
[89]113}
114
[152]115QString ComponentBase::name() const
116{
117 return m_componentName;
118}
119
[89]120QString ComponentBase::getName() const
121{
[152]122 return m_componentName;
[89]123}
124
[152]125ComponentBase::InputsMap & ComponentBase::inputs()
[89]126{
[152]127 return m_inputs;
128}
[89]129
[152]130const ComponentBase::InputsMap & ComponentBase::inputs() const
131{
132 return m_inputs;
[89]133}
134
[152]135ComponentBase::OutputsMap & ComponentBase::outputs()
[89]136{
[152]137 return m_outputs;
138}
[89]139
[152]140const ComponentBase::OutputsMap & ComponentBase::outputs() const
141{
142 return m_outputs;
[89]143}
[120]144
[152]145InputInterfaceBase * ComponentBase::getInput(QString inputName) const
[120]146{
[152]147 if (inputs().contains(inputName)) {
148 return inputs()[inputName];
149 }
150 LOG_WARN("Component " << name() << " does not contain input " << inputName);
151 return NULL;
[120]152}
153
[152]154OutputInterfaceBase * ComponentBase::getOutput(QString outputName) const
[120]155{
[152]156/* QList<QString> keys = output.keys();
157 for(int i=0; i<keys.size();++i)
158 LOG_INFO("Key : " << keys[i])*/;
[120]159
[152]160 if (outputs().contains(outputName)) {
161 return outputs()[outputName];
162 }
163 LOG_WARN("Component " << name() << " does not containt output " << outputName);
164 return NULL;
[120]165}
Note: See TracBrowser for help on using the repository browser.