INTRODUCTION
Overview
Download and Install
Documentation
Publications

REPOSITORY
Libraries

DEVELOPER
Dev Guide
Dashboard

PEOPLE
Contributors
Users

SourceForge.net Logo
Project
Download
Mailing lists

 

         
status.h
1/*
2 * GearBox Project: Peer-Reviewed Open-Source Libraries for Robotics
3 * http://gearbox.sf.net/
4 * Copyright (c) 2004-2010 Alex Brooks, Alexei Makarenko, Tobias Kaupp
5 *
6 * This distribution is licensed to you under the terms described in
7 * the LICENSE file included in this distribution.
8 *
9 */
10
11#ifndef GBXUTILACFR_STATUS_H
12#define GBXUTILACFR_STATUS_H
13
14#if defined (WIN32)
15 #if defined (GBXUTILACFR_STATIC)
16 #define GBXUTILACFR_EXPORT
17 #elif defined (GBXUTILACFR_EXPORTS)
18 #define GBXUTILACFR_EXPORT __declspec (dllexport)
19 #else
20 #define GBXUTILACFR_EXPORT __declspec (dllimport)
21 #endif
22#else
23 #define GBXUTILACFR_EXPORT
24#endif
25
26#include <string>
27#include <vector>
28
29namespace gbxutilacfr {
30
47
49GBXUTILACFR_EXPORT std::string toString( SubsystemState state );
50
61
63GBXUTILACFR_EXPORT std::string toString( SubsystemHealth health );
64
66struct GBXUTILACFR_EXPORT SubsystemStatus
67{
70 bool stall=false, double beat=0.0 ) :
71 state(s),
72 health(h),
73 message(msg),
74 isStalled(stall),
75 sinceHeartbeat(beat) {};
76
79
82
84 std::string message;
85
88
94};
95
97GBXUTILACFR_EXPORT std::string toString( const SubsystemStatus& status );
98
115
117GBXUTILACFR_EXPORT std::string toString( SubsystemType type );
118
131
133GBXUTILACFR_EXPORT std::string toString( ComponentState type );
134
145
147GBXUTILACFR_EXPORT std::string toString( ComponentHealth type );
148
159
253class GBXUTILACFR_EXPORT Status
254{
255
256public:
257
258 virtual ~Status() {};
259
275 virtual void addSubsystem( const std::string& subsystem,
276 double maxHeartbeatIntervalSec=-1.0, SubsystemType type=SubsystemStandard )=0;
277
280 virtual void removeSubsystem( const std::string& subsystem )=0;
281
283 virtual std::vector<std::string> subsystems()=0;
284
287 virtual SubsystemStatus subsystemStatus( const std::string& subsystem )=0;
288
290// virtual SubsystemState infrastructureState()=0;
291
296
301 virtual void setMaxHeartbeatInterval( const std::string& subsystem, double intervalSec )=0;
302
304 virtual void setSubsystemType( const std::string& subsystem, SubsystemType type )=0;
305
306 //
307 // BOTH STATE AND HEALTH CHANGES
308 //
309
313 virtual void setSubsystemStatus( const std::string& subsystem, SubsystemState state, SubsystemHealth health, const std::string& message="" )=0;
314
315 //
316 // STATE CHANGES
317 //
318
321 virtual void initialising( const std::string& subsystem )=0;
322
325 virtual void working( const std::string& subsystem )=0;
326
329 virtual void finalising( const std::string& subsystem )=0;
330
334 virtual void fault( const std::string& subsystem, const std::string& message )=0;
335
336 //
337 // HEALTH CHANGES
338 //
339
342 virtual void ok( const std::string& subsystem, const std::string& message="" )=0;
343
346 virtual void warning( const std::string& subsystem, const std::string& message )=0;
347
350 virtual void critical( const std::string& subsystem, const std::string& message )=0;
351
352 //
353 // NO CHANGE
354 //
355
359 virtual void heartbeat( const std::string& subsystem )=0;
360
363 virtual void message( const std::string& subsystem, const std::string& message )=0;
364
365 //
366 // Utility
367 //
368
371 virtual void process()=0;
372};
373
374} // namespace
375
376#endif
Local interface to component status.
Definition status.h:254
virtual SubsystemStatus subsystemStatus(const std::string &subsystem)=0
virtual void setMaxHeartbeatInterval(const std::string &subsystem, double intervalSec)=0
virtual void addSubsystem(const std::string &subsystem, double maxHeartbeatIntervalSec=-1.0, SubsystemType type=SubsystemStandard)=0
virtual void removeSubsystem(const std::string &subsystem)=0
virtual void setSubsystemType(const std::string &subsystem, SubsystemType type)=0
Sets the subsystem type which describes the expected behavior of the subsystem.
virtual void initialising(const std::string &subsystem)=0
virtual void working(const std::string &subsystem)=0
virtual ComponentStatus componentStatus()=0
Returns state of the component infrastructure.
virtual std::vector< std::string > subsystems()=0
Returns a list of subsystem names.
virtual void warning(const std::string &subsystem, const std::string &message)=0
virtual void process()=0
virtual void heartbeat(const std::string &subsystem)=0
virtual void finalising(const std::string &subsystem)=0
virtual void message(const std::string &subsystem, const std::string &message)=0
virtual void fault(const std::string &subsystem, const std::string &message)=0
virtual void critical(const std::string &subsystem, const std::string &message)=0
virtual void ok(const std::string &subsystem, const std::string &message="")=0
virtual void setSubsystemStatus(const std::string &subsystem, SubsystemState state, SubsystemHealth health, const std::string &message="")=0
ACFR utilities.
Definition gbxnovatelacfr/driver.h:24
SubsystemHealth
Possible subsystem status values.
Definition status.h:53
@ SubsystemWarning
Subsystem has encountered an abnormal but non-critical condition.
Definition status.h:57
@ SubsystemCritical
Subsystem has encountered a critical condition.
Definition status.h:59
@ SubsystemOk
Subsystem is OK.
Definition status.h:55
ComponentState
Possible component states.
Definition status.h:121
@ CompStarting
Component is preparing to work, e.g. initialising its resources, etc.
Definition status.h:123
@ CompOperational
Component is fully initialised and is performing its work.
Definition status.h:125
@ CompFault
Component is in an unrecovarable faulty state.
Definition status.h:129
@ CompStopping
Component is preparing to shutdown, e.g. releasing its resources, etc.
Definition status.h:127
ComponentHealth
Possible values of component health.
Definition status.h:137
@ CompCritical
At least one of the component's subsystems has encountered a critical condition.
Definition status.h:143
@ CompWarning
At least one of the component's subsystems has encountered an abnormal but non-critical condition.
Definition status.h:141
@ CompOk
All of the component's subsystems are OK.
Definition status.h:139
std::string toString(SubsystemState state)
Returns string equivalent of state enumerator.
Definition status.cpp:17
SubsystemType
Subsystem type which describes common behavior models of a subsystem.
Definition status.h:101
@ SubsystemStandard
Standard model: subsystem's life cycle is equal to the life cycle of the component.
Definition status.h:103
@ SubsystemInfrastructure
Definition status.h:113
@ SubsystemEarlyExit
Definition status.h:108
SubsystemState
Possible subsystem status values.
Definition status.h:33
@ SubsystemWorking
Subsystem is fully initialised and is performing its function.
Definition status.h:39
@ SubsystemInitialising
Subsystem is preparing to work, e.g. initialising its resources, etc.
Definition status.h:37
@ SubsystemFinalising
Subsystem is preparing to shutdown, e.g. releasing its resources, etc.
Definition status.h:41
@ SubsystemIdle
Subsystem has been created but has not started initialisation process.
Definition status.h:35
@ SubsystemFault
Subsystem is in an unrecovarable faulty state.
Definition status.h:45
@ SubsystemShutdown
Subsystem is not longer functioning.
Definition status.h:43
Status of a single component.
Definition status.h:151
ComponentState state
Component state.
Definition status.h:153
ComponentHealth health
Component health.
Definition status.h:155
bool isStalled
Is component stalled?
Definition status.h:157
Status for a single subsystem.
Definition status.h:67
SubsystemHealth health
Subsystem's health. I.e. how is the subsystem doing?
Definition status.h:81
SubsystemStatus(SubsystemState s=SubsystemIdle, SubsystemHealth h=SubsystemOk, const std::string &msg="", bool stall=false, double beat=0.0)
Constructor.
Definition status.h:69
std::string message
Human-readable status description.
Definition status.h:84
bool isStalled
If true, the subsystem has not been heard from for an abnormally long time.
Definition status.h:87
double sinceHeartbeat
Definition status.h:93
SubsystemState state
Current state in the subsystem's state machine. I.e. what is the subsystem doing?
Definition status.h:78
 

Generated for GearBox by  doxygen 1.4.5