------------------------SDT2 %/CUSFManager--------------------------------------------------------------------------------------------------------------------------------------------------------ObjectName----------------------------------------ObjectType----------------------------------------!%&()LinkEndpoints--------------------------------!%()HeadingText----------------------------------- ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCUSFManager---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ÿÿÿÿ15-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ÿÿÿÿ()[8(!" Virtual Process Type CUSFManager)]}--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------8ÿÿÿÿ()[w(!GSDL)]}-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ÿÿÿÿ()[(! lü! ú–!(<)[h(! lü)[k(! 6)[n(! 6d! )]][ q(! 6ÿ)][$t(! 6,! Èd)[(! 6E©!%()HeadingText-----------------------------------!%()PageOrder-------------------------------------%3------------------------------------------------3-------------------------------------------------  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!%&()LinkEndpoints--------------------------------1()PageOrder------------------------------------------------------------------------------------------------------------------------------------------- ---------------- --------ÿÿÿÿ! Allocate_ Index)]][$w(! 6,&! Èd)[(! 6E?! Add_ Index)]][$z(! 6,¼! Èd)[(! 6EÕ! GetIndex_ fromInstance)]][$}(! 6,R! Èd )[(! 6Ek! GetInstance_ fromIndex)]][$€(! 6,è! Èd)[(! 6E! GetIndex_ fromSigConId)]][$ƒ(! 6,~! Èd)[(! 6E—! SetSig_ ConAss oc)]][$†(! 6,! Èd)[(! 6E-! IsInstance)]]]]}]}}]]}--------------------------------------------------------------------------------------------------------------------------------------------------------bÿÿÿÿ(!4Ç!5!7)[!(! 1!!3)[!(! 2! !3)[!(! 3!!3)[!(! 4!!3)[!(! 5!!3)]]]]]}ÿÿÿÿ2(! lü! ú–!(3)[(! lü)[(! 64)[(! 6d! 5]][ (! 6ÿ)][9@(! 6 ' ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(!ŠÈŠú!"ŠúŠÈ)[(! 6Šú!Z)][3•(! 6&ú! Èd)[8(! Idle)]]]][9C(! 6&! )[8(!0 /* Signals from Signalling Control to CUSF */ )]][3ž(! 6&&! Èd)[8(! Idle)][¤(!"ŠŠŠ££¼!"¼ŠŠ)[¡(! 6,¼! Èd!)[8(! AssSetupInd (asirArg))][ I(!",îîÂ2Â!"2Â,î)[F(! 62!)[8(! First SigCon Message)]]][ª(! R!"R )[ §(! 6,R! Èd)[8(! CUSF)][°(!¶è!"è¶)[6­(! 6,è! Èd)[8(!+ newIndex:=call Allocate_ Index(cusfTable))][¶(!L~!"~L)[%³(! 6,~! Èd)[8(!= AddIndex (cusfTable,existingInstance, newIndex,Offspring) )][¼(!â!"â)[%¹(! 6,! Èd)[8(! SetSigCon_ Assoc)][1(!ôF&F!"&FôF)[7|(! 6&!)[8(!& (cusfTable, asirArg!assRef,newIndex))]]][Â(!xª!"ªx)[¿(! 6,ª! Èd!)[8(!$ AssSetupInd (asirArg) to Offspring)][Ë(!@!"@)[(! 6@!Z)][3È(! 6,@! Èd)[8(! Idle)]]]]]]]]]]]]]]][O(!"ŠŠŠ£„£„¼!"„¼ŠŠ)[L(! 6 ¼! Èd!)[8(! AssReleaseInd (arArg))][^(!„ „R!"„R„ )[6U(! 6 R! Èd)[8(! index:= call)][1[(!è„„!"„è„)[7X(! 6R!)[8(!) GetInstanceFromSigConId (SAArg!callRef))]]][a(!„¶„è!"„è„¶)[R(! 6 è! Èd!)[8(! AssReleaseInd (arArg))][1‹(!è!"è)[7ˆ(! 6è!)[8(!% to call GetInstanceFromIndex(index))]]][d$()[(! lü! ú–!(d)[‰(! lü)[Œ(! 6)[(! 6d! )]][ ’(! 6ÿ)][2˜(! 6&d! Èd)[8(! )][› ()[(! lü! ú–!(d)[(! lü)[(! 6)[(! 6d! )]][ (! 6ÿ)][9@(! 6 d! )[8(!0 /* Signals from CUSF to Signalling Control */ )]][3 (! 6,ú! Èd)[8(! Idle)][((!^!"^)[(! 6,! Èd!)[8(! AssSetupReq (asirArg))][+(!ô&!"&ô)[6(! 6,&! Èd)[8(! index:= call)][1.(!ôX&X!"&XôX)[7(! 6&&!)[8(!) GetIndexfromInstance (cusfTable,Sender))]]][1(!м!"¼Š)[%(! 6,¼! Èd)[8(! SetSigCon_ Assoc)][14(!ôî&î!"&îôî)[7(! 6&¼!)[8(!0 (cusfTable, sigConTable, asirArg!assRef,index))]]][7(! R!"R )[(! 6,R! Èd!)[8(! AssSetupReq (asirArg))][1:(!ô„&„!"&„ô„)[7"(! 6&R!)[8(! via SigCon)]]][=(!¶è!"è¶)[(! 6è!Z)][3%(! 6,è! Èd)[8(! Idle)]]]]]]]]]]]]]]}}---------------------------------------------------------------------------´ÿÿÿÿ()[(! lü! ú–!(x)[j(! lü)[m(! 6)[p(! 6d! )]][ s(! 6)][9¸(! 6&ú! )[8(! /*** VAR!IABLE DECLARATIOS ***/)]][9…(! 6,&! )[8(!( DCL /*INAP CS2 operation arguments*/ )]][9»(! 6&! Èd)[8(!ã DCL /* Routing tables*/ cusfTable TableType, existingInstance Exis"tingInstanceType, sigConTable SigControlTableType, /*Other variables*/ cusf PId, index, newindex TransactionID, asirArg AssSetupIRType, arArg AssReleaseType; )]][9¾(! 6&R! )[8(!’ DCL /*Signalling control primit#ive parameters*/ asirArg AssSetupIRType, arArg AssReleaseType, audArg AssUserDataType, acArg AssComponentType; )]]]]})]]]]}ngInstanceType ARRAY(PId,Boolean) ENDNEWTYPE; /* Maximum number of records supported */ SYNONYM MaxNumOfRecords NATURAL=20; SYNTvÿÿÿÿ(!"„L„''@!"@„L)[(! 6'!´)][)È()]]]]]]]]]]]}--------------------------------------------------------------------------------------------------------------’ÿÿÿÿYPE TransactionId =IndexType ENDSYNTYPE; )]][9…(! 6&ª! )[8(!º DCL cusf PId, index, newindex TransactionID, asirArg AssSetupIRType, arArg AssReleaseType, cusfTable TableType, existingInstance ExistingInstanceType&, sigConTable SigControlTableType; )]]]]}-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------)ÿÿÿÿ()[(! lü! 22!(P)[‘(! 6ÈÂ! ª)[”(! 6áÛ)[—(! 6á&! )]][ š(! 6iÛ)][AÁ(!Â,!)[((! 6R^! SCF)][`(! )][.Â(! )[8(! 6Ï,! CUSF_To_SCF)]][(! 6,!¦ÿÿÿ)][.Ã(! )[8(! 6Ïw! CUSF_From_SCF)]][)(! 6Â!Z)]][AÇ(!ÈF2F!)[(! 6dû! SigCon)][`(! )][.È(! )[8(! 6_! Sig_ Con_ _Out)]][(! 62F!´*)][.É(! )[8(! 6}_! Sig_ Con_ _In)]][(! 6ÈF!)]][AÄ(!ÏlÏ!)[(! 6R·! CUSF)][`(! )][.Å(! +)[8(! 6è! CUSF_In)]][(! 6Ï!Z)][.Æ(! )[8(! 6è…! CUSF_Out)]][(! 6Ïl!¦ÿÿÿ)]][9²(! 6 ¼! )[8,(! ****DATA TYPE DEFINITIONS****)]][9µ(! 6,R! )[8(!Ö /* The Manager process maintains a mapping between an Index (which can be correlated with a AssRef, transactionId) and the corresponding StateModel (CUSF-) process. This information is needed to pass the IN operation from the SCF to the correct process instance.*/ NEWTYPE SigConTableType ARRAY(AssRef, TransactionID) ENDNEWTYPE; NEWTYPE TableType ARRAY(IndexType, RecordType) ENDNEWTYPE; NEWTYPE Reco.rdType STRUCT used Boolean; instance Pid; ENDNEWTYPE; /* Array containing information if an Instance is in use or not */ NEWTYPE ExistingInstanceType ARRAY(PId,Boolean) ENDNEWTYPE; /* Maximum number of records supported */ SYNONYM MaxNumOfRecords N/ATURAL=20; SYNTYPE TransactionId =IndexType ENDSYNTYPE; )]]]]}------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------@ÿÿÿÿ