--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfw_info/commsinfrastructuredocs/ec120changes.txt Thu Dec 17 09:22:25 2009 +0200
@@ -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<ID, REALM> => Messages::TMessageSigVoid<ID, REALM>
+
+ - 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<TCONTEXT> => MeshMachine::TStateTransition<TCONTEXT>
+ - ESock::TState<TCONTEXT> => MeshMachine::TState<TCONTEXT>
+ - ESock::ECFActivityNull => MeshMachine::KActivityNull
+
+ - CoreStates::TAcceptErrorState<> => MeshMachine::TAcceptErrorState<>
+ - CoreStates::TNoTag => MeshMachine::TNoTag
+ - CoreStates::TTag<T> => MeshMachine::TTag<T>
+ - CoreStates::TDoNothing => MeshMachine::TDoNothing
+ - CoreStates::TErrorTagOr<T> => MeshMachine::TErrorTagOr<T>
+ - CoreStates::TRaiseAndClearActivityError => MeshMachine::TRaiseAndClearActivityError
+ - CoreStates::TClearError => MeshMachine::TClearError
+ - CoreStates::TRaiseError<T> => MeshMachine::TRaiseError<T>
+ - CoreStates::TErrorTag => MeshMachine::TErrorTag
+ - CoreStates::THandleErrorState<STATE> => MeshMachine::THandleErrorState<STATE, CONTEXT> ?
+ - CoreStates::TAlwaysAccept => MeshMachine::TAwaitingAny
+ - CoreStates::TAwaitingMessageState<S> => MeshMachine::TAwaitingMessageState<S>
+ - 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<T>() arguments have changed:
+ - PostToClients<T>(MSG&, RNodeInterface::EA) => PostToClients<T>(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<TPolicy>(INMSG, RNodeInterface::EData);
+ =>
+ iContext.Node().PostToClients<TPolicy>(TNodeCtxId(iContext.ActivityId(), iContext.NodeId()), INMSG, TClientType(TCFClientType::EData));
+
+ - RNodeInterface::PostMessage(MSG) => RNodeInterface::PostMessage(TNodeCtxId(activityId, nodeId), MSG);
+
+ - TNodeContext<TNODE>(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<TNodeCtxId>(iContext.iSender).NodeCtx();
+ iContext.Node().FindActivityById(sendersActivityId)
+
+- TCFMessageSig<xxx> replaced with TMessageSig<xxx>
+ - ESock::TCFMessageSigNumber<EMSGID, EREALM> TMyMessage => Messages::TMessageSigNumber<EMSGID, EREALM> TMyMessage
+
+- Retrieval of sender from a message is replaced with retrieval from context:
+ - MSG.iSender => iContext.iSender
+ - iContext.iCFMessageSig.iSender.NodePtr() => address_cast<TNodeId>(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<MPlatsecApiExt*>(address_cast<TNodeId>(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
+
+