blob: 26c63a443977e268c09724c216ec64ed07e0fd88 [file]
#ifndef B_HH
#define B_HH
#include "P.hh"
#include "umlrtcapsule.hh"
#include "umlrtcapsuleclass.hh"
#include "umlrtlogprotocol.hh"
#include "umlrtmessage.hh"
struct UMLRTCommsPort;
struct UMLRTSlot;
class Capsule_B : public UMLRTCapsule
{
public:
Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
protected:
UMLRTLogProtocol_baserole log;
P::Conj p;
public:
enum BorderPortId
{
borderport_p
};
enum PartId
{
};
enum PortId
{
port_log,
port_p
};
enum InternalPortId
{
internalport_log
};
virtual void bindPort( bool isBorder, int portId, int index );
virtual void unbindPort( bool isBorder, int portId, int index );
virtual void inject( const UMLRTMessage & message );
virtual void initialize( const UMLRTMessage & message );
const char * getCurrentStateString() const;
private:
enum State
{
State1,
State2,
State1__State1,
State1__boundary,
State2__State1,
State2__boundary,
SPECIAL_INTERNAL_STATE_TOP,
SPECIAL_INTERNAL_STATE_UNVISITED
};
const char * stateNames[8];
State currentState;
State history[2];
void save_history( State compositeState, State subState );
bool check_history( State compositeState, State subState );
void update_state( State newState );
void entryaction_____State1__State1( const UMLRTMessage * msg );
void entryaction_____State1__boundary( const UMLRTMessage * msg );
void entryaction_____State2__State1( const UMLRTMessage * msg );
void entryaction_____State2__boundary( const UMLRTMessage * msg );
void exitaction_____State1__State1( const UMLRTMessage * msg );
void exitaction_____State1__boundary( const UMLRTMessage * msg );
void actionchain_____State1__new_transition_1( const UMLRTMessage * msg );
void actionchain_____State1__new_transition_2_to_boundary( const UMLRTMessage * msg );
void actionchain_____State1__t10( const UMLRTMessage * msg );
void actionchain_____State1__t11( const UMLRTMessage * msg );
void actionchain_____State2__new_transition_3( const UMLRTMessage * msg );
void actionchain_____State2__new_transition_4_to_boundary( const UMLRTMessage * msg );
void actionchain_____State2__t20( const UMLRTMessage * msg );
void actionchain_____t0( const UMLRTMessage * msg );
void actionchain_____t1( const UMLRTMessage * msg );
State junction_____State1__ExitPoint1( const UMLRTMessage * msg );
State junction_____State1__entry( const UMLRTMessage * msg );
State junction_____State2__EntryPoint1( const UMLRTMessage * msg );
State choice_____State1__deephistory( const UMLRTMessage * msg );
State choice_____State2__deephistory( const UMLRTMessage * msg );
State state_____State1__State1( const UMLRTMessage * msg );
State state_____State1__boundary( const UMLRTMessage * msg );
State state_____State2__State1( const UMLRTMessage * msg );
State state_____State2__boundary( const UMLRTMessage * msg );
};
extern const UMLRTCapsuleClass B;
#endif