diff -r 576874e13a2c -r 486e9e9c45a7 commsfw_info/commsinfrastructuredocs/ec120changes.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commsfw_info/commsinfrastructuredocs/ec120changes.txt Wed Oct 13 15:54:14 2010 +0300 @@ -0,0 +1,191 @@ +Rough notes on converting source to EC120 +----------------------------------------- + +- Classes have moved namespace and DLL: + + - ESock::TClientIterBase => Messages::TClientIterBase + - ESock::TClientIter<> => Messages::TClientIter<> + - ESock::TCFNodeChannelId => Messages::TNodeCtxId + - ESock::TDefaultClientMatchPolicy => Messages::TDefaultClientMatchPolicy + - ESock::TCFSignatureBase => Messages::TRuntimeCtxId + ESock::TCFSignatureBase (where required) + - ESock::RNodeInterface => Messages::RNodeInterface + - ESock::TCFESockSignalBase => Messages::TSignalBase + - ESock::TCFNodeSignalBase => Messages::TNodeSignal + + - ESock::TCFMessageSigVoid => Messages::TMessageSigVoid + + - ESock::AFactoryObject => Factories::AFactoryObject + - ESock::CCommsFactoryBase => Factories::CFactoryBase + - ESock::MCommsFactoryQuery => Factories::MFactoryQuery + - ESock::TFactoryObjectInfo => Factories::TFactoryObjectInfo + + - ESock::TCFNodeContextBase => MeshMachine::TNodeContextBase + - ESock::TCFNodeContext<> => MeshMachine::TNodeContext<> + - ESock::TStateTransition => MeshMachine::TStateTransition + - ESock::TState => MeshMachine::TState + - ESock::ECFActivityNull => MeshMachine::KActivityNull + + - CoreStates::TAcceptErrorState<> => MeshMachine::TAcceptErrorState<> + - CoreStates::TNoTag => MeshMachine::TNoTag + - CoreStates::TTag => MeshMachine::TTag + - CoreStates::TDoNothing => MeshMachine::TDoNothing + - CoreStates::TErrorTagOr => MeshMachine::TErrorTagOr + - CoreStates::TRaiseAndClearActivityError => MeshMachine::TRaiseAndClearActivityError + - CoreStates::TClearError => MeshMachine::TClearError + - CoreStates::TRaiseError => MeshMachine::TRaiseError + - CoreStates::TErrorTag => MeshMachine::TErrorTag + - CoreStates::THandleErrorState => MeshMachine::THandleErrorState ? + - CoreStates::TAlwaysAccept => MeshMachine::TAwaitingAny + - CoreStates::TAwaitingMessageState => MeshMachine::TAwaitingMessageState + - CoreStates::TNoTagOrErrorTag => MeshMachine::TNoTagOrErrorTag + - CoreStates::TRemoveClient => MeshMachine::TRemoveClient + - CoreStates::TStoreError => MeshMachine::TStoreError + - CoreStates::TAwaitingDestroy => MeshMachine::TAwaitingDestroy + - NetStateMachine::KNoTag => MeshMachine::KNoTag + + - XCFNodePeerId => XNodePeerId + +- Some message classes have become generic and have moved out of ESock: + + - TCFMessage::TError => TNodeMessage::TError + - TCFMessage::TErrorRecoveryRequest => TNodeMessage::TErrorRecoveryRequest + +- Iterators use TClientType::TCFClientType: + + - RNodeInterface::EStarting => TCFClientType::EStarting + - RNodeInterface::EData => TCFClientType::EData + - RNodeInterface::ESecondary => TCFClientType::ESecondary + - RNodeInterface::EServProvider => TCFClientType::EServProvider + - RNodeInterface::EActivating => TCFClientType::EActivating + + - CFNODE_SET_CLIENT_TYPENFLAGS(RNodeInterface::EData, RNodeInterface::ESecondary) + => + TClientType(TCFClientType::EData, TCFClientType::ESecondary) + + - CFNODE_SET_CLIENT_TYPENFLAGS(RNodeInterface::EVAL1, RNodeInterface::EVAL2) + => + TClientType(TCFClientType::EVAL1, TCFClientType::EVAL2) + +- Messages no longer need to be constructed with sender and activity: + - TCFMessage::MSG(const ESock::TCommsId& aSenderId, TUint aActivityId, ...) => TCFMessage::MSG(...) + - ESock::TCFSignatureBase(aMessageId, aSenderId, aActivityId) => Messages::TSignatureBase(aMessageId) + +- PostToClients() arguments have changed: + - PostToClients(MSG&, RNodeInterface::EA) => PostToClients(const TNodeCtxId &, MSG&, TClientType(TCFClientType::EA)); + +- PostToSender() applies to context rather than message: + - MSG1.PostToSender(MSG2) => iContext.PostToSender(MSG2) + +- PostTo() can be simplified to use PostToSender() in some cases: + - MSG(iContext.Node()(),iContext.iCFMessageSig.ActivityId(),...).PostTo(iContext.iCFMessageSig.iSender); + => + iContext.PostToSender(MSG(...)); + +- MSG::PostTo() replaced with OpenPostMessageClose(): + + - MSG.PostTo(iNode()); // self + => + TNodeCtxId us(ActivityId(),iNode.Id()); + RClientInterface::OpenPostMessageClose(us, us, MSG()); + + - MSG.PostTo(iContext.Node()()); + => + RClientInterface::OpenPostMessageClose(TNodeCtxId(iContext.ActivityId(), iContext.NodeId()), + iContext.NodeId(), MSG()); + + - MSG.PostTo(iContext.Node()()); + => + RClientInterface::OpenPostMessageClose(iContext.NodeId(), iContext.NodeId(), MSG()); + + - MSG(const TCommsId* src, ...).PostTo(const TCommsId& dest); + => + RClientInterface::OpenPostMessageClose(const TRuntimeCtxId& src, const TRuntimeCtxId& dest, MSG()); + + - TCommsId dest = ServiceProviderL(); + TCommsId self = NodeId(); + MSG(self, ACTIVITYID).PostTo(dest); + => + TNodeCtxId us(ACTIVITYID, NodeId()); + RClientInterface::OpenPostMessageClose(us, ServiceProviderL(), MSG()); + + - MSG.PostTo(RNodeInterface&); + => + RClientInterface::OpenPostMessageClose(Id(), RNodeInterface&, MSG); + + - MSG.PostTo(self) => iNode.SelfInterface().PostMessage(self, MSG); // ?? + +- RClientInterface::PostMessage(MSG); + => + activity.PostRequestTo(RClientInterface&, MSG()); + +- where a message used to be passed before, now message and runtime/node context are needed: + + - void f(TMyMessage& aPolicyParam) => void f(const Messages::TRuntimeCtxId& aSender, TMyMessage& aPolicyParam); + + - INMSG.iSender = iContext.Node()(); + INMSG.SetActivity(iContext.iNodeActivity->ActivityId()); + iContext.Node().PostToClients(INMSG, RNodeInterface::EData); + => + iContext.Node().PostToClients(TNodeCtxId(iContext.ActivityId(), iContext.NodeId()), INMSG, TClientType(TCFClientType::EData)); + + - RNodeInterface::PostMessage(MSG) => RNodeInterface::PostMessage(TNodeCtxId(activityId, nodeId), MSG); + + - TNodeContext(TNODE&, TSignatureBase& aMessage, const TRunTimeCtxId& aSender, const TNodeId& aRecipient, CNodeActivityBase* aNodeActivity = NULL); + +- on nodes, operator()() is replaced with Id(): + - (*this)() => Id() + - NODE() => NODE.Id() + +- iContext.iCFMessageSig.iPeer->PostMessage(MSG); + => + iContext.PostToSender(MSG); + +- there are changes to the way activities can be retrieved: + - iContext.Node().FindAddressedActivity(iContext.iCFMessageSig) + => + - TUint sendersActivityId = address_cast(iContext.iSender).NodeCtx(); + iContext.Node().FindActivityById(sendersActivityId) + +- TCFMessageSig replaced with TMessageSig + - ESock::TCFMessageSigNumber TMyMessage => Messages::TMessageSigNumber TMyMessage + +- Retrieval of sender from a message is replaced with retrieval from context: + - MSG.iSender => iContext.iSender + - iContext.iCFMessageSig.iSender.NodePtr() => address_cast(iContext.iSender).Ptr() + +- TErrContext:iActivityId => TErrContext:iActivitySigId + +- TCommsId is replaced with Messages::TNodeId: + + - TCommsId::NullCommsId() => TNodeId::NullId() + - TCommsId::operator()() => TNodeId::Id(); + + - TRuntimeCtxId sometimes used in place of TCommsId (?) + +- ReceivedL() method signatures have changed. May need to add User::LeaveIfError(...) to some ReceivedL() routines. + +- Changes to iContext data member names and methods: + - iContext.iCFMessageSig => iContext.iMessage + - iContext.iCFMessageSig.iCommsId => iContext.iMessage.iNodeId; + - iContext.iCFMessageSig.iPeer => iContext.iPeer + - iContext.iCFMessageSig.iSender => iContext.iSender + - iContext.Node()() => iContext.NodeId() + - iContext.iNode() => iContext.NodeId() + +- Changes to the way MPlatSecApiExt is retrieved: + - MPlatsecApiExt* platsec = iContext.iCFMessageSig.FetchPlatsecApiInterfaceL() + => + MPlatsecApiExt* platsec = reinterpret_cast(address_cast(iContext.iSender).Node().FetchNodeInterfaceL(EPlatsecApiExt)); + +- Header files have moved location: + - ss_factnotify.h => elements/factorynotify.h + - comms-infras/sm_core.h => elements/sm_core.h + - comms-infras/sm_statetriple.h => elements/sm_statetriple.h + - comms-infras/ss_nodestates.h => elements/mm_states.h + - comms-infras/ss_nodeactivities.h => elements/mm_activities.h + - comms-infras/interfacetable.h => elements/interfacetable.h + - comms-infras/cftransport.h => elements/cftransport.h + - comms-infras/ss_nodeactivities.h & => comms-infras/ss_common.h (?) + comms-infras/ss_nodemessages.h + +