22 |
22 |
23 //#include <comms-infras/ss_nodestates.h> |
23 //#include <comms-infras/ss_nodestates.h> |
24 //#include <comms-infras/corescprstates.h> |
24 //#include <comms-infras/corescprstates.h> |
25 #include <comms-infras/corescpractivities.h> |
25 #include <comms-infras/corescpractivities.h> |
26 #include <comms-infras/ss_nodemessages_dataclient.h> |
26 #include <comms-infras/ss_nodemessages_dataclient.h> |
|
27 #include <elements/nm_messages_child.h> |
27 |
28 |
28 #include "agentscprstates.h" |
29 #include "agentscprstates.h" |
29 #include "agentscpractivities.h" |
30 #include "agentscpractivities.h" |
30 #include "agentmessages.h" |
31 #include "agentmessages.h" |
31 |
32 |
92 LAST_NODEACTIVITY_ENTRY(KNoTag, AgentSCprStates::TSendError) |
93 LAST_NODEACTIVITY_ENTRY(KNoTag, AgentSCprStates::TSendError) |
93 LAST_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStarted, AgentSCprStates::TSendDataClientGoneDown) |
94 LAST_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStarted, AgentSCprStates::TSendDataClientGoneDown) |
94 NODEACTIVITY_END() |
95 NODEACTIVITY_END() |
95 } |
96 } |
96 |
97 |
|
98 namespace AgentSCprDestroyActivity |
|
99 { |
|
100 //Overridden destroy for cleaning up the agent if its still about |
|
101 DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityDestroy, AgentSCprDestroy, Messages::TEChild::TDestroy, CoreActivities::CDestroyActivity::New) |
|
102 FIRST_NODEACTIVITY_ENTRY(MeshMachine::TAwaitingDestroy, CoreActivities::CDestroyActivity::TNoTagBlockedByActivitiesOrLeavingDataClient) |
97 |
103 |
|
104 ROUTING_NODEACTIVITY_ENTRY(KNoTag, AgentSCprStates::TNoTagOrProviderStopped) |
|
105 NODEACTIVITY_ENTRY(KNoTag, AgentSCprStates::TStopAgent, AgentSCprStates::TAwaitingAgentDown, MeshMachine::TTag<CoreNetStates::KProviderStopped>) |
|
106 ROUTING_NODEACTIVITY_ENTRY(CoreNetStates::KProviderStopped, CoreStates::TNoTagOrNoClients) |
|
107 |
|
108 //The node mustn't go out of scope with clients present. The node must get rid of them first. |
|
109 NODEACTIVITY_ENTRY(KNoTag, CoreActivities::CDestroyActivity::TMakeClientsLeaveOrProcessClientLeave, CoreStates::TAwaitingClientLeave, CoreActivities::CDestroyActivity::TNoTagOrNoTagBackwards) |
|
110 THROUGH_NODEACTIVITY_ENTRY(KNoTag, CoreActivities::CDestroyActivity::TProcessClientLeave, TTag<CoreNetStates::KNoClients>) |
|
111 |
|
112 THROUGH_NODEACTIVITY_ENTRY(CoreNetStates::KNoClients, PRStates::TProcessDestroy, MeshMachine::TNoTag) |
|
113 NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing, MeshMachine::TAwaitingLeaveComplete, CoreActivities::CDestroyActivity::TNoTagOrNoTagBackwards) |
|
114 LAST_NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSendClientLeavingAndRemoveControlProvider) |
|
115 NODEACTIVITY_END() |
|
116 } |
98 // Activity Map |
117 // Activity Map |
99 namespace AgentSCprActivities |
118 namespace AgentSCprActivities |
100 { |
119 { |
101 DEFINE_EXPORT_ACTIVITY_MAP(agentSCprActivities) |
120 DEFINE_EXPORT_ACTIVITY_MAP(agentSCprActivities) |
|
121 ACTIVITY_MAP_ENTRY(AgentSCprDestroyActivity, AgentSCprDestroy) |
102 ACTIVITY_MAP_ENTRY(AgentSCprNotificationFromFlowActivity, AgentSCprNotificationFromFlow) |
122 ACTIVITY_MAP_ENTRY(AgentSCprNotificationFromFlowActivity, AgentSCprNotificationFromFlow) |
103 ACTIVITY_MAP_ENTRY(AgentSCprAuthenticationActivity, AgentSCprAuthentication) |
123 ACTIVITY_MAP_ENTRY(AgentSCprAuthenticationActivity, AgentSCprAuthentication) |
104 ACTIVITY_MAP_ENTRY(AgentSCprDataClientGoneDownActivity, AgentSCprDataClientGoneDown) |
124 ACTIVITY_MAP_ENTRY(AgentSCprDataClientGoneDownActivity, AgentSCprDataClientGoneDown) |
105 ACTIVITY_MAP_ENTRY(AgentSCprStartActivity, AgentSCprStart) |
125 ACTIVITY_MAP_ENTRY(AgentSCprStartActivity, AgentSCprStart) |
106 ACTIVITY_MAP_ENTRY(AgentSCprStopActivity, AgentSCprStop) |
126 ACTIVITY_MAP_ENTRY(AgentSCprStopActivity, AgentSCprStop) |