/*! ========================================================================
** Extended Template and Library Test Suite
** Angle Class Test
-** $Id: smach.cpp,v 1.1.1.1 2005/01/04 01:31:48 darco Exp $
+** $Id$
**
** Copyright (c) 2002 Robert B. Quattlebaum Jr.
**
struct MachineContext
{
smach<MachineContext,EventKey> machine;
-
+
MachineContext():machine(this)
{
}
{
MachineContext *context;
public:
- DefaultStateContext(MachineContext *context):context(context) { printf("Enterted Default State\n"); }
+ DefaultStateContext(MachineContext *context):context(context) { printf("Entered Default State\n"); }
~DefaultStateContext() { printf("Left Default State\n"); }
-
- Smach::event_result event1_handler(const Smach::event& x)
+
+ Smach::event_result event1_handler(const Smach::event& x __attribute__ ((unused)))
{
printf("DEFAULT STATE: Received Event 1\n");
return Smach::RESULT_ACCEPT;
{
insert(event_def(EVENT_1,&DefaultStateContext::event1_handler));
}
-
+
} default_state;
{
MachineContext *context;
public:
- State1Context(MachineContext *context):context(context) { printf("Enterted State 1\n"); }
+ State1Context(MachineContext *context):context(context) { printf("Entered State 1\n"); }
~State1Context() { printf("Left State 1\n"); }
-
- Smach::event_result event1_handler(const Smach::event& x)
+
+ Smach::event_result event1_handler(const Smach::event& x __attribute__ ((unused)))
{
printf("STATE1: Received Event 1\n");
return Smach::RESULT_OK;
insert(event_def(EVENT_1,&State1Context::event1_handler));
insert(event_def(EVENT_3,&State1Context::event3_handler));
}
-
+
} state_1;
{
MachineContext *context;
public:
- State2Context(MachineContext *context):context(context) { printf("Enterted State 2\n"); }
+ State2Context(MachineContext *context):context(context) { printf("Entered State 2\n"); }
~State2Context() { printf("Left State 2\n"); }
-
- Smach::event_result event1_handler(const Smach::event& x)
+
+ Smach::event_result event1_handler(const Smach::event& x __attribute__ ((unused)))
{
printf("STATE2: Received Event 1\n");
return Smach::RESULT_OK;
}
- Smach::event_result event2_handler(const Smach::event& x)
+ Smach::event_result event2_handler(const Smach::event& x __attribute__ ((unused)))
{
printf("STATE2: Received Event 2\n");
return Smach::RESULT_OK;
}
- Smach::event_result event3_handler(const Smach::event& x)
+ Smach::event_result event3_handler(const Smach::event& x __attribute__ ((unused)))
{
printf("STATE2: Received Event 3\n");
return Smach::RESULT_OK;
insert(event_def(EVENT_2,&State2Context::event2_handler));
insert(event_def(EVENT_3,&State2Context::event3_handler));
}
-
+
} state_2;
Smach::event_result
-State1Context::event3_handler(const Smach::event& x)
+State1Context::event3_handler(const Smach::event& x __attribute__ ((unused)))
{
printf("STATE1: Received Event 3, throwing state to change to...\n");
-
+
throw &state_2;
// context->machine.enter(&state_2);
// return Smach::RESULT_ACCEPT;
{
int error=0;
- MachineContext context;
+ MachineContext context;
try
{
Smach& state_machine(context.machine);
state_machine.set_default_state(&default_state);
state_machine.enter(&state_1);
-
+
state_machine.process_event(Event1());
state_machine.process_event(EVENT_1);
state_machine.process_event(EVENT_2);
printf("Uncaught exception\n");
error++;
}
-
+
return error;
}