source: pacpusframework/branches/0.1.x/src/PacpusLib/ComponentBase.cpp

Last change on this file 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
Line 
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
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)
22{
23 LOG_TRACE("constructor");
24 // Get a pointer on the instance of ComponentManager.
25 m_manager = ComponentManager::getInstance();
26 LOG_INFO("component " << name() << " was created");
27}
28
29ComponentBase::~ComponentBase()
30{
31 LOG_TRACE("destructor");
32}
33
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
59int ComponentBase::startComponent()
60{
61 if (isActive()) {
62 LOG_DEBUG("component already started, cannot (re-)start");
63 return false;
64 }
65
66 setActive(true);
67 startActivity();
68
69 return true;
70}
71
72int ComponentBase::stopComponent()
73{
74 if (!isActive()) {
75 LOG_DEBUG("component already stopped, cannot (re-)stop");
76 return false;
77 }
78
79 setActive(false);
80 stopActivity();
81
82 return true;
83}
84
85void ComponentBase::setState(const COMPONENT_STATE state)
86{
87 m_componentState = state;
88}
89
90// FIXME: this should be const.
91ComponentBase::COMPONENT_STATE ComponentBase::getState()
92{
93 COMPONENT_STATE state = m_componentState;
94 if (ComponentBase::NOT_MONITORED != m_componentState) {
95 m_componentState = ComponentBase::MONITOR_NOK;
96 }
97 return state;
98}
99
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
110bool ComponentBase::isConfigured() const
111{
112 return (m_configurationState == CONFIGURED_OK);
113}
114
115QString ComponentBase::name() const
116{
117 return m_componentName;
118}
119
120QString ComponentBase::getName() const
121{
122 return m_componentName;
123}
124
125ComponentBase::InputsMap & ComponentBase::inputs()
126{
127 return m_inputs;
128}
129
130const ComponentBase::InputsMap & ComponentBase::inputs() const
131{
132 return m_inputs;
133}
134
135ComponentBase::OutputsMap & ComponentBase::outputs()
136{
137 return m_outputs;
138}
139
140const ComponentBase::OutputsMap & ComponentBase::outputs() const
141{
142 return m_outputs;
143}
144
145InputInterfaceBase * ComponentBase::getInput(QString inputName) const
146{
147 if (inputs().contains(inputName)) {
148 return inputs()[inputName];
149 }
150 LOG_WARN("Component " << name() << " does not contain input " << inputName);
151 return NULL;
152}
153
154OutputInterfaceBase * ComponentBase::getOutput(QString outputName) const
155{
156/* QList<QString> keys = output.keys();
157 for(int i=0; i<keys.size();++i)
158 LOG_INFO("Key : " << keys[i])*/;
159
160 if (outputs().contains(outputName)) {
161 return outputs()[outputName];
162 }
163 LOG_WARN("Component " << name() << " does not containt output " << outputName);
164 return NULL;
165}
Note: See TracBrowser for help on using the repository browser.