C++ TargetRTS
Loading...
Searching...
No Matches
RTActorProbe.h
1/*
2 * Licensed Materials - Property of HCL and/or IBM
3 * Copyright HCL Technologies Ltd. 2016, 2021. All Rights Reserved.
4 * Copyright IBM Corporation 1999, 2016. All Rights Reserved.
5 *
6 * U.S. Government Users Restricted Rights - Use, duplication or
7 * disclosure restricted by GSA ADP Schedule.
8 */
9
10#ifndef __RTActorProbe_h__
11#define __RTActorProbe_h__ included
12
13#ifdef PRAGMA
14#pragma interface
15#endif
16
17#ifndef __RTEventInfo_h_
18#include <RTEventInfo.h>
19#endif
20
21#ifndef __RTProbe_h__
22#include <RTProbe.h>
23#endif
24
25class RTController;
26class RTDaemonInfo;
27class RTMessage;
28struct RTObject_class;
29
30class RTActorProbe : public RTProbe
31{
32public:
33 RTActorProbe( RTDebugger * debugger,
34 int id,
35 const char * strPath,
36 int actorIndex );
37 virtual ~RTActorProbe( void );
38
39 void evtHistory ( int state );
40 void evtState ( int state );
41 void setState(const RTMessage * );
42 virtual void evtPresence ( int actorIndex,
43 int observerId,
44 int daemonId );
45 virtual void evtReference ( int compIndex, int observerId );
46 void evtMessageIn ( const RTMessage * );
47 void evtMessageOut ( const RTMessage *,
48 RTEventInfo::SendMethod );
49 void evtMessageOutIn( const RTMessage *,
50 RTEventInfo::SendMethod );
51 void evtChain( int chainPos );
52 void setChain( int origin,
53 const char * transition,
54 const RTMessage * );
55
56 void evtMsgQueue( RTMessage * msg );
57
58 virtual int connectProbe ( void ) override;
59 virtual int disconnectProbe( RTActor * actor ) override;
60
61 virtual const char * getTypeStr( void ) const override;
62 int inject( int inwards,
63 const char * signal,
64 int prio,
65 const void * data,
66 const RTObject_class * type,
67 const RTDaemonInfo & daemonInfo );
68
69 void addFieldValue( const char * variable,
70 const char * value );
71 void accessFieldValue( void );
72 void addFieldMonitor( const char * variable );
73 void delFieldMonitor( const char * variable );
74 void reportFieldValues( void );
75
76private:
77 struct FieldEntry
78 {
79 FieldEntry( const char * aName, const char * aValue );
80 ~FieldEntry( void );
81
82 char * varName;
83 char * varValue;
84 FieldEntry * next;
85 }; //lint !e1712
86
87 // Without this, some compilers disallow use of FieldEntry within itself!
88 friend struct FieldEntry;
89
90 int _chainOrigin;
91 const char * _chainTrans;
92 const RTMessage * _chainMsg;
93 const RTMessage * _stateMsg;
94 int _chainParent; // current state at pos 1
95 int _chainState; // current state at pos 2
96 FieldEntry * _fieldList;
97 FieldEntry * _fieldMonList;
98
99 RTController * context( void );
100 RTActor * getActorFromStrPath( void );
101
102 // unavailable methods
103 RTActorProbe( const RTActorProbe & );
104 RTActorProbe & operator=( const RTActorProbe & );
105}; //lint !e1712
106
107#endif // __RTActorProbe_h__
An instance of this class represents a capsule instance.
Definition: RTActor.h:44
Definition: RTActorProbe.h:31
A controller manages a group of capsule instances that all run in the same physical thread (i....
Definition: RTController.h:54
Definition: RTDaemonInfo.h:24
Definition: RTDebugger.h:58
Represents a message used for communication between capsule instances.
Definition: RTMessage.h:33
Definition: RTProbe.h:25
A type descriptor providing information about a type.
Definition: RTObject_class.h:64