datacommsserver/esockserver/ssock/ss_mmcommsprov.cpp
branchRCL_3
changeset 66 cbb19216b74d
parent 29 9644881fedd0
equal deleted inserted replaced
48:07656293a99c 66:cbb19216b74d
    30 _LIT(KSpecAssert_ESockSSocksmcmsp, "ESockSSocksmcmsp");
    30 _LIT(KSpecAssert_ESockSSocksmcmsp, "ESockSSocksmcmsp");
    31 #endif
    31 #endif
    32 
    32 
    33 using namespace ESock;
    33 using namespace ESock;
    34 using namespace Messages;
    34 using namespace Messages;
    35 
       
    36 //We reserve space for two preallocated activities that may start concurrently on the connection
       
    37 //node: destroy (connection close) and connection stop.
       
    38 static const TUint KMaxPreallocatedActivitySize = sizeof(MeshMachine::CNodeRetryParallelActivity) + sizeof(MeshMachine::APreallocatedOriginators<4>);
       
    39 
    35 
    40 CMMCommsProviderBase::CMMCommsProviderBase(CCommsFactoryBase& aFactory,
    36 CMMCommsProviderBase::CMMCommsProviderBase(CCommsFactoryBase& aFactory,
    41                                     const MeshMachine::TNodeActivityMap& aActivityMap)
    37                                     const MeshMachine::TNodeActivityMap& aActivityMap)
    42 :	ACommsFactoryNodeId(aFactory),
    38 :	ACommsFactoryNodeId(aFactory),
    43 	ACFMMNodeBase(aActivityMap, ANodeId::Id()),
    39 	ACFMMNodeBase(aActivityMap, ANodeId::Id()),
   121 	{
   117 	{
   122 	RNodeInterface* nodeInterface = ANodeBase::AddClientL(aClientId, aClientType, aClientInfo);
   118 	RNodeInterface* nodeInterface = ANodeBase::AddClientL(aClientId, aClientType, aClientInfo);
   123 
   119 
   124 	if(aClientType.Type() == TCFClientType::ECtrl)
   120 	if(aClientType.Type() == TCFClientType::ECtrl)
   125 		{
   121 		{
   126 		TRAPD(err, nodeInterface->PreAllocL(KMaxPreallocatedActivitySize));
   122 		TRAPD(err, nodeInterface->PreAllocL(MeshMachine::KDefaultMaxPreallocatedActivitySize));
   127 		if(err!=KErrNone)
   123 		if(err!=KErrNone)
   128 			{
   124 			{
   129 			RemoveClient(nodeInterface->RecipientId());
   125 			RemoveClient(nodeInterface->RecipientId());
   130 			User::Leave(err);
   126 			User::Leave(err);
   131 			}
   127 			}