Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
The container registry cleanup task is now completed and the registry can be used normally.
Open sidebar
dcdb
dcdb
Commits
0a64654a
Commit
0a64654a
authored
Jun 18, 2019
by
Micha Müller
Browse files
Minor improvement to SensorGroup: move common logic to SensorGroupInterface
parent
983fedbb
Changes
2
Show whitespace changes
Inline
Side-by-side
dcdbpusher/includes/SensorGroupInterface.h
View file @
0a64654a
...
...
@@ -117,7 +117,7 @@ public:
void
setInterval
(
unsigned
interval
)
{
_interval
=
interval
;
}
///@}
///@name
Interface methods
///@name
Publicly accessible interface methods (implemented in SensorGroupTemplate)
///@{
/**
* @brief Initialize the sensor group.
...
...
@@ -178,20 +178,47 @@ public:
LOG_VAR
(
ll
)
<<
" minValues: "
<<
_minValues
;
LOG_VAR
(
ll
)
<<
" interval: "
<<
_interval
;
}
///@}
protected:
///@name Internal methods (implemented in a plugin's SensorGroup)
///@{
/**
* @brief Read data for all sensors once.
*/
virtual
void
read
()
=
0
;
/**
* @brief Asynchronous callback if _timer expires.
* @brief Implement plugin specific actions to initialize a group here.
*
* @details If a derived class (i.e. a plugin group) requires further custom
* actions for initialization, this should be implemented here.
* %initGroup() is appropriately called during init().
*/
virtual
void
execOnInit
()
{
/* do nothing if not overwritten */
}
/**
* @brief Implement plugin specific actions to start a group here.
*
* @details If a derived class (i.e. a plugin group) requires further custom
* actions to start polling data (e.g. open a file descriptor),
* this should be implemented here. %startGroup() is appropriately
* called during start().
*
* @
d
et
ails Issues a read() and sets the timer again if _keepRunning is tru
e.
* @
r
et
urn True on success, false otherwis
e.
*/
virtual
void
readAsync
()
=
0
;
virtual
bool
execOnStart
()
{
return
true
;
}
/**
* @brief Implement plugin specific actions to stop a group here.
*
* @details If a derived class (i.e. a plugin group) requires further custom
* actions to stop polling data (e.g. close a file descriptor),
* this should be implemented here. %stopGroup() is appropriately
* called during stop().
*/
virtual
void
execOnStop
()
{
/* do nothing if not overwritten */
}
/**
* @brief Print information about plugin specific group attributes (or
...
...
@@ -208,7 +235,6 @@ protected:
///@name Utility methods
///@{
public:
/**
* @brief Does a busy wait until all dispatched handlers are finished
* (_pendingTasks == 0).
...
...
@@ -231,7 +257,6 @@ public:
LOG
(
warning
)
<<
"Group "
<<
_groupName
<<
" will not finish! Skipping it"
;
}
protected:
/**
* @brief Calculate timestamp for the next reading.
*
...
...
dcdbpusher/includes/SensorGroupTemplate.h
View file @
0a64654a
...
...
@@ -238,9 +238,8 @@ protected:
* @brief Asynchronous callback if _timer expires.
*
* @details Issues a read() and sets the timer again if _keepRunning is true.
* Not intended to be overwritten.
*/
void
readAsync
()
final
override
{
void
readAsync
()
{
this
->
read
();
if
(
_timer
&&
_keepRunning
)
{
_timer
->
expires_at
(
timestamp2ptime
(
nextReadingTime
()));
...
...
@@ -250,42 +249,6 @@ protected:
_pendingTasks
--
;
}
//TODO move common logic to interface
///@name Can be overwritten
///@{
/**
* @brief Implement plugin specific actions to initialize a group here.
*
* @details If a derived class (i.e. a plugin group) requires further custom
* actions for initialization, this should be implemented here.
* %execOnInit() is appropriately called by this template during
* init().
*/
virtual
void
execOnInit
()
{
/* do nothing if not overwritten */
}
/**
* @brief Implement plugin specific actions to start a group here.
*
* @details If a derived class (i.e. a plugin group) requires further custom
* actions to start polling data (e.g. open a file descriptor),
* this should be implemented here. %execOnStart() is appropriately
* called by this template during start().
*
* @return True on success, false otherwise.
*/
virtual
bool
execOnStart
()
{
return
true
;
}
/**
* @brief Implement plugin specific actions to stop a group here.
*
* @details If a derived class (i.e. a plugin group) requires further custom
* actions to stop polling data (e.g. close a file descriptor),
* this should be implemented here. %execOnStop() is appropriately
* called by this template during stop().
*/
virtual
void
execOnStop
()
{
/* do nothing if not overwritten */
}
///@}
std
::
vector
<
S_Ptr
>
_sensors
;
///< Sensors associated with this group
std
::
vector
<
SBasePtr
>
_baseSensors
;
///< Maintain vector with SensorBase pointers for fast getSensors() implementation
E
*
_entity
;
///< Entity this group is associated to
...
...
@@ -475,9 +438,8 @@ protected:
* @brief Asynchronous callback if _timer expires.
*
* @details Issues a read() and sets the timer again if _keepRunning is true.
* Not intended to be overwritten.
*/
void
readAsync
()
final
override
{
void
readAsync
()
{
this
->
read
();
if
(
_timer
&&
_keepRunning
)
{
_timer
->
expires_at
(
timestamp2ptime
(
nextReadingTime
()));
...
...
@@ -487,41 +449,6 @@ protected:
_pendingTasks
--
;
}
///@name Can be overwritten
///@{
/**
* @brief Implement plugin specific actions to initialize a group here.
*
* @details If a derived class (i.e. a plugin group) requires further custom
* actions for initialization, this should be implemented here.
* %initGroup() is appropriately called by this template during
* init().
*/
virtual
void
execOnInit
()
{
/* do nothing if not overwritten */
}
/**
* @brief Implement plugin specific actions to start a group here.
*
* @details If a derived class (i.e. a plugin group) requires further custom
* actions to start polling data (e.g. open a file descriptor),
* this should be implemented here. %startGroup() is appropriately
* called by this template during start().
*
* @return True on success, false otherwise.
*/
virtual
bool
execOnStart
()
{
return
true
;
}
/**
* @brief Implement plugin specific actions to stop a group here.
*
* @details If a derived class (i.e. a plugin group) requires further custom
* actions to stop polling data (e.g. close a file descriptor),
* this should be implemented here. %stopGroup() is appropriately
* called by this template during stop().
*/
virtual
void
execOnStop
()
{
/* do nothing if not overwritten */
}
///@}
std
::
vector
<
S_Ptr
>
_sensors
;
///< Sensors associated with this group
std
::
vector
<
SBasePtr
>
_baseSensors
;
///< Maintain vector with SensorBase pointers for fast getSensors() implementation
};
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment