10#ifndef __RTMessage_h__
11#define __RTMessage_h__ included
17#ifndef __RTTimespec_h__
18#include <RTTimespec.h>
37#if OTRTSDEBUG != DEBUG_NONE
48 const void * const_data;
51 unsigned char priority;
60#if RTMESSAGE_PAYLOAD_SIZE != 0
64 char _data_area[ RTMESSAGE_PAYLOAD_SIZE ];
65 RTAlignment _alignment;
69 void _internData(
bool moveData );
82 RTS_INLINE
void clear(
void );
93 RTS_INLINE
int isRTData(
void )
const;
110 RTS_INLINE
void setInvalid(
void );
115 RTS_INLINE
int isValid(
void )
const;
145 RTS_INLINE
void *
getData(
void )
const;
161 RTS_INLINE
void internData(
bool moveData =
false );
177 int sapId(
void )
const;
189 RTS_INLINE
int sapIndex(
void )
const;
232#include <RTMessage.inl>
An instance of this class represents a capsule instance.
Definition: RTActor.h:44
A controller manages a group of capsule instances that all run in the same physical thread (i....
Definition: RTController.h:54
Provides a common interface to certain data type implementations (e.g.
Definition: RTDataObject.h:33
Represents a message used for communication between capsule instances.
Definition: RTMessage.h:33
void setSignal(int id)
Set the signal id of the message, i.e.
Definition: RTMessage.inl:131
int isRTData(void) const
Determines if the message carries a data object which is an RTDataObject.
Definition: RTMessage.inl:100
DeliverResult deliver(void)
Attempt to deliver the message to its specified receiver.
const char * getSignalName(void) const
Get the signal name of the message, i.e.
void setPriority(int prio)
Set the priority of the message.
Definition: RTMessage.inl:141
const RTObject_class * getType(void) const
Get the type of the data object of the message, if any.
Definition: RTMessage.inl:151
RTController * context(void) const
Return the controller of the message receiver.
Definition: RTActor.inl:140
void internData(bool moveData=false)
Intern the data object of the message.
Definition: RTMessage.inl:173
void resetDeferred(void)
Mark this message as not deferred.
Definition: RTMessage.inl:111
RTActor * receiver(void) const
Return the currently set receiver for the message.
Definition: RTMessage.inl:188
int defer(void) const
Defer the message by placing it in the defer queue.
void clear(void)
Destroy the data object stored in the message, and reset the message object to make it ready to be us...
Definition: RTMessage.inl:59
void setDeferred(void)
Mark this message as deferred.
Definition: RTMessage.inl:106
RTProtocol * sap(void) const
Return the capsule port on which this message was received.
Definition: RTMessage.inl:193
int getSignal(void) const
Get the signal id of the message, i.e.
Definition: RTMessage.inl:136
void setData(const void *data, const RTObject_class *type)
Set the data object of the message.
Definition: RTMessage.inl:161
void * getData(void) const
Get the data object carried by the message, if any.
Definition: RTMessage.inl:156
int sapIndex0(void) const
Return the index (0-based) of the replicated port on which this message was received.
Definition: RTMessage.inl:198
int sapId(void) const
Return the id of the capsule port on which this message was received.
Definition: RTMessage.inl:208
int isDeferred(void) const
Determines if this message has been deferred, i.e.
Definition: RTMessage.inl:116
int sapIndex(void) const
Return the index (1-based) of the replicated port on which this message was received.
Definition: RTMessage.inl:203
int getPriority(void) const
Get the priority of the message.
Definition: RTMessage.inl:146
int isValid(void) const
A message is considered valid as soon as its protocol event (i.e.
Definition: RTMessage.inl:121
void setDestination(RTActor *cap, RTProtocol *port, int index)
Set the destination (i.e.
Definition: RTMessage.inl:179
Represents a general capsule port typed by a protocol which determines the set of events that can be ...
Definition: RTProtocol.h:50
A type descriptor providing information about a type.
Definition: RTObject_class.h:64
A time value which can represent either an absolute or relative time.
Definition: RTTimespec.h:29
Encapsulates a data object and its type descriptor.
Definition: RTTypedValue.h:29