blob: 83301edb34b34d65bc2b700c1d020a98391945d6 [file] [log] [blame]
/**
* @author generated by eTrice
*
* Header File of ProtocolClass RTSystemServicesProtocol
*
*/
#ifndef _COMMON_MODELBASE_RTSYSTEMSERVICESPROTOCOL_H_
#define _COMMON_MODELBASE_RTSYSTEMSERVICESPROTOCOL_H_
#include "common/modelbase/InterfaceItemBase.h"
#include "common/modelbase/PortBase.h"
#include "common/modelbase/ReplicatedInterfaceItemBase.h"
#include "common/modelbase/ReplicatedPortBase.h"
#include "common/etDatatypesCpp.hpp"
class RTSystemServicesProtocol {
public:
/* message IDs */
typedef enum {
MSG_MIN = 0,
IN_executeInitialTransition = 1,
IN_startDebugging = 2,
IN_stopDebugging = 3,
MSG_MAX = 4
} msg_ids;
static bool isValidEvtID(int evtId) {
return ((MSG_MIN < evtId) && (evtId < MSG_MAX));
}
static bool isValidOutgoingEvtID(int evtId) {
return ((MSG_MIN < evtId) && (evtId < IN_executeInitialTransition));
}
static bool isValidIncomingEvtID(int evtId) {
return ((IN_executeInitialTransition <= evtId) && (evtId < MSG_MAX));
}
static const etRuntime::String& getMessageString(int msg_id);
private:
static const etRuntime::String s_messageStrings[];
};
//------------------------------------------------------------------------------------------------------------
// port class
//------------------------------------------------------------------------------------------------------------
class RTSystemServicesProtocolPort : public etRuntime::PortBase {
public:
RTSystemServicesProtocolPort(etRuntime::IInterfaceItemOwner* actor, const etRuntime::String& name, int localId);
RTSystemServicesProtocolPort(etRuntime::IInterfaceItemOwner* actor, const etRuntime::String& name, int localId, int idx);
virtual void destroy();
virtual void receive(const etRuntime::Message* m);
// sent messages
};
//------------------------------------------------------------------------------------------------------------
// replicated port class
//------------------------------------------------------------------------------------------------------------
class RTSystemServicesProtocolReplPort : public etRuntime::ReplicatedPortBase {
public:
RTSystemServicesProtocolReplPort(etRuntime::IInterfaceItemOwner* actor, const etRuntime::String& name, int localId);
int getReplication() const { return getNInterfaceItems(); }
int getIndexOf(const etRuntime::InterfaceItemBase& ifitem) const { return ifitem.getIdx(); }
RTSystemServicesProtocolPort& get(int idx) const { return *dynamic_cast<RTSystemServicesProtocolPort*>(getInterfaceItem(idx)); }
// outgoing messages
protected:
virtual etRuntime::InterfaceItemBase* createInterfaceItem(etRuntime::IInterfaceItemOwner* rcv, const etRuntime::String& name, int lid, int idx) {
return new RTSystemServicesProtocolPort(rcv, name, lid, idx);
}
};
//------------------------------------------------------------------------------------------------------------
// conjugated port class
//------------------------------------------------------------------------------------------------------------
class RTSystemServicesProtocolConjPort : public etRuntime::PortBase {
public:
RTSystemServicesProtocolConjPort(etRuntime::IInterfaceItemOwner* actor, const etRuntime::String& name, int localId);
RTSystemServicesProtocolConjPort(etRuntime::IInterfaceItemOwner* actor, const etRuntime::String& name, int localId, int idx);
virtual void destroy();
virtual void receive(const etRuntime::Message* m);
// sent messages
public: void executeInitialTransition();
private: void executeInitialTransition_impl();
public: void startDebugging();
private: void startDebugging_impl();
public: void stopDebugging();
private: void stopDebugging_impl();
};
//------------------------------------------------------------------------------------------------------------
// conjugated replicated port class
//------------------------------------------------------------------------------------------------------------
class RTSystemServicesProtocolConjReplPort : public etRuntime::ReplicatedPortBase {
public:
RTSystemServicesProtocolConjReplPort(etRuntime::IInterfaceItemOwner* actor, const etRuntime::String& name, int localId);
int getReplication() const { return getNInterfaceItems(); }
int getIndexOf(const etRuntime::InterfaceItemBase& ifitem) const { return ifitem.getIdx(); }
RTSystemServicesProtocolConjPort& get(int idx) const { return *dynamic_cast<RTSystemServicesProtocolConjPort*>(getInterfaceItem(idx)); }
// incoming messages
public: void executeInitialTransition();
public: void startDebugging();
public: void stopDebugging();
protected:
virtual etRuntime::InterfaceItemBase* createInterfaceItem(etRuntime::IInterfaceItemOwner* rcv, const etRuntime::String& name, int lid, int idx) {
return new RTSystemServicesProtocolConjPort(rcv, name, lid, idx);
}
};
#endif /* _COMMON_MODELBASE_RTSYSTEMSERVICESPROTOCOL_H_ */