commsfw_info/commsinfrastructuredocs/ec120changes.txt
branchRCL_3
changeset 84 486e9e9c45a7
parent 0 dfb7c4ff071f
equal deleted inserted replaced
76:576874e13a2c 84:486e9e9c45a7
       
     1 Rough notes on converting source to EC120
       
     2 -----------------------------------------
       
     3 
       
     4 - Classes have moved namespace and DLL:
       
     5 
       
     6 	- ESock::TClientIterBase		=> Messages::TClientIterBase
       
     7 	- ESock::TClientIter<>			=> Messages::TClientIter<>
       
     8 	- ESock::TCFNodeChannelId		=> Messages::TNodeCtxId
       
     9 	- ESock::TDefaultClientMatchPolicy	=> Messages::TDefaultClientMatchPolicy
       
    10 	- ESock::TCFSignatureBase		=> Messages::TRuntimeCtxId + ESock::TCFSignatureBase (where required)
       
    11 	- ESock::RNodeInterface			=> Messages::RNodeInterface
       
    12 	- ESock::TCFESockSignalBase		=> Messages::TSignalBase
       
    13 	- ESock::TCFNodeSignalBase		=> Messages::TNodeSignal
       
    14 
       
    15 	- ESock::TCFMessageSigVoid<ID, REALM>	=> Messages::TMessageSigVoid<ID, REALM>
       
    16 
       
    17 	- ESock::AFactoryObject			=> Factories::AFactoryObject
       
    18 	- ESock::CCommsFactoryBase		=> Factories::CFactoryBase
       
    19 	- ESock::MCommsFactoryQuery		=> Factories::MFactoryQuery
       
    20 	- ESock::TFactoryObjectInfo		=> Factories::TFactoryObjectInfo
       
    21 
       
    22 	- ESock::TCFNodeContextBase		=> MeshMachine::TNodeContextBase
       
    23 	- ESock::TCFNodeContext<>		=> MeshMachine::TNodeContext<>
       
    24 	- ESock::TStateTransition<TCONTEXT>	=> MeshMachine::TStateTransition<TCONTEXT>
       
    25 	- ESock::TState<TCONTEXT>		=> MeshMachine::TState<TCONTEXT>
       
    26 	- ESock::ECFActivityNull		=> MeshMachine::KActivityNull
       
    27 
       
    28 	- CoreStates::TAcceptErrorState<>	=> MeshMachine::TAcceptErrorState<>
       
    29 	- CoreStates::TNoTag			=> MeshMachine::TNoTag
       
    30 	- CoreStates::TTag<T>			=> MeshMachine::TTag<T>
       
    31 	- CoreStates::TDoNothing		=> MeshMachine::TDoNothing
       
    32 	- CoreStates::TErrorTagOr<T>		=> MeshMachine::TErrorTagOr<T>
       
    33 	- CoreStates::TRaiseAndClearActivityError => MeshMachine::TRaiseAndClearActivityError
       
    34 	- CoreStates::TClearError		=> MeshMachine::TClearError
       
    35 	- CoreStates::TRaiseError<T>		=> MeshMachine::TRaiseError<T>
       
    36 	- CoreStates::TErrorTag			=> MeshMachine::TErrorTag
       
    37 	- CoreStates::THandleErrorState<STATE>	=> MeshMachine::THandleErrorState<STATE, CONTEXT> ?
       
    38 	- CoreStates::TAlwaysAccept		=> MeshMachine::TAwaitingAny
       
    39 	- CoreStates::TAwaitingMessageState<S>	=> MeshMachine::TAwaitingMessageState<S>
       
    40 	- CoreStates::TNoTagOrErrorTag		=> MeshMachine::TNoTagOrErrorTag
       
    41 	- CoreStates::TRemoveClient		=> MeshMachine::TRemoveClient
       
    42 	- CoreStates::TStoreError		=> MeshMachine::TStoreError
       
    43 	- CoreStates::TAwaitingDestroy		=> MeshMachine::TAwaitingDestroy
       
    44 	- NetStateMachine::KNoTag		=> MeshMachine::KNoTag
       
    45 
       
    46 	- XCFNodePeerId				=> XNodePeerId
       
    47 
       
    48 - Some message classes have become generic and have moved out of ESock:
       
    49 
       
    50 	- TCFMessage::TError			=> TNodeMessage::TError
       
    51 	- TCFMessage::TErrorRecoveryRequest	=> TNodeMessage::TErrorRecoveryRequest
       
    52 
       
    53 - Iterators use TClientType::TCFClientType:
       
    54 
       
    55 	- RNodeInterface::EStarting		=> TCFClientType::EStarting
       
    56 	- RNodeInterface::EData			=> TCFClientType::EData
       
    57 	- RNodeInterface::ESecondary		=> TCFClientType::ESecondary
       
    58 	- RNodeInterface::EServProvider		=> TCFClientType::EServProvider
       
    59 	- RNodeInterface::EActivating		=> TCFClientType::EActivating
       
    60 
       
    61 	- CFNODE_SET_CLIENT_TYPENFLAGS(RNodeInterface::EData, RNodeInterface::ESecondary)
       
    62 	 	=>
       
    63 	  TClientType(TCFClientType::EData, TCFClientType::ESecondary)
       
    64 
       
    65 	- CFNODE_SET_CLIENT_TYPENFLAGS(RNodeInterface::EVAL1, RNodeInterface::EVAL2)
       
    66 		=>
       
    67 	  TClientType(TCFClientType::EVAL1, TCFClientType::EVAL2)
       
    68 
       
    69 - Messages no longer need to be constructed with sender and activity:
       
    70 	- TCFMessage::MSG(const ESock::TCommsId& aSenderId, TUint aActivityId, ...) => TCFMessage::MSG(...)
       
    71 	- ESock::TCFSignatureBase(aMessageId, aSenderId, aActivityId)		    => Messages::TSignatureBase(aMessageId)
       
    72 
       
    73 - PostToClients<T>() arguments have changed:
       
    74 	- PostToClients<T>(MSG&, RNodeInterface::EA)  =>  PostToClients<T>(const TNodeCtxId &, MSG&, TClientType(TCFClientType::EA));
       
    75 
       
    76 - PostToSender() applies to context rather than message:
       
    77 	- MSG1.PostToSender(MSG2) => iContext.PostToSender(MSG2)
       
    78 
       
    79 - PostTo() can be simplified to use PostToSender() in some cases:
       
    80 	- MSG(iContext.Node()(),iContext.iCFMessageSig.ActivityId(),...).PostTo(iContext.iCFMessageSig.iSender);
       
    81 			=>
       
    82 	  iContext.PostToSender(MSG(...));
       
    83 
       
    84 - MSG::PostTo() replaced with OpenPostMessageClose():
       
    85 
       
    86 	- MSG.PostTo(iNode());	// self
       
    87 			=>
       
    88 	  TNodeCtxId us(ActivityId(),iNode.Id());
       
    89 	  RClientInterface::OpenPostMessageClose(us, us, MSG());
       
    90 
       
    91 	- MSG.PostTo(iContext.Node()());
       
    92 			=>
       
    93 	  RClientInterface::OpenPostMessageClose(TNodeCtxId(iContext.ActivityId(), iContext.NodeId()),
       
    94 		  iContext.NodeId(), MSG());
       
    95 
       
    96 	- MSG.PostTo(iContext.Node()());
       
    97 			=>
       
    98 	  RClientInterface::OpenPostMessageClose(iContext.NodeId(), iContext.NodeId(), MSG());
       
    99 
       
   100 	- MSG(const TCommsId* src, ...).PostTo(const TCommsId& dest);
       
   101 		=>
       
   102 	  RClientInterface::OpenPostMessageClose(const TRuntimeCtxId& src, const TRuntimeCtxId& dest, MSG());
       
   103 
       
   104 	- TCommsId dest = ServiceProviderL();
       
   105 	  TCommsId self = NodeId();
       
   106 	  MSG(self, ACTIVITYID).PostTo(dest);
       
   107 		=>
       
   108 	  TNodeCtxId us(ACTIVITYID, NodeId());
       
   109 	  RClientInterface::OpenPostMessageClose(us, ServiceProviderL(), MSG());
       
   110 
       
   111 	- MSG.PostTo(RNodeInterface&);
       
   112 			=>
       
   113 	  RClientInterface::OpenPostMessageClose(Id(), RNodeInterface&, MSG);
       
   114 
       
   115 	- MSG.PostTo(self) => iNode.SelfInterface().PostMessage(self, MSG); 	// ??
       
   116 
       
   117 - RClientInterface::PostMessage(MSG);
       
   118 		=>
       
   119   activity.PostRequestTo(RClientInterface&, MSG());
       
   120 
       
   121 - where a message used to be passed before, now message and runtime/node context are needed:
       
   122 
       
   123 	- void f(TMyMessage& aPolicyParam)  =>  void f(const Messages::TRuntimeCtxId& aSender, TMyMessage& aPolicyParam);
       
   124 
       
   125 	- INMSG.iSender = iContext.Node()();
       
   126 	  INMSG.SetActivity(iContext.iNodeActivity->ActivityId());
       
   127 	  iContext.Node().PostToClients<TPolicy>(INMSG, RNodeInterface::EData);
       
   128 			=>
       
   129 	  iContext.Node().PostToClients<TPolicy>(TNodeCtxId(iContext.ActivityId(), iContext.NodeId()), INMSG, TClientType(TCFClientType::EData));
       
   130 
       
   131 	- RNodeInterface::PostMessage(MSG) => RNodeInterface::PostMessage(TNodeCtxId(activityId, nodeId), MSG);
       
   132 
       
   133 	- TNodeContext<TNODE>(TNODE&, TSignatureBase& aMessage, const TRunTimeCtxId& aSender, const TNodeId& aRecipient, CNodeActivityBase* aNodeActivity = NULL);
       
   134 
       
   135 - on nodes, operator()() is replaced with Id():
       
   136 	- (*this)() => Id()
       
   137 	- NODE()    => NODE.Id()
       
   138 
       
   139 - iContext.iCFMessageSig.iPeer->PostMessage(MSG);
       
   140 		=>
       
   141   iContext.PostToSender(MSG);
       
   142 
       
   143 - there are changes to the way activities can be retrieved:
       
   144 	- iContext.Node().FindAddressedActivity(iContext.iCFMessageSig)
       
   145 		=>
       
   146 	- TUint sendersActivityId = address_cast<TNodeCtxId>(iContext.iSender).NodeCtx();
       
   147 	  iContext.Node().FindActivityById(sendersActivityId)
       
   148 
       
   149 - TCFMessageSig<xxx> replaced with TMessageSig<xxx>
       
   150 	- ESock::TCFMessageSigNumber<EMSGID, EREALM> TMyMessage  =>  Messages::TMessageSigNumber<EMSGID, EREALM> TMyMessage
       
   151 
       
   152 - Retrieval of sender from a message is replaced with retrieval from context:
       
   153 	- MSG.iSender					=> iContext.iSender
       
   154 	- iContext.iCFMessageSig.iSender.NodePtr()	=> address_cast<TNodeId>(iContext.iSender).Ptr()
       
   155 
       
   156 - TErrContext:iActivityId => TErrContext:iActivitySigId
       
   157 
       
   158 - TCommsId is replaced with Messages::TNodeId:
       
   159 
       
   160 	- TCommsId::NullCommsId()	=> TNodeId::NullId()
       
   161 	- TCommsId::operator()()	=> TNodeId::Id();
       
   162 
       
   163 	- TRuntimeCtxId sometimes used in place of TCommsId (?)
       
   164 
       
   165 - ReceivedL() method signatures have changed.  May need to add User::LeaveIfError(...) to some ReceivedL() routines.
       
   166 
       
   167 - Changes to iContext data member names and methods:
       
   168 	- iContext.iCFMessageSig		=> iContext.iMessage
       
   169 	- iContext.iCFMessageSig.iCommsId	=> iContext.iMessage.iNodeId;
       
   170 	- iContext.iCFMessageSig.iPeer		=> iContext.iPeer
       
   171 	- iContext.iCFMessageSig.iSender	=> iContext.iSender
       
   172 	- iContext.Node()()			=> iContext.NodeId()
       
   173 	- iContext.iNode()			=> iContext.NodeId()
       
   174 
       
   175 - Changes to the way MPlatSecApiExt is retrieved:
       
   176 	- MPlatsecApiExt* platsec = iContext.iCFMessageSig.FetchPlatsecApiInterfaceL()
       
   177 		=>
       
   178 	  MPlatsecApiExt* platsec = reinterpret_cast<MPlatsecApiExt*>(address_cast<TNodeId>(iContext.iSender).Node().FetchNodeInterfaceL(EPlatsecApiExt));
       
   179 
       
   180 - Header files have moved location:
       
   181 	- ss_factnotify.h			=> elements/factorynotify.h
       
   182 	- comms-infras/sm_core.h		=> elements/sm_core.h
       
   183 	- comms-infras/sm_statetriple.h		=> elements/sm_statetriple.h
       
   184 	- comms-infras/ss_nodestates.h		=> elements/mm_states.h
       
   185 	- comms-infras/ss_nodeactivities.h	=> elements/mm_activities.h
       
   186 	- comms-infras/interfacetable.h		=> elements/interfacetable.h
       
   187 	- comms-infras/cftransport.h		=> elements/cftransport.h
       
   188 	- comms-infras/ss_nodeactivities.h &	=> comms-infras/ss_common.h (?)
       
   189 	  comms-infras/ss_nodemessages.h
       
   190 
       
   191