INTRODUCTION
Overview
Download and Install
Documentation
Publications

REPOSITORY
Libraries

DEVELOPER
Dev Guide
Dashboard

PEOPLE
Contributors
Users

SourceForge.net Logo
Project
Download
Mailing lists

 

         
trivialstatus.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_TRIVIAL_STATUS_H
12 #define GBXUTILACFR_TRIVIAL_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 <gbxutilacfr/status.h>
27 #include <gbxutilacfr/tracer.h>
28 
29 namespace gbxutilacfr {
30 
31 
39 class GBXUTILACFR_EXPORT TrivialStatus : public Status
40 {
41 public:
42 
43  TrivialStatus( Tracer& tracer,
44  bool stateChange=true, bool ok=false, bool warn=true, bool fault=true, bool heartbeat=false );
45 
46  virtual void addSubsystem( const std::string& subsystem,
47  double maxHeartbeatIntervalSec=-1.0, SubsystemType type=SubsystemStandard );
48  virtual void removeSubsystem( const std::string& subsystem );
50  virtual std::vector<std::string> subsystems();
52  virtual SubsystemStatus subsystemStatus( const std::string& subsystem );
55  virtual ComponentStatus componentStatus();
56  virtual void setMaxHeartbeatInterval( const std::string& subsystem, double interval );
57  virtual void setSubsystemType( const std::string& subsystem, SubsystemType type );
58 
59  virtual void setSubsystemStatus( const std::string& subsystem, SubsystemState state, SubsystemHealth health, const std::string& msg="" );
60 
61  virtual void initialising( const std::string& subsystem );
62  virtual void working( const std::string& subsystem );
63  virtual void finalising( const std::string& subsystem );
64  virtual void fault( const std::string& subsystem, const std::string& msg );
65 
66  virtual void ok( const std::string& subsystem, const std::string& msg="" );
67  virtual void warning( const std::string& subsystem, const std::string& msg );
68  virtual void critical( const std::string& subsystem, const std::string& msg );
69 
70  virtual void heartbeat( const std::string& subsystem );
71  virtual void message( const std::string& subsystem, const std::string& msg );
72 
73  virtual void process();
74 
75 private:
76 
77  void internalSetStatus( const std::string& subsystem, gbxutilacfr::SubsystemState state,
78  gbxutilacfr::SubsystemHealth health, const std::string& msg )
79  { internalSetStatus(subsystem,state,health,true,msg); };
80 
81  void internalSetStatus( const std::string& subsystem, gbxutilacfr::SubsystemState state,
83  { internalSetStatus(subsystem,state,health,false,""); };
84 
85  void internalSetStatus( const std::string& subsystem, gbxutilacfr::SubsystemState state,
86  gbxutilacfr::SubsystemHealth health, bool hasMessage, const std::string& msg );
87 
88  Tracer& tracer_;
89 
90  bool stateChange_;
91  bool ok_;
92  bool warn_;
93  bool fault_;
94  bool heartbeat_;
95 };
96 
97 } // namespace
98 
99 #endif
@ SubsystemInitialising
Subsystem is preparing to work, e.g. initialising its resources, etc.
Definition: status.h:37
virtual SubsystemStatus subsystemStatus(const std::string &subsystem)
Does not keep track of status, throws Exception on any query.
Definition: trivialstatus.cpp:51
@ SubsystemFinalising
Subsystem is preparing to shutdown, e.g. releasing its resources, etc.
Definition: status.h:41
virtual void removeSubsystem(const std::string &subsystem)
Definition: trivialstatus.cpp:39
A trivial implementation of the status API which does not assemble information.
Definition: trivialstatus.h:40
@ SubsystemFault
Subsystem is in an unrecovarable faulty state.
Definition: status.h:45
virtual void addSubsystem(const std::string &subsystem, double maxHeartbeatIntervalSec=-1.0, SubsystemType type=SubsystemStandard)
Definition: trivialstatus.cpp:33
Base class for all GbxUtilAcfr exceptions.
Definition: gbxutilacfr/exceptions.h:66
virtual void info(const std::string &message, int level=1, bool localOnly=false)
Definition: tracer.h:133
virtual void setMaxHeartbeatInterval(const std::string &subsystem, double interval)
Definition: trivialstatus.cpp:63
@ SubsystemWorking
Subsystem is fully initialised and is performing its function.
Definition: status.h:39
virtual void warning(const std::string &message, int level=1, bool localOnly=false)
Definition: tracer.h:141
virtual void setSubsystemType(const std::string &subsystem, SubsystemType type)
Sets the subsystem type which describes the expected behavior of the subsystem.
Definition: trivialstatus.cpp:69
virtual void process()
Definition: trivialstatus.cpp:191
virtual void initialising(const std::string &subsystem)
Definition: trivialstatus.cpp:82
virtual void heartbeat(const std::string &subsystem)
Definition: trivialstatus.cpp:124
Definition: tracer.h:112
ACFR utilities.
Definition: gbxnovatelacfr/driver.h:24
virtual void error(const std::string &message, int level=1, bool localOnly=false)
Definition: tracer.h:149
@ SubsystemCritical
Subsystem has encountered a critical condition.
Definition: status.h:59
virtual void ok(const std::string &subsystem, const std::string &msg="")
Definition: trivialstatus.cpp:106
virtual void finalising(const std::string &subsystem)
Definition: trivialstatus.cpp:94
@ SubsystemWarning
Subsystem has encountered an abnormal but non-critical condition.
Definition: status.h:57
@ SubsystemIdle
Subsystem has been created but has not started initialisation process.
Definition: status.h:35
SubsystemState
Possible subsystem status values.
Definition: status.h:33
SubsystemHealth
Possible subsystem status values.
Definition: status.h:53
Local interface to component status.
Definition: status.h:254
virtual std::vector< std::string > subsystems()
Does not keep track of subsystems, returns empty vector.
Definition: trivialstatus.cpp:45
Status of a single component.
Definition: status.h:151
@ SubsystemOk
Subsystem is OK.
Definition: status.h:55
Status for a single subsystem.
Definition: status.h:67
virtual ComponentStatus componentStatus()
Definition: trivialstatus.cpp:57
virtual void critical(const std::string &subsystem, const std::string &msg)
Definition: trivialstatus.cpp:118
virtual void warning(const std::string &subsystem, const std::string &msg)
Definition: trivialstatus.cpp:112
virtual void message(const std::string &subsystem, const std::string &msg)
Definition: trivialstatus.cpp:130
@ SubsystemStandard
Standard model: subsystem's life cycle is equal to the life cycle of the component.
Definition: status.h:103
SubsystemType
Subsystem type which describes common behavior models of a subsystem.
Definition: status.h:101
virtual void working(const std::string &subsystem)
Definition: trivialstatus.cpp:88
std::string toString(SubsystemState state)
Returns string equivalent of state enumerator.
Definition: status.cpp:17
virtual void fault(const std::string &subsystem, const std::string &msg)
Definition: trivialstatus.cpp:100
virtual void setSubsystemStatus(const std::string &subsystem, SubsystemState state, SubsystemHealth health, const std::string &msg="")
Definition: trivialstatus.cpp:75
 

Generated for GearBox by  doxygen 1.4.5