C++ TargetRTS
Loading...
Searching...
No Matches
RTPortDescriptor.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 __RTPortDescriptor_h__
11#define __RTPortDescriptor_h__ included
12
13#ifdef PRAGMA
14#pragma interface
15#endif
16
17#ifndef __RTFieldOffset_h__
18#include <RTFieldOffset.h>
19#endif
20
22
23// This structure describes one port of a capsule.
24//
25// Field Meaning
26// ----- -------
27// name Design name of the port.
28// layerName Default registration name of the port.
29// protocol Protocol of the port.
30// offset Byte offset of the associated object within the
31// containing class, relative to RTActor.
32// replication The replication factor of the port (i.e. its multiplicity).
33// id An integer, uniquely identifying this port
34// within the containing capsule.
35// properties Distinguishes between the various kinds of ports
36// by holding the properties defined on the port.
37//
38// An array of these is addressed by an instance of RTActor_class.
39// That array must be sorted by id within kind.
40
42{
43 const char * name; // design name
44 const char * layerName; // default registration name
45 const RTProtocolDescriptor * protocol;
46 RTFieldOffset offset; // byte offset for the port
47 int replication;
48 short id;
49 short properties;
50
51 enum
52 {
53 ShiftKind = 0
54 , ShiftRegistration = 2
55 , ShiftNotification = 5
56 , ShiftVisibility = 6
57 };
58
59 enum
60 {
61 // kind
62 MaskKind = 3 << ShiftKind
63
64 , KindWired = 0
65 , KindUnwired = 1 << ShiftKind
66 , KindSpecial = 2 << ShiftKind
67
68 // notification
69 , MaskNotification = 1 << ShiftNotification
70
71 , NotificationDisabled = 0
72 , NotificationEnabled = 1 << ShiftNotification
73
74 // registration
75 , MaskRegisterPublished = 1 << ShiftRegistration
76 , MaskRegisterLocked = 2 << ShiftRegistration
77 , MaskRegisterAuto = 4 << ShiftRegistration
78 , MaskRegistration = 7 << ShiftRegistration
79
80 , RegisterApplicationUnpublished = 0
81 , RegisterApplicationPublished = 1 << ShiftRegistration
82 , RegisterNotPermitted = 2 << ShiftRegistration
83 , RegisterAutoUnlockedUnpublished = 4 << ShiftRegistration
84 , RegisterAutoUnlockedPublished = 5 << ShiftRegistration
85 , RegisterAutoLockedUnpublished = 6 << ShiftRegistration
86 , RegisterAutoLockedPublished = 7 << ShiftRegistration
87
88 // visibility
89 , MaskVisibility = 1 << ShiftVisibility
90
91 , VisibilityProtected = 0
92 , VisibilityPublic = 1 << ShiftVisibility
93 };
94};
95
96#endif // __RTPortDescriptor_h__
Definition: RTPortDescriptor.h:42
Definition: RTProtocolDescriptor.h:40