linklayercontrol/networkinterfacemgr/agentprcore/src/tunnelagentcpr.cpp
changeset 55 5eca823bbf17
parent 37 052078dda061
equal deleted inserted replaced
49:b285782036ce 55:5eca823bbf17
    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