20 */ |
20 */ |
21 |
21 |
22 #include <comms-infras/ss_log.h> |
22 #include <comms-infras/ss_log.h> |
23 #include <elements/sm_core.h> |
23 #include <elements/sm_core.h> |
24 #include <comms-infras/corecpractivities.h> |
24 #include <comms-infras/corecpractivities.h> |
|
25 #include <comms-infras/ss_corepractivities.h> |
25 |
26 |
26 #include "tunnelagentcpr.h" |
27 #include "tunnelagentcpr.h" |
27 #include "tunnelagentcprstates.h" |
28 #include "tunnelagentcprstates.h" |
28 #include <comms-infras/agentmessages.h> |
29 #include <comms-infras/agentmessages.h> |
29 #include <comms-infras/agentcprstates.h> |
30 #include <comms-infras/agentcprstates.h> |
44 using namespace ESock; |
45 using namespace ESock; |
45 using namespace NetStateMachine; |
46 using namespace NetStateMachine; |
46 using namespace AgentCprStates; |
47 using namespace AgentCprStates; |
47 using namespace TunnelAgentCprStates; |
48 using namespace TunnelAgentCprStates; |
48 |
49 |
49 //We reserve space for two preallocated activities that may start concurrently on the CPR |
|
50 //node: destroy and data client stop. |
|
51 static const TUint KDefaultMaxPreallocatedActivityCount = 2; |
|
52 static const TUint KMaxPreallocatedActivitySize = sizeof(MeshMachine::CNodeRetryParallelActivity) + sizeof(MeshMachine::APreallocatedOriginators<4>); |
|
53 static const TUint KTunnelCPRPreallocatedActivityBufferSize = KDefaultMaxPreallocatedActivityCount * KMaxPreallocatedActivitySize; |
|
54 |
|
55 namespace TunnelAgentCprStartActivity |
50 namespace TunnelAgentCprStartActivity |
56 { |
51 { |
57 DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityStart, TunnelCprStart, TCFServiceProvider::TStart, PRActivities::CStartActivity::NewL) |
52 DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityStart, TunnelCprStart, TCFServiceProvider::TStart, PRActivities::CStartActivity::NewL) |
58 FIRST_NODEACTIVITY_ENTRY(CoreNetStates::TAwaitingStart, CoreNetStates::TNoTagBlockedByStop) |
53 FIRST_NODEACTIVITY_ENTRY(CoreNetStates::TAwaitingStart, CoreNetStates::TNoTagBlockedByStop) |
59 NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TStartSelf, CoreNetStates::TAwaitingDataClientStarted, MeshMachine::TNoTagOrErrorTag) |
54 NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TStartSelf, CoreNetStates::TAwaitingDataClientStarted, MeshMachine::TNoTagOrErrorTag) |
63 |
58 |
64 NODEACTIVITY_ENTRY(KErrorTag, CoreNetStates::TStopSelf, CoreNetStates::TAwaitingDataClientStopped, MeshMachine::TErrorTag) |
59 NODEACTIVITY_ENTRY(KErrorTag, CoreNetStates::TStopSelf, CoreNetStates::TAwaitingDataClientStopped, MeshMachine::TErrorTag) |
65 LAST_NODEACTIVITY_ENTRY(KErrorTag, MeshMachine::TDoNothing) |
60 LAST_NODEACTIVITY_ENTRY(KErrorTag, MeshMachine::TDoNothing) |
66 NODEACTIVITY_END() |
61 NODEACTIVITY_END() |
67 } |
62 } |
68 |
|
69 namespace TunnelGoneDownActivity |
63 namespace TunnelGoneDownActivity |
70 { |
64 { |
71 DECLARE_DEFINE_NODEACTIVITY(ECFActivityGoneDown, TunnelGoneDown, TCFControlClient::TGoneDown) |
65 DECLARE_DEFINE_NODEACTIVITY(ECFActivityGoneDown, TunnelGoneDown, TCFControlClient::TGoneDown) |
72 // Our Service Provider has gone down unexpectedly (we haven't issued a TStop) |
66 // Our Service Provider has gone down unexpectedly (we haven't issued a TStop) |
73 FIRST_NODEACTIVITY_ENTRY(CoreNetStates::TAwaitingGoneDown, MeshMachine::TNoTag) |
67 FIRST_NODEACTIVITY_ENTRY(CoreNetStates::TAwaitingGoneDown, MeshMachine::TNoTag) |
102 */ |
96 */ |
103 EXPORT_C CTunnelAgentConnectionProvider* CTunnelAgentConnectionProvider::NewL(ESock::CConnectionProviderFactoryBase& aFactory) |
97 EXPORT_C CTunnelAgentConnectionProvider* CTunnelAgentConnectionProvider::NewL(ESock::CConnectionProviderFactoryBase& aFactory) |
104 { |
98 { |
105 CTunnelAgentConnectionProvider* self = new (ELeave) CTunnelAgentConnectionProvider(aFactory); |
99 CTunnelAgentConnectionProvider* self = new (ELeave) CTunnelAgentConnectionProvider(aFactory); |
106 CleanupStack::PushL(self); |
100 CleanupStack::PushL(self); |
107 self->ConstructL(KTunnelCPRPreallocatedActivityBufferSize); |
101 self->ConstructL(); |
108 CleanupStack::Pop(self); |
102 CleanupStack::Pop(self); |
109 return self; |
103 return self; |
110 } |
104 } |
111 |
105 |
112 |
106 |