Binary file commsfw_info/commsinfrastructuredocs/doc_pub/Comms-Infras_Subsystem_How_to_implement_a_layer.doc has changed
Binary file commsfw_info/commsinfrastructuredocs/doc_pub/Selection Fundamentals.doc has changed
Binary file commsfwtools/preparedefaultcommsdatabase/Tools/ced/doc_pub/Commdb_Configuration_Editor.doc has changed
Binary file commsfwtools/preparedefaultcommsdatabase/doc_pub/Comms Database Data Schema Description.doc has changed
Binary file commsfwtools/preparedefaultcommsdatabase/doc_pub/CommsDatAPI.doc has changed
Binary file commsfwtools/preparedefaultcommsdatabase/doc_pub/HowTo_Access_Points.doc has changed
Binary file commsfwutils/commsbufs/doc_pub/CommsBufsDesign.doc has changed
--- a/commsfwutils/commsbufs/group/bld.inf Mon Sep 13 15:06:46 2010 +0100
+++ b/commsfwutils/commsbufs/group/bld.inf Thu Sep 23 10:22:55 2010 +0100
@@ -97,6 +97,8 @@
#include "../reference/loopback_driver/bld.inf"
#include "../reference/zerocopy_loopback_driver/bld.inf"
+#include "../mbufgobblerlayer/group/bld.inf"
+
#else
#include "../version1/mbufmgr/group/bld.inf"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/bwins/mbufgobbleru.def Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,3 @@
+EXPORTS
+ ?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z @ 1 NONAME ; struct TImplementationProxy const * ImplementationGroupProxy(int &)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/data/dummy_static_normal.cfg Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,1594 @@
+############################################################
+## AUTO-GENERATED CONFIGURATION FILE
+## CommsDat Database Dump Utility
+## 1.1
+############################################################
+
+############################################################
+## Network
+##
+[Network]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=Intranet
+ FIELD_COUNT=1
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=Intranet2
+ FIELD_COUNT=1
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=Intranet3
+ FIELD_COUNT=1
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=Intranet4
+ FIELD_COUNT=1
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=Intranet5
+ FIELD_COUNT=1
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Name=Intranet6
+ FIELD_COUNT=1
+END_ADD
+
+
+############################################################
+## ModemBearer
+##
+[ModemBearer]
+ADD_TEMPLATE
+ Name=Default Loopback Modem
+ TSYName=SIM
+ CSYName=PKTLOOPBACK
+ LastSocketActivityTimeout=180
+ LastSessionClosedTimeout=4
+ LastSocketClosedTimeout=6
+ DataBits=8
+ StopBits=1
+ Parity=NONE
+ Rate=115200
+ Handshaking=0
+ SpecialRate=0
+ XonChar=0
+ XoffChar=0
+ FaxClassPref=AUTO
+ SpeakerPref=NEVER
+ SpeakerVolPref=QUIET
+ ModemInitString=AT
+ DataInitString=AT
+ FaxInitString=AT
+ DialPauseLength=S8=
+ SpeakerVolContorlLow=L0
+ SpeakerVolControlMedium=L1
+ SpeakerVolControlHigh=L2
+ SpeakerAlwaysOff=M0
+ SpeakerOnUntilCarrier=M1
+ SpeakerAlwaysOn=M2
+ SpeakerOnAfterUntilCarrier=M3
+ DialToneWaitModifier=W
+ CallProgress1=X1
+ CallProgress2=X2
+ CallProgress3=X3
+ CallProgress4=X4
+ EchoOff=E0
+ VerboseText=V1
+ QuietOff=Q0
+ QuietOn=Q1
+ DialCommandStateModifier=;
+ OnLine=O
+ ResetConfiguration=Z
+ ReturnToFactoryDefs=&F
+ DCDOnDuringLink=&C1
+ DTRHangUp=&D2
+ DSRAlwaysOn=&S0
+ RTSCTSHandshake=&K3
+ XonXoffHandshake=&K4
+ EscapeCharacter=+
+ EscapeGuardPeriod=S12
+ NoDialTone=NO DIAL TONE
+ Busy=BUSY
+ NoAnswer=NO ANSWER
+ Carrier=CARRIER
+ Connect=CONNECT
+ CompressionClass5=COMPRESSION:CLASS 5
+ CompressionV42bis=COMPRESSION:V.42 bis
+ CompressionNone=COMPRESSION:NONE
+ ProtocolLAPD=PROTOCOL:LAPD
+ ProtocolALT=PROTOCOL:ALT
+ ProtocolALTCELLULAR=PROTOCOL:ALT-CELLULAR
+ ProtocolNone=PROTOCOL:NONE
+ MessageValidityPeriod=0
+ MessageDeliveryReport=FALSE
+ CommRole=0
+ BCAStack=C32Bca
+ Agent=NULLAGT
+ FIELD_COUNT=65
+END_TEMPLATE
+
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=Loopback_RawIP_1
+ IfName=RAWIP
+ PortName=PKTLOOPBACK::504
+ FIELD_COUNT=3
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=Loopback_SPUD_2
+ IfName=SPUD
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=Loopback_RawIP_3
+ IfName=RAWIP
+ PortName=PKTLOOPBACK::502
+ FIELD_COUNT=3
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=Loopback_SPUD_4
+ IfName=SPUD
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=WinTunnel_SPUD_5
+ IfName=SPUD
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Name=Loopback_SPUD_5
+ IfName=SPUD
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Name=Loopback_SPUD_6
+ IfName=SPUD
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Name=Loopback_SPUD_7
+ IfName=SPUD
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 9
+ Name=Loopback_SPUD_8
+ IfName=SPUD
+ FIELD_COUNT=2
+END_ADD
+
+
+############################################################
+## Location
+##
+[Location]
+ADD_TEMPLATE
+ Name=Default Location
+ IntlPrefixCode=+
+ NatPrefixCode=0
+ NatCode=44
+ Mobile=TRUE
+ UsePulseDial=FALSE
+ WaitForDialTone=FALSE
+ PauseAfterDialout=0
+ FIELD_COUNT=8
+END_TEMPLATE
+
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=Office
+ IntlPrefixCode=00
+ AreaCode=171
+ DialOutCode=9,
+ Mobile=FALSE
+ FIELD_COUNT=5
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=Mobile
+ FIELD_COUNT=1
+END_ADD
+
+
+############################################################
+## OutgoingGPRS
+##
+[OutgoingGPRS]
+ADD_TEMPLATE
+ Name=Default Outgoing GPRS
+ APN=Test
+ PDPType=IPV4
+ ReqPrecedence=2
+ ReqDelay=4
+ ReqReliability=3
+ ReqPeakThroughput=3
+ ReqMeanThroughput=31
+ MinPrecedence=2
+ MinDelay=4
+ MinReliability=3
+ MinPeakThroughput=3
+ MinMeanThroughput=31
+ DataCompression=FALSE
+ HeaderCompression=FALSE
+ GprsUseEdge=FALSE
+ AnonymousAccess=FALSE
+ IfNetworks=ip
+ IfPromptForAuth=FALSE
+ IfAuthName=RasUser
+ AuthRetries=1
+ IpNetMask=255.255.255.0
+ IpGateway=0.0.0.1
+ IpAddrFromServer=FALSE
+ IpDNSAddrFromServer=FALSE
+ IpNameServer1=194.72.6.51
+ IpNameServer2=194.72.6.51
+ EnableLCPExtension=FALSE
+ DisablePlainTextAuth=FALSE
+ UmtsR99QoSAndOn=1
+ FIELD_COUNT=30
+END_TEMPLATE
+
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=RawIP_Bounce_1
+ IpAddr=192.168.1.1
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=SPUD_Echo_2
+ IfParams=lowernif=RAWIP
+ IpAddrFromServer=TRUE
+ IpAddr=192.168.1.2
+ IpDNSAddrFromServer=TRUE
+ FIELD_COUNT=5
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=RawIP_Bounce_3
+ IpAddr=192.168.2.3
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=SPUD_Echo_4
+ IfParams=lowernif=RAWIP
+ IpAddr=192.168.2.4
+ FIELD_COUNT=3
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=SPUD_Multi_1
+ IfParams=lowernif=RAWIP
+ IpAddrFromServer=TRUE
+ IpAddr=192.168.1.10
+ IpDNSAddrFromServer=TRUE
+ FIELD_COUNT=5
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Name=SPUD_Multi_2
+ IfParams=lowernif=RAWIP
+ IpAddrFromServer=TRUE
+ IpAddr=192.168.1.11
+ IpDNSAddrFromServer=TRUE
+ FIELD_COUNT=5
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Name=SPUD_Multi_3
+ IfParams=lowernif=RAWIP
+ IpAddrFromServer=TRUE
+ IpAddr=192.168.1.12
+ IpDNSAddrFromServer=TRUE
+ FIELD_COUNT=5
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Name=SPUD_Multi_4
+ IfParams=lowernif=RAWIP
+ IpAddrFromServer=TRUE
+ IpAddr=192.168.1.13
+ IpDNSAddrFromServer=TRUE
+ FIELD_COUNT=5
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 9
+ Name=GPRS_BAD_QOS
+ IfParams=lowernif=RAWIP
+ IpAddrFromServer=TRUE
+ IpAddr=192.168.1.2
+ IpDNSAddrFromServer=TRUE
+ UmtsR99QoSAndOn=5
+ FIELD_COUNT=6
+END_ADD
+
+
+############################################################
+## DefaultGPRS
+##
+[DefaultGPRS]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=Dummy Default GPRS Settings
+ Usage=1
+ APN=Access point name
+ PDPType=IPV6
+ PDPAddress=www.wid.com
+ Precedence=1
+ Delay=1
+ Reliability=1
+ PeakThroughput=1
+ MeanThroughput=1
+ MinPrecedence=1
+ MinDelay=1
+ MinReliability=1
+ MinPeakThroughput=1
+ MinMeanThroughput=1
+ DataCompression=TRUE
+ HeaderCompression=TRUE
+ GprsUseEdge=FALSE
+ AnonymousAccess=TRUE
+ FIELD_COUNT=19
+END_ADD
+
+
+############################################################
+## APPrioritySelectionPolicyTable
+##
+[APPrioritySelectionPolicyTable]
+ADD_SECTION
+# COMMDB_ID = 254
+ Id=20000
+ Name=APSelPolNetworkDefault
+ AP1=Link.AccessPointTable.10003
+ APCOUNT=1
+ FIELD_COUNT=4
+END_ADD
+
+
+############################################################
+## TierTable
+##
+[TierTable]
+ADD_SECTION
+# COMMDB_ID = 1
+ Id=2048
+ Name=Tier1
+ TierImplUid=271064536
+ TierThreadName=ESock_IP
+ TierManagerName=NetworkTierManager
+ DefaultAccessPoint=Link.AccessPointTable.10000
+ PromptUser=0
+ FIELD_COUNT=7
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Id=271064560
+ Name=Tier2
+ TierImplUid=271064560
+ TierThreadName=ESock_IP
+ TierManagerName=ProtoTierManager
+ DefaultAccessPoint=Link.AccessPointTable.10004
+ PromptUser=0
+ FIELD_COUNT=7
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Id=271064565
+ Name=Tier3
+ TierImplUid=271064565
+ TierThreadName=ESock_IP
+ TierManagerName=LinkTierManager
+ DefaultAccessPoint=Link.AccessPointTable.10000
+ PromptUser=0
+ FIELD_COUNT=7
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Id=536887799
+ Name=Tier4
+ TierImplUid=536887799
+ TierThreadName=ESock_SIP
+ TierManagerName=SIPTierManager
+ DefaultAccessPoint=Link.AccessPointTable.10002
+ PromptUser=0
+ FIELD_COUNT=7
+END_ADD
+
+
+############################################################
+## MCprTable
+##
+[MCprTable]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=netmcpr
+ MCprUid=271009095
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=ipprotomcpr
+ MCprUid=271064558
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=pppmcpr
+ MCprUid=271064556
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=ethmcpr
+ MCprUid=271064572
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=rawipmcpr
+ MCprUid=271064576
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Name=tunnelmcpr
+ MCprUid=271064578
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Name=qospppmcpr
+ MCprUid=271064556
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Name=dummynifmcpr
+ MCprUid=271064580
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 9
+ Name=hungrynifmcpr
+ MCprUid=271064580
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 10
+ Name=pdpmcpr
+ MCprUid=271065840
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 11
+ Name=sipmcpr
+ MCprUid=536887801
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 13
+ Name=panethermcpr
+ MCprUid=271070626
+ FIELD_COUNT=2
+END_ADD
+
+
+############################################################
+## CprTable
+##
+[CprTable]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=ipcpr
+ CprUid=270561519
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=ipprotocpr
+ CprUid=271064531
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=agentcpr
+ CprUid=271064552
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=vanillacpr
+ CprUid=271065843
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=sipcpr
+ CprUid=271010872
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Name=tunnelagentcpr
+ CprUid=271080968
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Name=pdpcpr
+ CprUid=271065826
+ FIELD_COUNT=2
+END_ADD
+
+
+############################################################
+## SCprTable
+##
+[SCprTable]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=qosipscpr
+ SCprUid=270549768
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=ipprotoscpr
+ SCprUid=271064529
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=agentscpr
+ SCprUid=271064554
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=pdpscpr
+ SCprUid=271065824
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=pppscpr
+ SCprUid=271065852
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Name=vanillascpr
+ SCprUid=271065844
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Name=qosscpr
+ SCprUid=271065811
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Name=sipscpr
+ SCprUid=271010839
+ FIELD_COUNT=2
+END_ADD
+
+
+############################################################
+## ProtocolTable
+##
+[ProtocolTable]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=sapshim
+ ProtocolUid=270496898
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=ipshim4
+ ProtocolUid=271064118
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=ppp
+ ProtocolUid=271064143
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=ethernet
+ ProtocolUid=271064539
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=rawip
+ ProtocolUid=271064562
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Name=tunnel
+ ProtocolUid=271064567
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Name=qosppp
+ ProtocolUid=271064148
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Name=dummynif
+ ProtocolUid=271064123
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 9
+ Name=hungrynif
+ ProtocolUid=271064125
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 10
+ Name=panether
+ ProtocolUid=271070627
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 11
+ Name=rawip2
+ ProtocolUid=271084280
+ FIELD_COUNT=2
+END_ADD
+
+
+############################################################
+## BearerTypeTable
+##
+[BearerTypeTable]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=ppp
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.3
+ Cpr=CprTable.3
+ SCpr=SCprTable.5
+ Protocol=ProtocolTable.3
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=ethint
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.4
+ Cpr=CprTable.3
+ SCpr=SCprTable.3
+ Protocol=ProtocolTable.4
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=rawip
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.5
+ Cpr=CprTable.3
+ SCpr=SCprTable.3
+ Protocol=ProtocolTable.5
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=tunnelnif
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.6
+ Cpr=CprTable.7
+ SCpr=SCprTable.3
+ Protocol=ProtocolTable.6
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=qosppp
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.7
+ Cpr=CprTable.3
+ SCpr=SCprTable.5
+ Protocol=ProtocolTable.7
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Name=dummynif
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.8
+ Cpr=CprTable.3
+ SCpr=SCprTable.3
+ Protocol=ProtocolTable.8
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Name=hungrynif
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.9
+ Cpr=CprTable.3
+ SCpr=SCprTable.3
+ Protocol=ProtocolTable.9
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Name=spud-ppp
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.3
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.3
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 9
+ Name=spud-rawip
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.3
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.5
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 10
+ Name=IPProtoDefaultTemplate
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 11
+ Name=NetworkDefaultTemplate
+ Tier=Link.TierTable.2048
+ MCpr=MCprTable.1
+ Cpr=CprTable.1
+ SCpr=SCprTable.7
+ Protocol=ProtocolTable.1
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 12
+ Name=rawip2
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.11
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 13
+ Name=spud-rawip2
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.11
+ FIELD_COUNT=6
+END_ADD
+
+
+############################################################
+## AccessPointTable
+##
+[AccessPointTable]
+ADD_SECTION
+# COMMDB_ID = 1
+ Id=1
+ Name=rawipMappedFromIAP1
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.8
+ Cpr=CprTable.3
+ SCpr=SCprTable.3
+ Protocol=ProtocolTable.8
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Id=10003
+ Name=IPProto_generated_10003
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=1
+ CustomSelectionPolicy=1
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Id=2
+ Name=spud-rawipMappedFromIAP2
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Id=10004
+ Name=IPProto_generated_10004
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=2
+ CustomSelectionPolicy=2
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Id=3
+ Name=rawipMappedFromIAP3
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.5
+ Cpr=CprTable.3
+ SCpr=SCprTable.3
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Id=10005
+ Name=IPProto_generated_10005
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=3
+ CustomSelectionPolicy=3
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Id=4
+ Name=spud-rawipMappedFromIAP4
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Id=10006
+ Name=IPProto_generated_10006
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=4
+ CustomSelectionPolicy=4
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 9
+ Id=5
+ Name=rawipMappedFromIAP5
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.5
+ Cpr=CprTable.3
+ SCpr=SCprTable.3
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 10
+ Id=10007
+ Name=IPProto_generated_10007
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=5
+ CustomSelectionPolicy=5
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 11
+ Id=6
+ Name=spud-rawipMappedFromIAP6
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 12
+ Id=10008
+ Name=IPProto_generated_10008
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=6
+ CustomSelectionPolicy=6
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 13
+ Id=7
+ Name=spud-rawipMappedFromIAP7
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 14
+ Id=10009
+ Name=IPProto_generated_10009
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=7
+ CustomSelectionPolicy=7
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 15
+ Id=8
+ Name=spud-rawipMappedFromIAP8
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 16
+ Id=10010
+ Name=IPProto_generated_10010
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=8
+ CustomSelectionPolicy=8
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 17
+ Id=9
+ Name=spud-rawipMappedFromIAP9
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 18
+ Id=10011
+ Name=IPProto_generated_10011
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=9
+ CustomSelectionPolicy=9
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 19
+ Id=10
+ Name=spud-rawipMappedFromIAP10
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 20
+ Id=10012
+ Name=IPProto_generated_10012
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=10
+ CustomSelectionPolicy=10
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 252
+ Id=10002
+ Name=SIPDefault
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.536887799
+ MCpr=MCprTable.11
+ Cpr=CprTable.5
+ SCpr=SCprTable.8
+ Protocol=ProtocolTable.2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 254
+ Id=10000
+ Name=NetworkDefault
+ AccessPointSelectionPolicy=Link.APPrioritySelectionPolicyTable.20000
+ Tier=Link.TierTable.2048
+ MCpr=MCprTable.1
+ Cpr=CprTable.1
+ SCpr=SCprTable.7
+ Protocol=ProtocolTable.1
+ FIELD_COUNT=8
+END_ADD
+
+
+############################################################
+## GlobalSettings
+##
+[GlobalSettings]
+ADD_TEMPLATE
+ DefaultTier=1
+ FIELD_COUNT=1
+END_TEMPLATE
+
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=DefaultRecordName-1
+ ConnectionAttempts=2
+ RedialAttempts=3
+ SmsReceiveMode=2
+ GPRSAttachMode=1
+ AcceptIncomingGprs=1
+ GPRSClassCBearer=GSM
+ ModemForDataAndFax=2
+ ModemForPhoneServicesAndSMS=2
+ LocationForDataAndFax=2
+ LocationForPhoneServicesAndSMS=2
+ DefaultNetwork=1
+ BearerAvailabilityCheckTSY=mm
+ FIELD_COUNT=13
+END_ADD
+
+
+############################################################
+## IAP
+##
+[IAP]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=Loopback_GRPS_1
+ IAPServiceType=OutgoingGPRS
+ IAPService=1
+ IAPBearerType=ModemBearer
+ IAPBearer=1
+ IAPNetwork=1
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=Loopback_GRPS_2
+ IAPServiceType=OutgoingGPRS
+ IAPService=2
+ IAPBearerType=ModemBearer
+ IAPBearer=2
+ IAPNetwork=1
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=Loopback_GRPS_3
+ IAPServiceType=OutgoingGPRS
+ IAPService=3
+ IAPBearerType=ModemBearer
+ IAPBearer=3
+ IAPNetwork=2
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=Loopback_GRPS_4
+ IAPServiceType=OutgoingGPRS
+ IAPService=4
+ IAPBearerType=ModemBearer
+ IAPBearer=4
+ IAPNetwork=2
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=Loopback_GRPS_5
+ IAPServiceType=OutgoingGPRS
+ IAPService=1
+ IAPBearerType=ModemBearer
+ IAPBearer=3
+ IAPNetwork=2
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Name=Loopback_GRPS_6
+ IAPServiceType=OutgoingGPRS
+ IAPService=1
+ IAPBearerType=ModemBearer
+ IAPBearer=1
+ IAPNetwork=3
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Name=Loopback_GRPS_7
+ IAPServiceType=OutgoingGPRS
+ IAPService=6
+ IAPBearerType=ModemBearer
+ IAPBearer=7
+ IAPNetwork=4
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Name=Loopback_GRPS_8
+ IAPServiceType=OutgoingGPRS
+ IAPService=7
+ IAPBearerType=ModemBearer
+ IAPBearer=8
+ IAPNetwork=5
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 9
+ Name=Loopback_GRPS_9
+ IAPServiceType=OutgoingGPRS
+ IAPService=8
+ IAPBearerType=ModemBearer
+ IAPBearer=9
+ IAPNetwork=6
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 10
+ Name=IAP_GRPS_BAD_QOS
+ IAPServiceType=OutgoingGPRS
+ IAPService=9
+ IAPBearerType=ModemBearer
+ IAPBearer=2
+ IAPNetwork=1
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+
+############################################################
+## ConnectionPreferences
+##
+[ConnectionPreferences]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=DefaultRecordName-1
+ Ranking=1
+ Direction=OUTGOING
+ BearerSet=PSD
+ DialogPref=DONOTPROMPT
+ IAP=2
+ FIELD_COUNT=6
+END_ADD
+
+
+############################################################
+## UmtsR99QoSAndOn
+##
+[UmtsR99QoSAndOn]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=PRIMARY1
+ ReqTrafficClass=1
+ MinTrafficClass=1
+ ReqDeliveryOrder=1
+ MinDeliveryOrder=1
+ ReqDeliverErroneousSDU=1
+ MinDeliverErroneousSDU=1
+ ReqMaxSDUSize=0
+ MinAcceptableMaxSDUSize=0
+ ReqMaxUplinkRate=0
+ ReqMinUplinkRate=0
+ ReqMaxDownlinkRate=0
+ ReqMinDownlinkRate=0
+ ReqBER=1
+ MaxBER=1
+ ReqSDUErrorRatio=1
+ MaxSDUErrorRatio=1
+ ReqTrafficHandlingPriority=1
+ MinTrafficHandlingPriority=1
+ ReqTransferDelay=0
+ MaxTransferDelay=0
+ ReqGuaranteedUplinkRate=0
+ MinGuaranteedUplinkRat=0
+ ReqGuaranteedDownlinkRate=0
+ MinGuaranteedDownlinkRate=0
+ SignallingIndication=FALSE
+ ImCnSignallingIndication=FALSE
+ SourceStatisticsDescriptor=0
+ FIELD_COUNT=28
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=SECONDARY1
+ ReqTrafficClass=4
+ MinTrafficClass=4
+ ReqDeliveryOrder=1
+ MinDeliveryOrder=1
+ ReqDeliverErroneousSDU=8
+ MinDeliverErroneousSDU=8
+ ReqMaxSDUSize=768
+ MinAcceptableMaxSDUSize=512
+ ReqMaxUplinkRate=1024
+ ReqMinUplinkRate=1024
+ ReqMaxDownlinkRate=1024
+ ReqMinDownlinkRate=1024
+ ReqBER=0
+ MaxBER=0
+ ReqSDUErrorRatio=1
+ MaxSDUErrorRatio=1
+ ReqTrafficHandlingPriority=1
+ MinTrafficHandlingPriority=1
+ ReqTransferDelay=250
+ MaxTransferDelay=250
+ ReqGuaranteedUplinkRate=1024
+ MinGuaranteedUplinkRat=1024
+ ReqGuaranteedDownlinkRate=1024
+ MinGuaranteedDownlinkRate=1024
+ SignallingIndication=FALSE
+ ImCnSignallingIndication=FALSE
+ SourceStatisticsDescriptor=0
+ FIELD_COUNT=28
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=PRIMARY2
+ ReqTrafficClass=1
+ MinTrafficClass=1
+ ReqDeliveryOrder=1
+ MinDeliveryOrder=1
+ ReqDeliverErroneousSDU=1
+ MinDeliverErroneousSDU=1
+ ReqMaxSDUSize=0
+ MinAcceptableMaxSDUSize=0
+ ReqMaxUplinkRate=0
+ ReqMinUplinkRate=0
+ ReqMaxDownlinkRate=0
+ ReqMinDownlinkRate=0
+ ReqBER=1
+ MaxBER=1
+ ReqSDUErrorRatio=1
+ MaxSDUErrorRatio=1
+ ReqTrafficHandlingPriority=1
+ MinTrafficHandlingPriority=1
+ ReqTransferDelay=0
+ MaxTransferDelay=0
+ ReqGuaranteedUplinkRate=0
+ MinGuaranteedUplinkRat=0
+ ReqGuaranteedDownlinkRate=0
+ MinGuaranteedDownlinkRate=0
+ SignallingIndication=FALSE
+ ImCnSignallingIndication=FALSE
+ SourceStatisticsDescriptor=0
+ FIELD_COUNT=28
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=SECONDARY2
+ ReqTrafficClass=4
+ MinTrafficClass=4
+ ReqDeliveryOrder=1
+ MinDeliveryOrder=1
+ ReqDeliverErroneousSDU=8
+ MinDeliverErroneousSDU=8
+ ReqMaxSDUSize=768
+ MinAcceptableMaxSDUSize=512
+ ReqMaxUplinkRate=1024
+ ReqMinUplinkRate=1024
+ ReqMaxDownlinkRate=1024
+ ReqMinDownlinkRate=1024
+ ReqBER=0
+ MaxBER=0
+ ReqSDUErrorRatio=1
+ MaxSDUErrorRatio=1
+ ReqTrafficHandlingPriority=1
+ MinTrafficHandlingPriority=1
+ ReqTransferDelay=250
+ MaxTransferDelay=250
+ ReqGuaranteedUplinkRate=1024
+ MinGuaranteedUplinkRat=1024
+ ReqGuaranteedDownlinkRate=1024
+ MinGuaranteedDownlinkRate=1024
+ SignallingIndication=FALSE
+ ImCnSignallingIndication=FALSE
+ SourceStatisticsDescriptor=0
+ FIELD_COUNT=28
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=BAD_QOS
+ MinTrafficClass=1
+ ReqDeliveryOrder=1
+ MinDeliveryOrder=1
+ ReqDeliverErroneousSDU=1
+ MinDeliverErroneousSDU=1
+ ReqMaxSDUSize=0
+ MinAcceptableMaxSDUSize=0
+ ReqMaxUplinkRate=0
+ ReqMinUplinkRate=0
+ ReqMaxDownlinkRate=0
+ ReqMinDownlinkRate=0
+ ReqBER=1
+ MaxBER=1
+ ReqSDUErrorRatio=1
+ MaxSDUErrorRatio=1
+ ReqTrafficHandlingPriority=1
+ MinTrafficHandlingPriority=1
+ ReqTransferDelay=0
+ MaxTransferDelay=0
+ ReqGuaranteedUplinkRate=0
+ MinGuaranteedUplinkRat=0
+ ReqGuaranteedDownlinkRate=0
+ MinGuaranteedDownlinkRate=0
+ SignallingIndication=FALSE
+ ImCnSignallingIndication=FALSE
+ SourceStatisticsDescriptor=0
+ FIELD_COUNT=27
+END_ADD
+
+
+############################################################
+## PolicySelectorTable
+##
+[PolicySelectorTable]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=DefaultRecordName-1
+ PolicyId=1
+ SrcAddress=0.0.0.0
+ SrcMask=255.255.255.255
+ DstAddress=192.168.1.1
+ DstMask=255.255.255.255
+ SrcPort=0
+ DstPort=3461
+ SrcPortMax=1031
+ DstPortMax=3461
+ ProtocolId=17
+ IAPid=2
+ Priority=1
+ FIELD_COUNT=13
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=DefaultRecordName-2
+ PolicyId=2
+ SrcPort=0
+ SrcPortMax=0
+ ProtocolId=1
+ IAPid=2
+ Priority=1
+ FIELD_COUNT=7
+END_ADD
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/data/dummy_static_with_mbufgobbler.cfg Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,1659 @@
+############################################################
+## AUTO-GENERATED CONFIGURATION FILE
+## CommsDat Database Dump Utility
+## 1.1
+############################################################
+
+############################################################
+## Network
+##
+[Network]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=Intranet
+ FIELD_COUNT=1
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=Intranet2
+ FIELD_COUNT=1
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=Intranet3
+ FIELD_COUNT=1
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=Intranet4
+ FIELD_COUNT=1
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=Intranet5
+ FIELD_COUNT=1
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Name=Intranet6
+ FIELD_COUNT=1
+END_ADD
+
+
+############################################################
+## ModemBearer
+##
+[ModemBearer]
+ADD_TEMPLATE
+ Name=Default Loopback Modem
+ TSYName=SIM
+ CSYName=PKTLOOPBACK
+ LastSocketActivityTimeout=180
+ LastSessionClosedTimeout=4
+ LastSocketClosedTimeout=6
+ DataBits=8
+ StopBits=1
+ Parity=NONE
+ Rate=115200
+ Handshaking=0
+ SpecialRate=0
+ XonChar=0
+ XoffChar=0
+ FaxClassPref=AUTO
+ SpeakerPref=NEVER
+ SpeakerVolPref=QUIET
+ ModemInitString=AT
+ DataInitString=AT
+ FaxInitString=AT
+ DialPauseLength=S8=
+ SpeakerVolContorlLow=L0
+ SpeakerVolControlMedium=L1
+ SpeakerVolControlHigh=L2
+ SpeakerAlwaysOff=M0
+ SpeakerOnUntilCarrier=M1
+ SpeakerAlwaysOn=M2
+ SpeakerOnAfterUntilCarrier=M3
+ DialToneWaitModifier=W
+ CallProgress1=X1
+ CallProgress2=X2
+ CallProgress3=X3
+ CallProgress4=X4
+ EchoOff=E0
+ VerboseText=V1
+ QuietOff=Q0
+ QuietOn=Q1
+ DialCommandStateModifier=;
+ OnLine=O
+ ResetConfiguration=Z
+ ReturnToFactoryDefs=&F
+ DCDOnDuringLink=&C1
+ DTRHangUp=&D2
+ DSRAlwaysOn=&S0
+ RTSCTSHandshake=&K3
+ XonXoffHandshake=&K4
+ EscapeCharacter=+
+ EscapeGuardPeriod=S12
+ NoDialTone=NO DIAL TONE
+ Busy=BUSY
+ NoAnswer=NO ANSWER
+ Carrier=CARRIER
+ Connect=CONNECT
+ CompressionClass5=COMPRESSION:CLASS 5
+ CompressionV42bis=COMPRESSION:V.42 bis
+ CompressionNone=COMPRESSION:NONE
+ ProtocolLAPD=PROTOCOL:LAPD
+ ProtocolALT=PROTOCOL:ALT
+ ProtocolALTCELLULAR=PROTOCOL:ALT-CELLULAR
+ ProtocolNone=PROTOCOL:NONE
+ MessageValidityPeriod=0
+ MessageDeliveryReport=FALSE
+ CommRole=0
+ BCAStack=C32Bca
+ Agent=NULLAGT
+ FIELD_COUNT=65
+END_TEMPLATE
+
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=Loopback_RawIP_1
+ IfName=RAWIP
+ PortName=PKTLOOPBACK::504
+ FIELD_COUNT=3
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=Loopback_SPUD_2
+ IfName=SPUD
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=Loopback_RawIP_3
+ IfName=RAWIP
+ PortName=PKTLOOPBACK::502
+ FIELD_COUNT=3
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=Loopback_SPUD_4
+ IfName=SPUD
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=WinTunnel_SPUD_5
+ IfName=SPUD
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Name=Loopback_SPUD_5
+ IfName=SPUD
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Name=Loopback_SPUD_6
+ IfName=SPUD
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Name=Loopback_SPUD_7
+ IfName=SPUD
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 9
+ Name=Loopback_SPUD_8
+ IfName=SPUD
+ FIELD_COUNT=2
+END_ADD
+
+
+############################################################
+## Location
+##
+[Location]
+ADD_TEMPLATE
+ Name=Default Location
+ IntlPrefixCode=+
+ NatPrefixCode=0
+ NatCode=44
+ Mobile=TRUE
+ UsePulseDial=FALSE
+ WaitForDialTone=FALSE
+ PauseAfterDialout=0
+ FIELD_COUNT=8
+END_TEMPLATE
+
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=Office
+ IntlPrefixCode=00
+ AreaCode=171
+ DialOutCode=9,
+ Mobile=FALSE
+ FIELD_COUNT=5
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=Mobile
+ FIELD_COUNT=1
+END_ADD
+
+
+############################################################
+## OutgoingGPRS
+##
+[OutgoingGPRS]
+ADD_TEMPLATE
+ Name=Default Outgoing GPRS
+ APN=Test
+ PDPType=IPV4
+ ReqPrecedence=2
+ ReqDelay=4
+ ReqReliability=3
+ ReqPeakThroughput=3
+ ReqMeanThroughput=31
+ MinPrecedence=2
+ MinDelay=4
+ MinReliability=3
+ MinPeakThroughput=3
+ MinMeanThroughput=31
+ DataCompression=FALSE
+ HeaderCompression=FALSE
+ GprsUseEdge=FALSE
+ AnonymousAccess=FALSE
+ IfNetworks=ip
+ IfPromptForAuth=FALSE
+ IfAuthName=RasUser
+ AuthRetries=1
+ IpNetMask=255.255.255.0
+ IpGateway=0.0.0.1
+ IpAddrFromServer=FALSE
+ IpDNSAddrFromServer=FALSE
+ IpNameServer1=194.72.6.51
+ IpNameServer2=194.72.6.51
+ EnableLCPExtension=FALSE
+ DisablePlainTextAuth=FALSE
+ UmtsR99QoSAndOn=1
+ FIELD_COUNT=30
+END_TEMPLATE
+
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=RawIP_Bounce_1
+ IpAddr=192.168.1.1
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=SPUD_Echo_2
+ IfParams=lowernif=RAWIP
+ IpAddrFromServer=TRUE
+ IpAddr=192.168.1.2
+ IpDNSAddrFromServer=TRUE
+ FIELD_COUNT=5
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=RawIP_Bounce_3
+ IpAddr=192.168.2.3
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=SPUD_Echo_4
+ IfParams=lowernif=RAWIP
+ IpAddr=192.168.2.4
+ FIELD_COUNT=3
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=SPUD_Multi_1
+ IfParams=lowernif=RAWIP
+ IpAddrFromServer=TRUE
+ IpAddr=192.168.1.10
+ IpDNSAddrFromServer=TRUE
+ FIELD_COUNT=5
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Name=SPUD_Multi_2
+ IfParams=lowernif=RAWIP
+ IpAddrFromServer=TRUE
+ IpAddr=192.168.1.11
+ IpDNSAddrFromServer=TRUE
+ FIELD_COUNT=5
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Name=SPUD_Multi_3
+ IfParams=lowernif=RAWIP
+ IpAddrFromServer=TRUE
+ IpAddr=192.168.1.12
+ IpDNSAddrFromServer=TRUE
+ FIELD_COUNT=5
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Name=SPUD_Multi_4
+ IfParams=lowernif=RAWIP
+ IpAddrFromServer=TRUE
+ IpAddr=192.168.1.13
+ IpDNSAddrFromServer=TRUE
+ FIELD_COUNT=5
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 9
+ Name=GPRS_BAD_QOS
+ IfParams=lowernif=RAWIP
+ IpAddrFromServer=TRUE
+ IpAddr=192.168.1.2
+ IpDNSAddrFromServer=TRUE
+ UmtsR99QoSAndOn=5
+ FIELD_COUNT=6
+END_ADD
+
+
+############################################################
+## DefaultGPRS
+##
+[DefaultGPRS]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=Dummy Default GPRS Settings
+ Usage=1
+ APN=Access point name
+ PDPType=IPV6
+ PDPAddress=www.wid.com
+ Precedence=1
+ Delay=1
+ Reliability=1
+ PeakThroughput=1
+ MeanThroughput=1
+ MinPrecedence=1
+ MinDelay=1
+ MinReliability=1
+ MinPeakThroughput=1
+ MinMeanThroughput=1
+ DataCompression=TRUE
+ HeaderCompression=TRUE
+ GprsUseEdge=FALSE
+ AnonymousAccess=TRUE
+ FIELD_COUNT=19
+END_ADD
+
+
+############################################################
+## APPrioritySelectionPolicyTable
+##
+[APPrioritySelectionPolicyTable]
+ADD_SECTION
+# COMMDB_ID = 254
+ Id=20000
+ Name=APSelPolNetworkDefault
+ AP1=Link.AccessPointTable.10003
+ APCOUNT=1
+ FIELD_COUNT=4
+END_ADD
+
+
+############################################################
+## TierTable
+##
+[TierTable]
+ADD_SECTION
+# COMMDB_ID = 1
+ Id=2048
+ Name=Tier1
+ TierImplUid=271064536
+ TierThreadName=ESock_IP
+ TierManagerName=NetworkTierManager
+ DefaultAccessPoint=Link.AccessPointTable.10000
+ PromptUser=0
+ FIELD_COUNT=7
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Id=271064560
+ Name=Tier2
+ TierImplUid=271064560
+ TierThreadName=ESock_IP
+ TierManagerName=ProtoTierManager
+ DefaultAccessPoint=Link.AccessPointTable.10004
+ PromptUser=0
+ FIELD_COUNT=7
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Id=271064565
+ Name=Tier3
+ TierImplUid=271064565
+ TierThreadName=ESock_IP
+ TierManagerName=LinkTierManager
+ DefaultAccessPoint=Link.AccessPointTable.10000
+ PromptUser=0
+ FIELD_COUNT=7
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Id=536887799
+ Name=Tier4
+ TierImplUid=536887799
+ TierThreadName=ESock_SIP
+ TierManagerName=SIPTierManager
+ DefaultAccessPoint=Link.AccessPointTable.10002
+ PromptUser=0
+ FIELD_COUNT=7
+END_ADD
+
+## mbufgobbler layer: this is where we refer to our
+## new Tier by its factory implementation UId
+ADD_SECTION
+# COMMDB_ID = 7
+ Id=0x10272F98
+ Name=mbufgobblertm
+ TierImplUid=0x10272F98
+ TierThreadName=ESock_IP
+ TierManagerName=MbufGobblerTierManager
+###### Set the default access point to F0 = 240 = MbufGobbler layer AP
+ DefaultAccessPoint=0x0E00F000
+ PromptUser=0
+ FIELD_COUNT=7
+END_ADD
+
+
+############################################################
+## MCprTable
+##
+[MCprTable]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=netmcpr
+ MCprUid=271009095
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=ipprotomcpr
+ MCprUid=271064558
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=pppmcpr
+ MCprUid=271064556
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=ethmcpr
+ MCprUid=271064572
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=rawipmcpr
+ MCprUid=271064576
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Name=tunnelmcpr
+ MCprUid=271064578
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Name=qospppmcpr
+ MCprUid=271064556
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Name=dummynifmcpr
+ MCprUid=271064580
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 9
+ Name=hungrynifmcpr
+ MCprUid=271064580
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 10
+ Name=pdpmcpr
+ MCprUid=271065840
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 11
+ Name=sipmcpr
+ MCprUid=536887801
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 13
+ Name=panethermcpr
+ MCprUid=271070626
+ FIELD_COUNT=2
+END_ADD
+
+## mbufgobbler layer: this is where we refer to our
+## new MCPr by its factory implementation UId
+ADD_SECTION
+# COMMDB_ID = 14
+ Name=mbufgobblermcpr
+ MCprUid=0x10272F99
+ FIELD_COUNT=2
+END_ADD
+
+############################################################
+## CprTable
+##
+[CprTable]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=ipcpr
+ CprUid=270561519
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=ipprotocpr
+ CprUid=271064531
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=agentcpr
+ CprUid=271064552
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=vanillacpr
+ CprUid=271065843
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=sipcpr
+ CprUid=271010872
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Name=tunnelagentcpr
+ CprUid=271080968
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Name=pdpcpr
+ CprUid=271065826
+ FIELD_COUNT=2
+END_ADD
+
+## mbufgobbler layer: this is where we refer to our
+## new CPr by its factory implementation UId
+ADD_SECTION
+# COMMDB_ID = 11
+ Name=mbufgobblercpr
+ CprUid=0x10272F9A
+ FIELD_COUNT=2
+END_ADD
+
+############################################################
+## SCprTable
+##
+[SCprTable]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=qosipscpr
+ SCprUid=270549768
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=ipprotoscpr
+ SCprUid=271064529
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=agentscpr
+ SCprUid=271064554
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=pdpscpr
+ SCprUid=271065824
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=pppscpr
+ SCprUid=271065852
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Name=vanillascpr
+ SCprUid=271065844
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Name=qosscpr
+ SCprUid=271065811
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Name=sipscpr
+ SCprUid=271010839
+ FIELD_COUNT=2
+END_ADD
+
+## mbufgobbler layer: this is where we refer to our
+## new SCPr by its factory implementation UId
+ADD_SECTION
+# COMMDB_ID = 11
+ Name=mbufgobblerscpr
+ SCprUid=0x10272F9B
+ FIELD_COUNT=2
+END_ADD
+
+############################################################
+## ProtocolTable
+##
+[ProtocolTable]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=sapshim
+ ProtocolUid=270496898
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=ipshim4
+ ProtocolUid=271064118
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=ppp
+ ProtocolUid=271064143
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=ethernet
+ ProtocolUid=271064539
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=rawip
+ ProtocolUid=271064562
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Name=tunnel
+ ProtocolUid=271064567
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Name=qosppp
+ ProtocolUid=271064148
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Name=dummynif
+ ProtocolUid=271064123
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 9
+ Name=hungrynif
+ ProtocolUid=271064125
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 10
+ Name=panether
+ ProtocolUid=271070627
+ FIELD_COUNT=2
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 11
+ Name=rawip2
+ ProtocolUid=271084280
+ FIELD_COUNT=2
+END_ADD
+
+## mbufgobbler layer: this is where we refer to our
+## new Protocol by its factory implementation UId
+ADD_SECTION
+# COMMDB_ID = 12
+ Name=mbufgobbler
+ ProtocolUid=0x10272F9C
+ FIELD_COUNT=2
+END_ADD
+
+
+############################################################
+## BearerTypeTable
+##
+[BearerTypeTable]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=ppp
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.3
+ Cpr=CprTable.3
+ SCpr=SCprTable.5
+ Protocol=ProtocolTable.3
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=ethint
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.4
+ Cpr=CprTable.3
+ SCpr=SCprTable.3
+ Protocol=ProtocolTable.4
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=rawip
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.5
+ Cpr=CprTable.3
+ SCpr=SCprTable.3
+ Protocol=ProtocolTable.5
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=tunnelnif
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.6
+ Cpr=CprTable.7
+ SCpr=SCprTable.3
+ Protocol=ProtocolTable.6
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=qosppp
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.7
+ Cpr=CprTable.3
+ SCpr=SCprTable.5
+ Protocol=ProtocolTable.7
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Name=dummynif
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.8
+ Cpr=CprTable.3
+ SCpr=SCprTable.3
+ Protocol=ProtocolTable.8
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Name=hungrynif
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.9
+ Cpr=CprTable.3
+ SCpr=SCprTable.3
+ Protocol=ProtocolTable.9
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Name=spud-ppp
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.3
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.3
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 9
+ Name=spud-rawip
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.3
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.5
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 10
+ Name=IPProtoDefaultTemplate
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 11
+ Name=NetworkDefaultTemplate
+ Tier=Link.TierTable.2048
+ MCpr=MCprTable.1
+ Cpr=CprTable.1
+ SCpr=SCprTable.7
+ Protocol=ProtocolTable.1
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 12
+ Name=rawip2
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.11
+ FIELD_COUNT=6
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 13
+ Name=spud-rawip2
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.11
+ FIELD_COUNT=6
+END_ADD
+
+
+############################################################
+## AccessPointTable
+##
+[AccessPointTable]
+ADD_SECTION
+# COMMDB_ID = 1
+ Id=1
+ Name=rawipMappedFromIAP1
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.8
+ Cpr=CprTable.3
+ SCpr=SCprTable.3
+ Protocol=ProtocolTable.8
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+## mbufgobbler layer: The access point record for the new layer.
+## Uses mbufgobbler tier, MCPr, CPr, SCPr and protocol
+ADD_SECTION
+# COMMDB_ID = 240
+ Id=20
+ Name=MbufGobblerLayer
+### Use record 7 in Tier table (MbufGobblerTierMgr, as defined by the second byte 07)
+ Tier=0x11800700
+ MCpr=MCprTable.14
+ Cpr=CprTable.11
+ SCpr=SCprTable.11
+ Protocol=ProtocolTable.12
+ CprConfig=1
+ AppSID=0
+ CustomSelectionPolicy=1
+ FIELD_COUNT=10
+END_ADD
+ADD_SECTION
+# COMMDB_ID = 2
+ Id=10003
+ Name=IPProto_generated_10003
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=1
+ CustomSelectionPolicy=20
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Id=2
+ Name=spud-rawipMappedFromIAP2
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Id=10004
+ Name=IPProto_generated_10004
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=2
+ CustomSelectionPolicy=2
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Id=3
+ Name=rawipMappedFromIAP3
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.5
+ Cpr=CprTable.3
+ SCpr=SCprTable.3
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Id=10005
+ Name=IPProto_generated_10005
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=3
+ CustomSelectionPolicy=3
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Id=4
+ Name=spud-rawipMappedFromIAP4
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Id=10006
+ Name=IPProto_generated_10006
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=4
+ CustomSelectionPolicy=4
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 9
+ Id=5
+ Name=rawipMappedFromIAP5
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.5
+ Cpr=CprTable.3
+ SCpr=SCprTable.3
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 10
+ Id=10007
+ Name=IPProto_generated_10007
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=5
+ CustomSelectionPolicy=5
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 11
+ Id=6
+ Name=spud-rawipMappedFromIAP6
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 12
+ Id=10008
+ Name=IPProto_generated_10008
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=6
+ CustomSelectionPolicy=6
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 13
+ Id=7
+ Name=spud-rawipMappedFromIAP7
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 14
+ Id=10009
+ Name=IPProto_generated_10009
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=7
+ CustomSelectionPolicy=7
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 15
+ Id=8
+ Name=spud-rawipMappedFromIAP8
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 16
+ Id=10010
+ Name=IPProto_generated_10010
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=8
+ CustomSelectionPolicy=8
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 17
+ Id=9
+ Name=spud-rawipMappedFromIAP9
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 18
+ Id=10011
+ Name=IPProto_generated_10011
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=9
+ CustomSelectionPolicy=9
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 19
+ Id=10
+ Name=spud-rawipMappedFromIAP10
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064565
+ MCpr=MCprTable.10
+ Cpr=CprTable.8
+ SCpr=SCprTable.4
+ Protocol=ProtocolTable.5
+ CprConfig=0
+ AppSID=0
+ Priority=4294967295
+ FIELD_COUNT=11
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 20
+ Id=10012
+ Name=IPProto_generated_10012
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.271064560
+ MCpr=MCprTable.2
+ Cpr=CprTable.2
+ SCpr=SCprTable.2
+ Protocol=ProtocolTable.2
+ CprConfig=10
+ CustomSelectionPolicy=10
+ FIELD_COUNT=10
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 252
+ Id=10002
+ Name=SIPDefault
+ AccessPointSelectionPolicy=0
+ Tier=Link.TierTable.536887799
+ MCpr=MCprTable.11
+ Cpr=CprTable.5
+ SCpr=SCprTable.8
+ Protocol=ProtocolTable.2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 254
+ Id=10000
+ Name=NetworkDefault
+ AccessPointSelectionPolicy=Link.APPrioritySelectionPolicyTable.20000
+ Tier=Link.TierTable.2048
+ MCpr=MCprTable.1
+ Cpr=CprTable.1
+ SCpr=SCprTable.7
+ Protocol=ProtocolTable.1
+ FIELD_COUNT=8
+END_ADD
+
+
+############################################################
+## GlobalSettings
+##
+[GlobalSettings]
+ADD_TEMPLATE
+ DefaultTier=1
+ FIELD_COUNT=1
+END_TEMPLATE
+
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=DefaultRecordName-1
+ ConnectionAttempts=2
+ RedialAttempts=3
+ SmsReceiveMode=2
+ GPRSAttachMode=1
+ AcceptIncomingGprs=1
+ GPRSClassCBearer=GSM
+ ModemForDataAndFax=2
+ ModemForPhoneServicesAndSMS=2
+ LocationForDataAndFax=2
+ LocationForPhoneServicesAndSMS=2
+ DefaultNetwork=1
+ BearerAvailabilityCheckTSY=mm
+ FIELD_COUNT=13
+END_ADD
+
+
+############################################################
+## IAP
+##
+[IAP]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=Loopback_GRPS_1
+ IAPServiceType=OutgoingGPRS
+ IAPService=1
+ IAPBearerType=ModemBearer
+ IAPBearer=1
+ IAPNetwork=1
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=Loopback_GRPS_2
+ IAPServiceType=OutgoingGPRS
+ IAPService=2
+ IAPBearerType=ModemBearer
+ IAPBearer=2
+ IAPNetwork=1
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=Loopback_GRPS_3
+ IAPServiceType=OutgoingGPRS
+ IAPService=3
+ IAPBearerType=ModemBearer
+ IAPBearer=3
+ IAPNetwork=2
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=Loopback_GRPS_4
+ IAPServiceType=OutgoingGPRS
+ IAPService=4
+ IAPBearerType=ModemBearer
+ IAPBearer=4
+ IAPNetwork=2
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=Loopback_GRPS_5
+ IAPServiceType=OutgoingGPRS
+ IAPService=1
+ IAPBearerType=ModemBearer
+ IAPBearer=3
+ IAPNetwork=2
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 6
+ Name=Loopback_GRPS_6
+ IAPServiceType=OutgoingGPRS
+ IAPService=1
+ IAPBearerType=ModemBearer
+ IAPBearer=1
+ IAPNetwork=3
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 7
+ Name=Loopback_GRPS_7
+ IAPServiceType=OutgoingGPRS
+ IAPService=6
+ IAPBearerType=ModemBearer
+ IAPBearer=7
+ IAPNetwork=4
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 8
+ Name=Loopback_GRPS_8
+ IAPServiceType=OutgoingGPRS
+ IAPService=7
+ IAPBearerType=ModemBearer
+ IAPBearer=8
+ IAPNetwork=5
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 9
+ Name=Loopback_GRPS_9
+ IAPServiceType=OutgoingGPRS
+ IAPService=8
+ IAPBearerType=ModemBearer
+ IAPBearer=9
+ IAPNetwork=6
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 10
+ Name=IAP_GRPS_BAD_QOS
+ IAPServiceType=OutgoingGPRS
+ IAPService=9
+ IAPBearerType=ModemBearer
+ IAPBearer=2
+ IAPNetwork=1
+ IAPNetworkWeighting=0
+ Location=2
+ FIELD_COUNT=8
+END_ADD
+
+
+############################################################
+## ConnectionPreferences
+##
+[ConnectionPreferences]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=DefaultRecordName-1
+ Ranking=1
+ Direction=OUTGOING
+ BearerSet=PSD
+ DialogPref=DONOTPROMPT
+ IAP=2
+ FIELD_COUNT=6
+END_ADD
+
+
+############################################################
+## UmtsR99QoSAndOn
+##
+[UmtsR99QoSAndOn]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=PRIMARY1
+ ReqTrafficClass=1
+ MinTrafficClass=1
+ ReqDeliveryOrder=1
+ MinDeliveryOrder=1
+ ReqDeliverErroneousSDU=1
+ MinDeliverErroneousSDU=1
+ ReqMaxSDUSize=0
+ MinAcceptableMaxSDUSize=0
+ ReqMaxUplinkRate=0
+ ReqMinUplinkRate=0
+ ReqMaxDownlinkRate=0
+ ReqMinDownlinkRate=0
+ ReqBER=1
+ MaxBER=1
+ ReqSDUErrorRatio=1
+ MaxSDUErrorRatio=1
+ ReqTrafficHandlingPriority=1
+ MinTrafficHandlingPriority=1
+ ReqTransferDelay=0
+ MaxTransferDelay=0
+ ReqGuaranteedUplinkRate=0
+ MinGuaranteedUplinkRat=0
+ ReqGuaranteedDownlinkRate=0
+ MinGuaranteedDownlinkRate=0
+ SignallingIndication=FALSE
+ ImCnSignallingIndication=FALSE
+ SourceStatisticsDescriptor=0
+ FIELD_COUNT=28
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=SECONDARY1
+ ReqTrafficClass=4
+ MinTrafficClass=4
+ ReqDeliveryOrder=1
+ MinDeliveryOrder=1
+ ReqDeliverErroneousSDU=8
+ MinDeliverErroneousSDU=8
+ ReqMaxSDUSize=768
+ MinAcceptableMaxSDUSize=512
+ ReqMaxUplinkRate=1024
+ ReqMinUplinkRate=1024
+ ReqMaxDownlinkRate=1024
+ ReqMinDownlinkRate=1024
+ ReqBER=0
+ MaxBER=0
+ ReqSDUErrorRatio=1
+ MaxSDUErrorRatio=1
+ ReqTrafficHandlingPriority=1
+ MinTrafficHandlingPriority=1
+ ReqTransferDelay=250
+ MaxTransferDelay=250
+ ReqGuaranteedUplinkRate=1024
+ MinGuaranteedUplinkRat=1024
+ ReqGuaranteedDownlinkRate=1024
+ MinGuaranteedDownlinkRate=1024
+ SignallingIndication=FALSE
+ ImCnSignallingIndication=FALSE
+ SourceStatisticsDescriptor=0
+ FIELD_COUNT=28
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 3
+ Name=PRIMARY2
+ ReqTrafficClass=1
+ MinTrafficClass=1
+ ReqDeliveryOrder=1
+ MinDeliveryOrder=1
+ ReqDeliverErroneousSDU=1
+ MinDeliverErroneousSDU=1
+ ReqMaxSDUSize=0
+ MinAcceptableMaxSDUSize=0
+ ReqMaxUplinkRate=0
+ ReqMinUplinkRate=0
+ ReqMaxDownlinkRate=0
+ ReqMinDownlinkRate=0
+ ReqBER=1
+ MaxBER=1
+ ReqSDUErrorRatio=1
+ MaxSDUErrorRatio=1
+ ReqTrafficHandlingPriority=1
+ MinTrafficHandlingPriority=1
+ ReqTransferDelay=0
+ MaxTransferDelay=0
+ ReqGuaranteedUplinkRate=0
+ MinGuaranteedUplinkRat=0
+ ReqGuaranteedDownlinkRate=0
+ MinGuaranteedDownlinkRate=0
+ SignallingIndication=FALSE
+ ImCnSignallingIndication=FALSE
+ SourceStatisticsDescriptor=0
+ FIELD_COUNT=28
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 4
+ Name=SECONDARY2
+ ReqTrafficClass=4
+ MinTrafficClass=4
+ ReqDeliveryOrder=1
+ MinDeliveryOrder=1
+ ReqDeliverErroneousSDU=8
+ MinDeliverErroneousSDU=8
+ ReqMaxSDUSize=768
+ MinAcceptableMaxSDUSize=512
+ ReqMaxUplinkRate=1024
+ ReqMinUplinkRate=1024
+ ReqMaxDownlinkRate=1024
+ ReqMinDownlinkRate=1024
+ ReqBER=0
+ MaxBER=0
+ ReqSDUErrorRatio=1
+ MaxSDUErrorRatio=1
+ ReqTrafficHandlingPriority=1
+ MinTrafficHandlingPriority=1
+ ReqTransferDelay=250
+ MaxTransferDelay=250
+ ReqGuaranteedUplinkRate=1024
+ MinGuaranteedUplinkRat=1024
+ ReqGuaranteedDownlinkRate=1024
+ MinGuaranteedDownlinkRate=1024
+ SignallingIndication=FALSE
+ ImCnSignallingIndication=FALSE
+ SourceStatisticsDescriptor=0
+ FIELD_COUNT=28
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 5
+ Name=BAD_QOS
+ MinTrafficClass=1
+ ReqDeliveryOrder=1
+ MinDeliveryOrder=1
+ ReqDeliverErroneousSDU=1
+ MinDeliverErroneousSDU=1
+ ReqMaxSDUSize=0
+ MinAcceptableMaxSDUSize=0
+ ReqMaxUplinkRate=0
+ ReqMinUplinkRate=0
+ ReqMaxDownlinkRate=0
+ ReqMinDownlinkRate=0
+ ReqBER=1
+ MaxBER=1
+ ReqSDUErrorRatio=1
+ MaxSDUErrorRatio=1
+ ReqTrafficHandlingPriority=1
+ MinTrafficHandlingPriority=1
+ ReqTransferDelay=0
+ MaxTransferDelay=0
+ ReqGuaranteedUplinkRate=0
+ MinGuaranteedUplinkRat=0
+ ReqGuaranteedDownlinkRate=0
+ MinGuaranteedDownlinkRate=0
+ SignallingIndication=FALSE
+ ImCnSignallingIndication=FALSE
+ SourceStatisticsDescriptor=0
+ FIELD_COUNT=27
+END_ADD
+
+
+############################################################
+## PolicySelectorTable
+##
+[PolicySelectorTable]
+ADD_SECTION
+# COMMDB_ID = 1
+ Name=DefaultRecordName-1
+ PolicyId=1
+ SrcAddress=0.0.0.0
+ SrcMask=255.255.255.255
+ DstAddress=192.168.1.1
+ DstMask=255.255.255.255
+ SrcPort=0
+ DstPort=3461
+ SrcPortMax=1031
+ DstPortMax=3461
+ ProtocolId=17
+ IAPid=2
+ Priority=1
+ FIELD_COUNT=13
+END_ADD
+
+ADD_SECTION
+# COMMDB_ID = 2
+ Name=DefaultRecordName-2
+ PolicyId=2
+ SrcPort=0
+ SrcPortMax=0
+ ProtocolId=1
+ IAPid=2
+ Priority=1
+ FIELD_COUNT=7
+END_ADD
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/group/bld.inf Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,36 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+
+PRJ_PLATFORMS
+
+DEFAULT
+
+prj_testmmpfiles
+mbufgobblerproviders.mmp
+
+prj_testexports
+../inc/mbufgobbleruids.h /epoc32/include/comms-infras/mbufgobbleruids.h
+../inc/mbufgobblerpubsub.h /epoc32/include/comms-infras/mbufgobblerpubsub.h
+
+../group/mbufgobblerproviders.iby /epoc32/rom/include/mbufgobblerproviders.iby
+
+#include "../te_mbufgobbler/group/bld.inf"
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/group/mbufgobblerproviders.iby Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,26 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __MBUFGOBBLERPROVIDERS_IBY__
+#define __MBUFGOBBLERPROVIDERS_IBY__
+
+#ifdef _DEBUG
+ECOM_PLUGIN_UDEB(mbufgobblerproviders.dll,mbufgobblerproviders.rsc)
+#else
+ECOM_PLUGIN(mbufgobblerproviders.dll,mbufgobblerproviders.rsc)
+#endif
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/group/mbufgobblerproviders.mmp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,100 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+TARGET mbufgobblerproviders.dll
+TARGETTYPE PLUGIN
+UID 0x10009D8D 0x10272F97
+
+MACRO SYMBIAN_COMMSFW_MBUF_GOBBLER
+
+
+#include <cflog.mmh> //for some reason another log mmh has been defined.
+ //This must be included to use the __CFLOG_* (e.g. __CFLOG_VAR) macros.
+#include "comms-infras/commsdebugutility.mmh"
+
+SOURCEPATH ../src
+
+
+SOURCE ecom_impl.cpp
+
+// Tier Manager source
+SOURCE mbufgobblertiermanager.cpp
+SOURCE mbufgobblertiermanagerfactory.cpp
+SOURCE mbufgobblertiermanageractivities.cpp
+SOURCE mbufgobblertiermanagerstates.cpp
+SOURCE mbufgobblerproviderselector.cpp
+
+// Meta Connection Provider source
+SOURCE mbufgobblermetaconnproviderfactory.cpp
+SOURCE mbufgobblermetaconnprovider.cpp
+SOURCE mbufgobblermetaconnprovideractivities.cpp
+SOURCE mbufgobblermetaconnproviderstates.cpp
+
+// Connection Provider source
+SOURCE mbufgobblerconnproviderfactory.cpp
+SOURCE mbufgobblerconnprovidermessages.cpp
+SOURCE mbufgobblerconnprovider.cpp
+SOURCE mbufgobblerconnprovideractivities.cpp
+SOURCE mbufgobblerconnproviderstates.cpp
+
+// Sub Connection Provider source
+SOURCE mbufgobblersubconnproviderfactory.cpp
+SOURCE mbufgobblersubconnprovider.cpp
+SOURCE mbufgobblersubconnprovideractivities.cpp
+SOURCE mbufgobblersubconnproviderstates.cpp
+
+// Flow source
+SOURCE mbufgobblerflowfactory.cpp
+SOURCE mbufgobblerflow.cpp
+
+// Other source
+SOURCE mbufgobblerhelper.cpp
+
+
+USERINCLUDE ../inc
+
+
+SYSTEMINCLUDE /epoc32/include
+SYSTEMINCLUDE /epoc32/include/comms-infras
+SYSTEMINCLUDE /epoc32/include/networking
+SYSTEMINCLUDE /epoc32/include/platform
+SYSTEMINCLUDE /epoc32/include/platform/comms-infras
+
+START RESOURCE 10272f97.rss
+ TARGET mbufgobblerproviders.rsc
+END
+
+LIBRARY euser.lib
+LIBRARY esock.lib
+LIBRARY netmeta.lib
+LIBRARY netinterfaces.lib
+LIBRARY esocksvr.lib
+LIBRARY nodemessages.lib
+LIBRARY coreproviders.lib
+LIBRARY meshmachine.lib
+LIBRARY commsdat.lib
+LIBRARY simpleselectorbase.lib
+
+LIBRARY insock.lib
+LIBRARY mbufmgr.lib
+
+
+CAPABILITY CommDD PowerMgmt ReadDeviceData WriteDeviceData TrustedUI ProtServ NetworkControl NetworkServices LocalServices ReadUserData WriteUserData
+VENDORID 0x70000001
+
+UNPAGED
+
+SMPSAFE
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/how to clone this component.txt Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,112 @@
+
+#####################################
+# #
+# Update Content And Filenames tool #
+# #
+#####################################
+
+The Update Content And Filenames tool allows you to clone this component to a new implementation.
+It does the boring housekeeping to rename the source, change target DLL name,
+update the UIDs etc. etc.
+It does this by performing recursive search and replace on file names and content.
+
+
+How to clone this component to a new implementation:
+
+- Ensure this component builds as is:
+ cd group
+ sbs -c winscw_udeb
+ sbs -c winscw_udeb.test
+ If you're feeling conscientious you could test it too :-)
+
+- Nominate an appropriate name for the new component.
+ e.g. Test123
+ If there's any chance the new component will end up
+ in a deliverable, please choose the name more carefully
+ than I just did
+
+- Copy this folder (the one containing this README file),
+ naming the new folder as something appropriate,
+ relating to the component name you have chosen
+ (and keep it lower case to keep linux builds happy)
+ e.g. "Copy Of mbufgobblerlayer" => "test123layer"
+
+- Ensure the new folder and all its contents are writable.
+ (if you got mbufgobblerlayer from a version control system it might be read-only)
+
+Then, in the *new* folder:
+
+- Modify the file UpdateContentsAndFilenames.ini accordingly,
+ to reflect the values required by your new component.
+ Obviously you'll need to obtain new UIds rather than just making them up :-)
+ (Ask your architect where new UIds should come from these days)
+ The "Search" fields specify the current values which will be replaced.
+ The "Replace" fields must be changed from CHANGEME to the desired values.
+ e.g. [Name].Replace=CHANGEME => [Name].Replace=Test123
+ e.g. [DllUid].Replace=CHANGEME => [DllUid].Replace=01234567
+ etc..
+
+- Ensure Python 2.6.2 or greater is installed. This should come down automatically
+ with SymSEE or whatever you used to put together your development environment.
+
+- Open a command window in the *new* folder, and run:
+ updatecontentandfilenames.py
+
+- Before you make further modifications, ensure the script updated
+ everything correctly:
+ cd group
+ sbs -c winscw_udeb
+ sbs -c winscw_udeb.test
+ (and run any regression tests over the new copy of the component)
+
+
+
+Notes and caveats:
+
+1.
+Remember you're taking a copy, so if you're cloning something feature-rich,
+please think carefully about whether either..
+ - you really do want 2 copies of the same feature code knocking about, which is
+ totally ok if you're just trying something out and/or you want to isolate the new
+ component from changes in the cloned component
+.. or ..
+ - you should be considering cloning a more basic implementation,
+ then applying techniques such as inheritance to reuse the existing features
+
+
+So it's more suited for cloning basic ("feature-impoverished?") implementations as a
+starting point for developing more functional implementations.
+
+e.g. mbufgobbler Layer -> some new layer
+
+
+2.
+Correct functioning of the script of course assumes some reasonably pragmatic
+correlation between class names, folder names, dll names etc.
+
+It's easy for you to add extra search and replace pairs as needed to address
+more complicated renaming tasks. Just add more sections to the
+UpdateContentsAndFilenames.ini file. The [Header Names] are not used for anything, they're
+just for your reference and should probably be unique across the file.
+The really important bit is the Search/Replace pairs.
+
+
+3.
+Each search/replace pair is applied in turn. So don't expect to be able to do anything
+sneaky like swapping strings in a single run.
+
+
+4.
+Reusing this script elsewhere should be easy,
+because there is no special significance to the .ini file section names-
+they are just there to assist the user in populating the fields.
+i.e. .ini file sections purely exist to group together each Search/Replace pair.
+
+Just copy the updatecontentandfilenames.* files into the root folder of a new
+copy of the component that you want to clone, edit the ini file, and run the python script.
+
+
+5.
+Have fun..
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobbler_panic.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,40 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Panic codes for mbufgobbler layer
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#include <e32std.h>
+
+#define ASSERT_DEBUG(exp, pcode) __ASSERT_DEBUG(exp, User::Panic(KMbufGobblerLayerPanic, pcode))
+
+_LIT(KMbufGobblerLayerPanic, "MbufGobblerLayer");
+
+enum TMbufGobblerLayerPanic
+ {
+ EExpectedAccessPointAwareSystem = 1, //copied from CMbufGobblerProviderSelector not sure what this means yet.
+ EUnexpectedTSelectionPrefsType,
+ EInvalidNullPtr
+ };
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblerconnprovider.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,84 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Connection Provider
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef CMBUFGOBBLERCONNPROVIDER_H
+#define CMBUFGOBBLERCONNPROVIDER_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <comms-infras/corecpr.h>
+#include "mbufgobblertestflags.h"
+
+
+
+
+// CLASS DECLARATION
+
+/**
+ * CMbufGobblerConnProvider
+ *
+ */
+
+//comment on diffeent super class options e.g. CMobilityConnectionProvider
+class ESock::CConnectionProviderFactoryBase;
+class CMbufGobblerConnProvider : public CCoreConnectionProvider
+ {
+public:
+ // Constructors and destructor
+ static CMbufGobblerConnProvider* NewL(ESock::CConnectionProviderFactoryBase& aFactory);
+
+ /**
+ * Destructor.
+ */
+ ~CMbufGobblerConnProvider();
+
+
+protected: //from CCoreConnectionProvider
+ void ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage);
+
+private:
+
+ /**
+ * Constructor for performing 1st stage construction
+ */
+ CMbufGobblerConnProvider(ESock::CConnectionProviderFactoryBase& aFactory);
+
+ /**
+ * EPOC default constructor for performing 2nd stage construction
+ */
+ void ConstructL();
+
+private:
+ TInt iClientCount; //holds count of clients that node is joined with
+
+ MBUFGOBBLER_TEST_DATA
+ };
+
+#endif // CMBUFGOBBLERCONNPROVIDER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblerconnprovideractivities.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,61 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Connection Provider Mesh Activities
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef CMBUFGOBBLERCONNPROVIDERACTIVITIES_H
+#define CMBUFGOBBLERCONNPROVIDERACTIVITIES_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+#include <comms-infras/ss_activities.h>
+#include <elements/mm_activities.h>
+
+// CLASS DECLARATION
+namespace MbufGobblerCprActivities
+{
+
+
+enum
+ {
+ /*
+ * Add new actviity id's here. I think they must be offset from ECFActivityCustom.
+ */
+
+ /*
+ * This is just an example activity
+ */
+ EMbufGobblerCprSomeActivity = ESock::ECFActivityCustom + 1,
+ };
+
+DECLARE_ACTIVITY_MAP(MbufGobblerCprActivitiesMap)
+}
+
+
+#endif // CMBUFGOBBLERCONNPROVIDERACTIVITIES_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblerconnproviderfactory.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,79 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Connection Provider Factory
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef CMBUFGOBBLERCONNPROVIDERFACTORY_H
+#define CMBUFGOBBLERCONNPROVIDERFACTORY_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <comms-infras/ss_connprov.h>
+#include <comms-infras/ss_nodemessages_legacy.h>
+#include <comms-infras/ss_legacyinterfaces.h>
+
+#include "mbufgobbleruids.h"
+
+
+
+// CLASS DECLARATION
+
+/**
+ * CMbufGobblerConnProviderFactory
+ *
+ */
+class CMbufGobblerConnProviderFactory : public ESock::CConnectionProviderFactoryBase
+ {
+public:
+ // Constructors and destructor
+ enum { iUid = EMbufGobblerCPrUid };
+ static CMbufGobblerConnProviderFactory* NewL(TAny* aParentContainer);
+ /**
+ * Destructor.
+ */
+ ~CMbufGobblerConnProviderFactory();
+
+protected: //from CConnectionProviderFactoryBase
+ virtual ESock::ACommsFactoryNodeId* DoCreateObjectL(ESock::TFactoryQueryBase& /* aQuery */);
+ virtual void CMbufGobblerConnProviderFactory::EnumerateConnectionsL(RPointerArray<ESock::TSourcedConnectionInfo>& aConnectionInfoPtrArray);
+
+
+private: //class not intended for derivation
+ /**
+ * Constructor for performing 1st stage construction
+ */
+ CMbufGobblerConnProviderFactory(TUid aFactoryId, ESock::CConnectionFactoryContainer& aParentContainer);
+
+ /**
+ * EPOC default constructor for performing 2nd stage construction
+ */
+ void ConstructL();
+
+ };
+
+#endif // CMBUFGOBBLERCONNPROVIDERFACTORY_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblerconnprovidermessages.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,40 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Connection Provider Messages
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef CMBUFGOBBLERCONNPROVIDERMESSAGES_H
+#define CMBUFGOBBLERCONNPROVIDERMESSAGES_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+// CLASS DECLARATION
+
+
+#endif // CMBUFGOBBLERCONNPROVIDERMESSAGES_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblerconnproviderstates.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,39 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Connection Provider Mesh States
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef CMBUFGOBBLERCONNPROVIDERSTATES_H
+#define CMBUFGOBBLERCONNPROVIDERSTATES_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+// CLASS DECLARATION
+
+#endif // CMBUFGOBBLERCONNPROVIDERSTATES_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblerflow.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,151 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Flow / Binder
+// (data plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERFLOW_H
+#define MBUFGOBBLERFLOW_H
+
+#include <elements/nm_signatures.h>
+#include <comms-infras/ss_subconnflow.h>
+#include <comms-infras/ss_flowbinders.h>
+#include <platform/es_mbuf.h>
+#include <comms-infras/mbufchain.h>
+#include "mbufgobblertestflags.h"
+#include <e32property.h>
+
+class CMbufGobblerBinder;
+class CMBufGobbler;
+
+class CMbufGobblerFlow : public ESock::CSubConnectionFlowBase, public ESock::MFlowBinderControl
+ {
+ friend class CMbufGobblerFlowFactory;
+
+protected:
+ CMbufGobblerFlow(ESock::CSubConnectionFlowFactoryBase& aFactory, const Messages::TNodeId& aSubConnId, ESock::CProtocolIntfBase* aProtocolIntf);
+ void ConstructL();
+public:
+ static CMbufGobblerFlow* NewL(ESock::CSubConnectionFlowFactoryBase& aFactory, const Messages::TNodeId& aSubConnId, ESock::CProtocolIntfBase* aProtocolIntf);
+ virtual ~CMbufGobblerFlow();
+
+ // from CSubConnectionFlowBase:
+ virtual ESock::MFlowBinderControl* DoGetBinderControlL();
+ virtual void ReceivedL(
+ const Messages::TRuntimeCtxId& aSender,
+ const Messages::TNodeId& aRecipient,
+ Messages::TSignatureBase& aMessage
+ );
+
+ // from MFlowBinderControl:
+ virtual ESock::MLowerControl* GetControlL(const TDesC8& aProtocol);
+ virtual ESock::MLowerDataSender* BindL(const TDesC8& aProtocol, ESock::MUpperDataReceiver* aReceiver, ESock::MUpperControl* aControl);
+ virtual void Unbind( ESock::MUpperDataReceiver* aReceiver, ESock::MUpperControl* aControl);
+ virtual ESock::CSubConnectionFlowBase* Flow();
+
+ // my helper methods:
+ CMbufGobblerBinder* FindOrCreateBinderL(const TDesC8& aProtocol);
+
+private:
+ RPointerArray<CMbufGobblerBinder> iBinders;
+
+#ifdef SYMBIAN_COMMSFW_MBUF_GOBBLER
+ CMBufGobbler* iMBufGobbler;
+#endif
+ };
+
+class CMbufGobblerBinder : public CBase,
+ public ESock::MLowerControl, // I receive control requests from above
+ public ESock::MLowerDataSender, // I receive data from above (outgoing)
+ public ESock::MUpperControl, // I receive control signals from below
+ public ESock::MUpperDataReceiver // I receive data from below (incoming)
+ {
+ public:
+ // My constructor
+ static CMbufGobblerBinder* NewL(const TDesC8& aProtocolName);
+ void ConstructL();
+ protected:
+ CMbufGobblerBinder(const TDesC8& aProtocolName);
+ public:
+ virtual ~CMbufGobblerBinder();
+
+ // from ESock::MLowerControl:
+ virtual TInt GetName(TDes& aName);
+ virtual TInt BlockFlow(TBlockOption aOption);
+ virtual TInt GetConfig(TBinderConfig& aConfig);
+ virtual TInt Control(TUint aLevel, TUint aName, TDes8& aOption);
+
+ // from ESock::MLowerDataSender:
+ virtual ESock::MLowerDataSender::TSendResult Send(RMBufChain& aData);
+
+ // from ESock::MUpperControl:
+ virtual void StartSending();
+ virtual void Error(TInt anError);
+
+ // from ESock::MUpperDataReceiver:
+ virtual void Process(RMBufChain& aData);
+
+
+ // my own methods
+ TBool InUse() const {return iLowerControl || iLowerDataSender || iUpperControl || iUpperDataReceiver ; }
+ void BindToUpperL(ESock::MUpperDataReceiver& aUpperDataReceiver, ESock::MUpperControl& aUpperControl);
+ TBool UnbindFromUpper(ESock::MUpperDataReceiver& aUpperDataReceiver, ESock::MUpperControl& aUpperControl);
+ void BindToLowerFlowL(ESock::MFlowBinderControl& aLowerControl);
+ void UnbindFromLowerFlow(); // NEW UNBIND COMMAND
+ const TDesC8& ProtocolName() const;
+
+ private:
+ ESock::MFlowBinderControl* iBinderControl;
+ ESock::MLowerControl* iLowerControl; // .. so I can send controls down
+ ESock::MLowerDataSender* iLowerDataSender; // .. so I can send data down (outgoing)
+ ESock::MUpperControl* iUpperControl; // .. so I can send controls up (err/startsending)
+ ESock::MUpperDataReceiver* iUpperDataReceiver; // .. so I can send data up (incoming)
+ TBuf8<10> iProtocolName; // long enough for an acronym one would hope
+ MBUFGOBBLER_TEST_DATA
+ };
+
+#ifdef SYMBIAN_COMMSFW_MBUF_GOBBLER
+
+class CMBufGobbler : public CActive
+ {
+public:
+ static CMBufGobbler* NewL();
+ void ConstructL();
+protected:
+ CMBufGobbler();
+public:
+ virtual ~CMBufGobbler();
+
+ // from CActive:
+ virtual void DoCancel();
+ virtual void RunL();
+
+ RMBufChain iChain;
+ RProperty iProperty;
+ };
+#endif
+
+#endif // MBUFGOBBLERFLOW_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblerflowfactory.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,56 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// The factory class which is used to instantiate the MbufGobbler flow.
+// (data plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERFLOWFACTORY_H__
+#define MBUFGOBBLERFLOWFACTORY_H__
+
+#include <e32base.h>
+#include <e32std.h>
+#include <comms-infras/ss_subconnflow.h>
+#include <comms-infras/ss_protflow.h>
+#include <comms-infras/ss_subconnprov.h>
+#include <elements/nm_signatures.h>
+#include "mbufgobbleruids.h"
+
+class CMbufGobblerFlowFactory : public ESock::CSubConnectionFlowFactoryBase
+/**
+MbufGobbler Flow Factory
+*/
+ {
+public:
+
+ enum { EUid = EMbufGobblerFlowUid };
+ static CMbufGobblerFlowFactory* NewL(TAny* aConstructionParameters);
+
+protected:
+ CMbufGobblerFlowFactory(TUid aFactoryId, ESock::CSubConnectionFlowFactoryContainer& aParentContainer);
+ virtual ESock::CSubConnectionFlowBase* DoCreateFlowL(ESock::CProtocolIntfBase* aProtocol, ESock::TFactoryQueryBase& aQuery);
+ };
+
+#endif // MBUFGOBBLERFLOWFACTORY_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblerhelper.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,52 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Helper class supplying useful logging functions to the providers in the layer
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERHELPER_H
+#define MBUFGOBBLERHELPER_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+#include <elements/mm_context.h>
+
+// CLASS DECLARATION
+
+/**
+ * CMbufGobblerHelper
+ *
+ */
+class MbufGobblerHelper
+ {
+public:
+ static void LogCreateDestroy(const TDesC8& aSubTag, const TDesC8& aNodeName, TAny* aNodePtr, TBool aIsCreate);
+ static void LogMessage(const TDesC8& aSubTag, const TDesC8& aNodeName, TAny* aNodePtr, const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage);
+ static void PrintClientNodes(const TDesC8& aSubTag, const TDesC8& aNodeName, MeshMachine::AMMNodeBase& aNode, TInt& aClientCount);
+ };
+
+#endif // MBUFGOBBLERHELPER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblerlog.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,92 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Helper macros that wrap the ones from ESock.
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERLOG_H_
+#define MBUFGOBBLERLOG_H_
+
+#include <e32def.h>
+#include <comms-infras/ss_logext.h> //defines LOG_NODE_CREATE and LOG_NODE_DESTROY
+
+#include <cflog.h> //defines __CFLOG_* macros
+
+#include "mbufgobblerhelper.h"
+
+/*
+ * The component tag
+ *
+ * In commsdbg.ini add line LOG MbufGobblerLayer * to enbale these logs
+ */
+_LIT8(KMbufGobblerComponentTag, "MbufGobblerLayer");
+
+#define KMbufGobblerMcprTag KESockMetaConnectionTag
+_LIT8(KMbufGobblerMcprSubTag, "MbufGobblerMCpr");
+
+#define KMbufGobblerMCprFactoryTag KESockMetaConnectionTag
+_LIT8(KMbufGobblerMCprFactorySubTag, "MbufGobblerMCprFactory");
+
+#define KMbufGobblerCprFactoryTag KESockConnectionTag
+_LIT8(KMbufGobblerCprFactorySubTag, "MbufGobblerCprFactory");
+
+#define KMbufGobblerCprTag KESockConnectionTag
+_LIT8(KMbufGobblerCprSubTag, "MbufGobblerCpr");
+
+#define KMbufGobblerScprFactoryTag KESockSubConnectionTag
+_LIT8(KMbufGobblerScprFactorySubTag, "MbufGobblerSCprFactory");
+
+#define KMbufGobblerScprTag KESockSubConnectionTag
+_LIT8(KMbufGobblerScprSubTag, "MbufGobblerSCpr");
+
+#define KMbufGobblerFlowTag KESockFlowTag
+_LIT8(KMbufGobblerFlowSubTag,"MbufGobblerFlow");
+
+#define KMbufGobblerTierTag KESockTierTag
+_LIT8(KMbufGobblerTierSubTag,"MbufGobblerTierM");
+
+#define KMbufGobblerTierFactoryTag KESockTierTag
+_LIT8(KMbufGobblerTierFactorySubTag,"MbufGobblerTierMFactory");
+
+/*
+ * LOG_NODE_CREATE - this logs out to utrace and is needed for SVG viewer
+ * __CFLOG_VAR - this logs to standard comms dbg utils. Must include cflog.mmh in mmp file
+ */
+
+#define MBUFGOBBLER_LOG_NODE_CREATE(subTag, type, nodename, nodeptr) \
+ LOG_NODE_CREATE(subTag, type); \
+ MbufGobblerHelper::LogCreateDestroy(subTag, nodename, nodeptr, 1);
+
+#define MBUFGOBBLER_LOG_NODE_DESTROY(subTag, type, nodename, nodeptr) \
+ LOG_NODE_DESTROY(subTag, type); \
+ MbufGobblerHelper::LogCreateDestroy(subTag, nodename, nodeptr, 0);
+
+#define LOGMESSAGE(subtag, nodeclass, nodeptr, sender, recipient, msg) MbufGobblerHelper::LogMessage(subtag, nodeclass, nodeptr, sender, recipient, msg)
+
+#define LOG_NODE_INFO(subtag, nodename, node, clientcount) MbufGobblerHelper::PrintClientNodes(subtag, nodename, node, clientcount);
+
+#define LOG(subTag, ARGS...) __CFLOG_VAR((KMbufGobblerComponentTag, subTag, ##ARGS));
+
+#endif /* MBUFGOBBLERLOG_H_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblermetaconnprovider.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,67 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Meta Connection Provider
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERMETACONNPROVIDER_H
+#define MBUFGOBBLERMETACONNPROVIDER_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <comms-infras/coremcpr.h>
+#include "mbufgobblertestflags.h"
+
+// CLASS DECLARATION
+
+/**
+ * CMbufGobblerMetaConnectionProvider
+ *
+ */
+
+class CMbufGobblerMetaConnectionProvider : public CCoreMetaConnectionProvider
+ {
+public:
+ static CMbufGobblerMetaConnectionProvider* NewL(ESock::CMetaConnectionProviderFactoryBase& aFactory,
+ const ESock::TProviderInfo& aProviderInfo);
+ ~CMbufGobblerMetaConnectionProvider();
+
+protected:
+ CMbufGobblerMetaConnectionProvider(ESock::CMetaConnectionProviderFactoryBase& aFactory,
+ const ESock::TProviderInfo& aProviderInfo, const MeshMachine::TNodeActivityMap& aActivityMap);
+
+ void ConstructL();
+
+ // From MCFNode Interface
+ void ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aCFMessage);
+private:
+ TInt iClientCount; //holds count of clients that node is joined with
+ MBUFGOBBLER_TEST_DATA
+ };
+
+
+#endif // MBUFGOBBLERMETACONNPROVIDER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblermetaconnprovideractivities.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,59 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Meta Connection Provider Mesh Activities
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERMETACONNPROVIDERACTIVITIES_H
+#define MBUFGOBBLERMETACONNPROVIDERACTIVITIES_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+#include <comms-infras/ss_activities.h>
+#include <elements/mm_activities.h>
+
+// CLASS DECLARATION
+
+namespace MbufGobblerMCprActivities
+{
+enum
+ {
+ /*
+ * Add new actviity id's here. I think they must be offset from ECFActivityCustom.
+ */
+
+ /*
+ * This is just an example activity
+ */
+ EMbufGobblerMCprSomeActivity = ESock::ECFActivityCustom + 1,
+ };
+
+DECLARE_ACTIVITY_MAP(MbufGobblerMCprActivitiesMap)
+}
+
+#endif // MBUFGOBBLERMETACONNPROVIDERACTIVITIES_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblermetaconnproviderfactory.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,61 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Factory which creates the Meta Connection Provider
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERMETACONNPROVIDERFACTORY_H
+#define MBUFGOBBLERMETACONNPROVIDERFACTORY_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <comms-infras/ss_metaconnprov.h>
+#include "mbufgobbleruids.h"
+
+// CLASS DECLARATION
+
+/**
+ * CMbufGobblerMetaConnectionProviderFactory
+ *
+ */
+
+
+class CMbufGobblerMetaConnectionProviderFactory : public ESock::CMetaConnectionProviderFactoryBase
+ {
+public:
+ enum { iUid = EMbufGobblerMCPrUid };
+ static CMbufGobblerMetaConnectionProviderFactory* NewL(TAny* aParentContainer);
+
+protected: //from CMetaConnectionProviderFactoryBase
+ virtual ESock::ACommsFactoryNodeId* DoCreateObjectL(ESock::TFactoryQueryBase& aQuery);
+ virtual void DoEnumerateConnectionsL (RPointerArray<TConnectionInfo>& /*aConnectionInfoPtrArray*/);
+
+private: //not intended for derivation
+ CMbufGobblerMetaConnectionProviderFactory(TUid aFactoryUid, ESock::CMetaConnectionFactoryContainer& aParentContainer);
+ };
+
+#endif // MBUFGOBBLERMETACONNPROVIDERFACTORY_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblermetaconnproviderstates.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,77 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Meta Connection Provider Mesh States
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERMETACONNPROVIDERMESHSTATES_H
+#define MBUFGOBBLERMETACONNPROVIDERMESHSTATES_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+// CLASS DECLARATION
+
+/**
+ * CMbufGobblerMetaConnectionProviderStates
+ *
+ */
+class CMbufGobblerMetaConnectionProviderStates : public CBase
+ {
+public:
+ // Constructors and destructor
+
+ /**
+ * Destructor.
+ */
+ ~CMbufGobblerMetaConnectionProviderStates();
+
+ /**
+ * Two-phased constructor.
+ */
+ static CMbufGobblerMetaConnectionProviderStates* NewL();
+
+ /**
+ * Two-phased constructor.
+ */
+ static CMbufGobblerMetaConnectionProviderStates* NewLC();
+
+private:
+
+ /**
+ * Constructor for performing 1st stage construction
+ */
+ CMbufGobblerMetaConnectionProviderStates();
+
+ /**
+ * EPOC default constructor for performing 2nd stage construction
+ */
+ void ConstructL();
+
+ };
+
+#endif // MBUFGOBBLERMETACONNPROVIDERMESHSTATES_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblerproviderselector.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,69 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// MbufGobbler selector. Used by the Tier Manager to select the access point below
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERPROVIDERSELECTOR_H
+#define MBUFGOBBLERPROVIDERSELECTOR_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+#include <comms-infras/simpleselectorbase.h>
+
+// CLASS DECLARATION
+
+/**
+ * CMbufGobblerProviderSelector
+ *
+ * This is basically copied from other selector examples I culd find. Specifically I have used the
+ * CBtGenericProviderSelector as a template.
+ *
+ */
+class CMbufGobblerProviderSelector : public CBase, private ASimpleSelectorBase
+ {
+public:
+ static ESock::MProviderSelector* NewL(const Meta::SMetaData& aSelectionPreferences);
+
+private:
+ CMbufGobblerProviderSelector(const Meta::SMetaData& aSelectionPreferences);
+ ~CMbufGobblerProviderSelector();
+
+ // From MProviderSelector
+ virtual void SelectL(ESock::ISelectionNotify& aSelectionNotify);
+ virtual void Destroy();
+
+ ESock::CMetaConnectionProviderBase* FindOrCreateProviderL(TUint aAccessPoint);
+
+private:
+ ESock::TSelectionPrefs iSelectionPreferences;
+ TUint32 iTier;
+ };
+
+
+#endif // MBUFGOBBLERPROVIDERSELECTOR_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblerpubsub.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,70 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Defines the series of requests which a ESOCK client can send to the MBuf Gobbler using
+// the publish and subscribe attribute EMBufGobbler.
+//
+// A test ESOCK client can deplete all the MBufs from the MBuf pool as follows:
+//
+// TInt result = RProperty::Set(TUid::Uid(EMBufGobbler ), EAdjustNumberOfMBufsRemainingInPool , EGobbleAllMBufs);
+//
+// Issuing this command should cause a socket read or write request to fail due to MBuf pool exhaustion.
+//
+// Subsequently a test ESOCK client can return all the MBufs it has taken from the pool as follows:
+//
+// result = RProperty::Set(TUid::Uid(EMBufGobbler), EAdjustNumberOfMBufsRemainingInPool, EReleaseAllMBufs);
+//
+// After taking all the MBufs from the pool, an ESOCK test client can also return a single MBuf back to the pool as follows:
+//
+// result = RProperty::Set(TUid::Uid(EMBufGobbler), EAdjustNumberOfMBufsRemainingInPool, EReleaseASingleMBuf);
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERPUBSUB_H
+#define MBUFGOBBLERPUBSUB_H
+
+
+#ifdef SYMBIAN_COMMSFW_MBUF_GOBBLER
+
+enum
+{
+EMBufGobbler = 0x10272F97
+};
+
+enum
+{
+EAdjustNumberOfMBufsRemainingInPool = 1
+};
+
+enum
+{
+EGobbleAllMBufs,
+EReleaseAllMBufs,
+EReleaseASingleMBuf
+};
+
+#endif
+
+#endif
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblersubconnprovider.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,77 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Sub Connection Provider
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERSUBCONNPROVIDER_H
+#define MBUFGOBBLERSUBCONNPROVIDER_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <comms-infras/corescpr.h>
+#include "mbufgobblertestflags.h"
+
+// CLASS DECLARATION
+
+/**
+ * CMbufGobblerSubconnProvider
+ *
+ */
+class ESock::CSubConnectionProviderFactoryBase;
+class CMbufGobblerSubconnProvider : public CCoreSubConnectionProvider
+ {
+public:
+ // Constructors and destructor
+ static CMbufGobblerSubconnProvider* NewL(ESock::CSubConnectionProviderFactoryBase& aFactory);
+
+ /**
+ * Destructor.
+ */
+ ~CMbufGobblerSubconnProvider();
+
+
+protected: //from CCoreSubConnectionProvider
+ void ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage);
+
+private:
+
+ /**
+ * Constructor for performing 1st stage construction
+ */
+ CMbufGobblerSubconnProvider(ESock::CSubConnectionProviderFactoryBase& aFactory);
+
+ /**
+ * EPOC default constructor for performing 2nd stage construction
+ */
+ void ConstructL();
+private:
+ TInt iClientCount; //holds count of clients that node is joined with
+ MBUFGOBBLER_TEST_DATA
+ };
+
+#endif // MBUFGOBBLERSUBCONNPROVIDER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblersubconnprovideractivities.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,61 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Sub Connection Provider Mesh Activities
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERSUBCONNPROVIDERACTIVITIES_H
+#define MBUFGOBBLERSUBCONNPROVIDERACTIVITIES_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+#include <comms-infras/ss_activities.h>
+#include <elements/mm_activities.h>
+
+// CLASS DECLARATION
+
+namespace MbufGobblerSCprActivities
+{
+
+
+enum
+ {
+ /*
+ * Add new actviity id's here. I think they must be offset from ECFActivityCustom.
+ */
+
+ /*
+ * This is just an example activity
+ */
+ EMbufGobblerSCprSomeActivity = ESock::ECFActivityCustom + 1,
+ };
+
+DECLARE_ACTIVITY_MAP(MbufGobblerSCprActivitiesMap)
+}
+
+#endif // MBUFGOBBLERSUBCONNPROVIDERACTIVITIES_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblersubconnproviderfactory.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,56 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Sub Connection Provider Factory
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERSUBCONNPROVIDERFACTORY_H
+#define MBUFGOBBLERSUBCONNPROVIDERFACTORY_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <comms-infras/ss_subconnprov.h>
+#include "mbufgobbleruids.h"
+
+// CLASS DECLARATION
+
+/**
+ * CMbufGobblerSubconnProviderFactory
+ *
+ */
+class CMbufGobblerSubconnProviderFactory : public ESock::CSubConnectionProviderFactoryBase
+ {
+public:
+ enum { iUid = EMbufGobblerSCPrUid };
+ static CMbufGobblerSubconnProviderFactory* NewL(TAny* aParentContainer);
+
+protected:
+ CMbufGobblerSubconnProviderFactory(TUid aFactoryId, ESock::CSubConnectionFactoryContainer& aParentContainer);
+ virtual ESock::ACommsFactoryNodeId* DoCreateObjectL(ESock::TFactoryQueryBase& aQuery);
+ };
+
+#endif // MBUFGOBBLERSUBCONNPROVIDERFACTORY_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblersubconnproviderstates.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,77 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Connection Provider Declaration
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERSUBCONNPROVIDERSTATES_H
+#define MBUFGOBBLERSUBCONNPROVIDERSTATES_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+// CLASS DECLARATION
+
+/**
+ * CMbufGobblerSubconnMeshStates
+ *
+ */
+class CMbufGobblerSubconnMeshStates : public CBase
+ {
+public:
+ // Constructors and destructor
+
+ /**
+ * Destructor.
+ */
+ ~CMbufGobblerSubconnMeshStates();
+
+ /**
+ * Two-phased constructor.
+ */
+ static CMbufGobblerSubconnMeshStates* NewL();
+
+ /**
+ * Two-phased constructor.
+ */
+ static CMbufGobblerSubconnMeshStates* NewLC();
+
+private:
+
+ /**
+ * Constructor for performing 1st stage construction
+ */
+ CMbufGobblerSubconnMeshStates();
+
+ /**
+ * EPOC default constructor for performing 2nd stage construction
+ */
+ void ConstructL();
+
+ };
+
+#endif // MBUFGOBBLERSUBCONNPROVIDERSTATES_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblertestflags.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,105 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Test flags. Lightweight functions to provide basic coverage test
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERTESTFLAGS_H_
+#define MBUFGOBBLERTESTFLAGS_H_
+
+
+#include <e32property.h>
+
+#ifdef _DEBUG
+#define MBUFGOBBLER_TEST_POINT(flag,result) if(iTestFlags) {MbufGobblerTestFlags::SetResult(MbufGobblerTestFlags::flag,result);}
+#define MBUFGOBBLER_TEST_DATA TBool iTestFlags;
+#define MBUFGOBBLER_TEST_DATA_INIT iTestFlags = MbufGobblerTestFlags::TestFlagsActive();
+
+
+namespace MbufGobblerTestFlags
+{
+const TUid KPubSubUid = {0x00285DAC};
+
+enum
+ {
+ // set by test library, read by binder
+ KFlagsActive = 100,
+
+ // set by binder, read by test library
+ KTierUp = 101,
+
+ KMCPrUp = 111,
+
+ KCPrUp = 121,
+
+ KSCPrUp = 131,
+
+ KBind = 141,
+ KBinderSend = 142,
+ KBinderReceive = 143,
+ };
+
+
+// used by client test library
+static TInt ActivateTestFlags()
+ {
+ return RProperty::Define(KPubSubUid, KFlagsActive, RProperty::EInt);
+ }
+
+// used by client test library
+static TInt GetResult(TInt aFlag)
+ {
+ TInt value=0;
+ TInt retcode=RProperty::Get(KPubSubUid, aFlag, value);
+ return (retcode==KErrNone) ? value : retcode;
+ }
+
+// used by binder
+static TBool TestFlagsActive()
+ {
+ return GetResult(KFlagsActive) == KErrNone;
+ }
+
+// used by binder
+static void SetResult(TInt aFlag, TInt aValue)
+ {
+ // Yes it is very inefficient making these calls
+ // on e.g. each packet send but we only do this when
+ // the test is running i.e. if it was explicitly
+ // switched on, so it won't affect "normal" operation.
+ RProperty::Define(KPubSubUid, aFlag, RProperty::EInt);
+ RProperty::Set(KPubSubUid, aFlag, aValue);
+ }
+} // namespace MbufGobblerTestFlags
+
+#else // _DEBUG
+#define MBUFGOBBLER_TEST_POINT(flag,result)
+// It's better to make the urel and udeb objects the same size,
+// at the expense of 4 bytes:
+#define MBUFGOBBLER_TEST_DATA TBool iTestFlags_unused;
+#define MBUFGOBBLER_TEST_DATA_INIT
+#endif // _DEBUG
+
+#endif /* MBUFGOBBLERTESTFLAGS_H_ */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblertiermanager.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,59 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Contributors:
+//
+// Description:
+// Tier Manager
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERTIERMANAGER_H
+#define MBUFGOBBLERTIERMANAGER_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <comms-infras/coretiermanager.h>
+#include "mbufgobblertestflags.h"
+
+// CLASS DECLARATION
+
+/**
+ * CMbufGobblerTierManager
+ *
+ */
+class CMbufGobblerTierManager : public CCoreTierManager
+ {
+public:
+ static CMbufGobblerTierManager* NewL(ESock::CTierManagerFactoryBase& aFactory);
+ ~CMbufGobblerTierManager();
+ virtual ESock::MProviderSelector* DoCreateProviderSelectorL(const Meta::SMetaData& aSelectionPreferences);
+
+protected: //from Messages::ANode
+ virtual void ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage);
+private:
+ CMbufGobblerTierManager(ESock::CTierManagerFactoryBase& aFactory);
+ void ConstructL();
+private:
+ TInt iClientCount; //holds count of clients that node is joined with
+ MBUFGOBBLER_TEST_DATA
+ };
+
+#endif // MBUFGOBBLERTIERMANAGER_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblertiermanageractivities.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,61 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Tier Manager Mesh Activities
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERTIERMANAGERACTIVITIES_H
+#define MBUFGOBBLERTIERMANAGERACTIVITIES_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+#include <comms-infras/ss_corepractivities.h>
+
+
+// CLASS DECLARATION
+
+namespace MbufGobblerTMActivities
+{
+
+
+enum
+ {
+ /*
+ * Add new actviity id's here. I think they must be offset from ECFActivityCustom.
+ */
+
+ /*
+ * This is just an example activity
+ */
+ EMbufGobblerTMSomeActivity = ESock::ECFActivityCustom + 1,
+ };
+
+DECLARE_ACTIVITY_MAP(MbufGobblerTMActivitiesMap)
+}
+
+#endif // MBUFGOBBLERTIERMANAGERACTIVITIES_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblertiermanagerfactory.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,57 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Tier Manager Factory
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERTIERMANAGERFACTORY_H
+#define MBUFGOBBLERTIERMANAGERFACTORY_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+#include <ss_tiermanager.h>
+#include "mbufgobbleruids.h"
+
+// CLASS DECLARATION
+
+/**
+ * CMbufGobblerTierManagerFactory
+ *
+ */
+
+class CMbufGobblerTierManagerFactory : public ESock::CTierManagerFactoryBase
+ {
+public:
+ enum { iUid = EMbufGobblerTierUid};
+ static CMbufGobblerTierManagerFactory* NewL(TAny* aParentContainer);
+
+protected:
+ CMbufGobblerTierManagerFactory(TUid aTierTypeId, TUid aFactoryUid, ESock::CTierManagerFactoryContainer& aParentContainer);
+ virtual ESock::ACommsFactoryNodeId* DoCreateObjectL(ESock::TFactoryQueryBase& aQuery);
+ };
+
+#endif // MBUFGOBBLERTIERMANAGERFACTORY_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobblertiermanagerstates.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,77 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Tier Manager Mesh States
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLERTIERMANAGERSTATES_H
+#define MBUFGOBBLERTIERMANAGERSTATES_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+// CLASS DECLARATION
+
+/**
+ * CMbufGobblerTierManagerMeshStates
+ *
+ */
+class CMbufGobblerTierManagerMeshStates : public CBase
+ {
+public:
+ // Constructors and destructor
+
+ /**
+ * Destructor.
+ */
+ ~CMbufGobblerTierManagerMeshStates();
+
+ /**
+ * Two-phased constructor.
+ */
+ static CMbufGobblerTierManagerMeshStates* NewL();
+
+ /**
+ * Two-phased constructor.
+ */
+ static CMbufGobblerTierManagerMeshStates* NewLC();
+
+private:
+
+ /**
+ * Constructor for performing 1st stage construction
+ */
+ CMbufGobblerTierManagerMeshStates();
+
+ /**
+ * EPOC default constructor for performing 2nd stage construction
+ */
+ void ConstructL();
+
+ };
+
+#endif // MBUFGOBBLERTIERMANAGERSTATES_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/inc/mbufgobbleruids.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,41 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Implementation UIds of the mbufgobbler providers
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef MBUFGOBBLER_UID_H
+#define MBUFGOBBLER_UID_H
+
+enum
+ {
+ EMbufGobblerTierUid = 0x10272F98,
+ EMbufGobblerMCPrUid = 0x10272F99,
+ EMbufGobblerCPrUid = 0x10272F9A,
+ EMbufGobblerSCPrUid = 0x10272F9B,
+ EMbufGobblerFlowUid = 0x10272F9C,
+ };
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/10272f97.rss Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,105 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Registry info for MbufGobbler providers ECOM plug-in
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#include "ecom/registryinfo.rh"
+
+RESOURCE REGISTRY_INFO theInfo
+{
+dll_uid = 0x10272F97;
+interfaces =
+ {
+ INTERFACE_INFO
+ {
+ interface_uid = 0x10281DD7;
+ implementations =
+ {
+ IMPLEMENTATION_INFO
+ {
+ implementation_uid = 0x10272F98;
+ version_no = 1;
+ display_name = "MbufGobbler Tier Manager Factory";
+ default_data = "MbufGobblerTMFactory";
+ opaque_data = "";
+ }
+ };
+ },
+ INTERFACE_INFO
+ {
+ interface_uid = 0x10274546;
+ implementations =
+ {
+ IMPLEMENTATION_INFO
+ {
+ implementation_uid = 0x10272F99;
+ version_no = 1;
+ display_name = "MbufGobbler Meta Connection Provider Factory";
+ default_data = "MbufGobblerMCPrFactory";
+ opaque_data = "";
+ }
+ };
+ },
+ INTERFACE_INFO
+ {
+ interface_uid = 0x102070EE;
+ implementations =
+ {
+ IMPLEMENTATION_INFO
+ {
+ implementation_uid = 0x10272F9A;
+ version_no = 1;
+ display_name = "MbufGobbler Connection Provider Factory";
+ default_data = "MbufGobblerCPrFactory";
+ opaque_data = "";
+ }
+ };
+ },
+ INTERFACE_INFO
+ {
+ interface_uid = 0x10204301;
+ implementations =
+ {
+ IMPLEMENTATION_INFO
+ {
+ implementation_uid = 0x10272F9B;
+ version_no = 1;
+ display_name = "MbufGobbler Sub Connection Provider Factory";
+ default_data = "MbufGobblerSCPrFactory";
+ opaque_data = "";
+ }
+ };
+ },
+ INTERFACE_INFO
+ {
+ interface_uid = 0x10281C33;
+ implementations =
+ {
+ IMPLEMENTATION_INFO
+ {
+ implementation_uid = 0x10272F9C;
+ version_no = 1;
+ display_name = "MbufGobbler Flow Factory";
+ default_data = "MbufGobblerFlowFactory";
+ opaque_data = "";
+ }
+ };
+ }
+ };
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/ecom_impl.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,49 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// ECOM implementation for the MbufGobbler layer provider factories
+//
+
+/**
+ @file
+ @internalComponent
+ */
+
+#include <ecom/implementationproxy.h>
+#include <ecom/ecom.h>
+
+#include "mbufgobblerflowfactory.h"
+#include "mbufgobblerconnproviderfactory.h"
+#include "mbufgobblersubconnproviderfactory.h"
+#include "mbufgobblermetaconnproviderfactory.h"
+#include "mbufgobblertiermanagerfactory.h"
+
+//
+// ECOM Implementation
+//
+
+const TImplementationProxy ImplementationTable[] =
+ {
+ IMPLEMENTATION_PROXY_ENTRY(CMbufGobblerTierManagerFactory::iUid, CMbufGobblerTierManagerFactory::NewL),
+ IMPLEMENTATION_PROXY_ENTRY(CMbufGobblerMetaConnectionProviderFactory::iUid, CMbufGobblerMetaConnectionProviderFactory::NewL),
+ IMPLEMENTATION_PROXY_ENTRY(CMbufGobblerConnProviderFactory::iUid, CMbufGobblerConnProviderFactory::NewL),
+ IMPLEMENTATION_PROXY_ENTRY(CMbufGobblerSubconnProviderFactory::iUid, CMbufGobblerSubconnProviderFactory::NewL),
+ IMPLEMENTATION_PROXY_ENTRY(CMbufGobblerFlowFactory::EUid, CMbufGobblerFlowFactory::NewL),
+ };
+
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
+ {
+ aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+ return ImplementationTable;
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblerconnprovider.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,77 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Connection Provider
+// (control plane)
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+/**
+ @file
+ @internalComponent
+*/
+
+#include <comms-infras/ss_connprov.h>
+
+#include "mbufgobblerconnprovider.h"
+#include "mbufgobblerconnprovideractivities.h"
+#include "mbufgobblerlog.h"
+#include "mbufgobblertestflags.h"
+
+using namespace MbufGobblerCprActivities;
+
+_LIT8(KNodeName, "CMbufGobblerConnProvider");
+
+CMbufGobblerConnProvider* CMbufGobblerConnProvider::NewL(ESock::CConnectionProviderFactoryBase& aFactory)
+ {
+ CMbufGobblerConnProvider* prov = new (ELeave) CMbufGobblerConnProvider(aFactory);
+ CleanupStack::PushL(prov);
+ prov->ConstructL();
+ CleanupStack::Pop(prov);
+ return prov;
+ }
+
+CMbufGobblerConnProvider::CMbufGobblerConnProvider(ESock::CConnectionProviderFactoryBase& aFactory)
+: CCoreConnectionProvider(aFactory, MbufGobblerCprActivities::MbufGobblerCprActivitiesMap::Self())
+ {
+ MBUFGOBBLER_LOG_NODE_CREATE(KMbufGobblerCprSubTag, CMbufGobblerConnProvider, KNodeName, this->NodeId().Ptr());
+ }
+
+
+
+void CMbufGobblerConnProvider::ConstructL()
+ {
+ CCoreConnectionProvider::ConstructL();
+ MBUFGOBBLER_TEST_DATA_INIT
+ MBUFGOBBLER_TEST_POINT(KCPrUp,KErrNone)
+ }
+
+CMbufGobblerConnProvider::~CMbufGobblerConnProvider()
+ {
+ MBUFGOBBLER_LOG_NODE_DESTROY(KMbufGobblerCprSubTag, CMbufGobblerConnProvider, KNodeName, this->NodeId().Ptr());
+ }
+
+void CMbufGobblerConnProvider::ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage)
+ {
+ LOGMESSAGE(KMbufGobblerCprSubTag, KNodeName, this, aSender, aRecipient, aMessage);
+ LOG_NODE_INFO(KMbufGobblerCprSubTag, KNodeName, *this, iClientCount);
+
+ MeshMachine::TNodeContext<CMbufGobblerConnProvider> ctx(*this, aMessage, aSender, aRecipient);
+ Received(ctx);
+ User::LeaveIfError(ctx.iReturn);
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblerconnprovideractivities.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,44 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Connection Provider Mesh Activities
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+/**
+ @file
+ @internalComponent
+*/
+
+
+#include "mbufgobblerconnprovideractivities.h"
+#include "mbufgobblerlog.h"
+
+#include <comms-infras/ss_corepractivities.h>
+#include <comms-infras/corecpractivities.h>
+
+
+
+namespace MbufGobblerCprActivities
+{
+DEFINE_ACTIVITY_MAP(MbufGobblerCprActivitiesMap)
+ //no activities defiend here yet. This define is to show where to put activities
+ //so for now just inherit from core activities
+ACTIVITY_MAP_END_BASE(CprActivities, coreCprActivities)
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblerconnproviderfactory.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,59 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Connection Provider Factory
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblerconnproviderfactory.h"
+#include "mbufgobblerconnprovider.h"
+#include "mbufgobblerlog.h"
+
+CMbufGobblerConnProviderFactory::~CMbufGobblerConnProviderFactory()
+ {
+ }
+
+CMbufGobblerConnProviderFactory* CMbufGobblerConnProviderFactory::NewL(TAny* aParentContainer)
+ {
+ return new (ELeave) CMbufGobblerConnProviderFactory(TUid::Uid(CMbufGobblerConnProviderFactory::iUid), *reinterpret_cast<ESock::CConnectionFactoryContainer*>(aParentContainer));
+ }
+
+CMbufGobblerConnProviderFactory::CMbufGobblerConnProviderFactory(TUid aFactoryId, ESock::CConnectionFactoryContainer& aParentContainer)
+: CConnectionProviderFactoryBase(aFactoryId, aParentContainer)
+ {
+ }
+
+ESock::ACommsFactoryNodeId* CMbufGobblerConnProviderFactory::DoCreateObjectL(ESock::TFactoryQueryBase& /* aQuery */)
+ {
+ return CMbufGobblerConnProvider::NewL(*this);
+ }
+
+void CMbufGobblerConnProviderFactory::EnumerateConnectionsL(RPointerArray<ESock::TSourcedConnectionInfo>& aConnectionInfoPtrArray)
+ {
+ (void)aConnectionInfoPtrArray;
+ //TEnumerateConnectionsQuery query(aConnectionInfoPtrArray);
+ //Find(query);
+ }
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblerconnprovidermessages.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,32 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Connection Provider Messages
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblerconnprovidermessages.h"
+#include "mbufgobblerlog.h"
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblerconnproviderstates.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,32 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Connection Provider Mesh States
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblerconnproviderstates.h"
+#include "mbufgobblerlog.h"
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblerflow.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,667 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Flow / Binder
+// (data plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+/**
+ @file
+ @internalComponent
+*/
+
+#include <comms-infras/ss_activities.h>
+#include <comms-infras/ss_logext.h>
+#include <es_mbman.h>
+#include <mbufgobblerpubsub.h>
+#include "mbufgobblerflow.h"
+#include "mbufgobblerlog.h"
+
+// for panics
+_LIT(KPanicCategory, "MbufGobblerLayer");
+enum
+ {
+ KPanic_DestroyReceivedBeforeUnbind = 2001
+ };
+
+_LIT8(KNodeName, "CMbufGobblerFlow");
+
+
+///////////////////////////
+// class CMbufGobblerFlow //
+///////////////////////////
+
+CMbufGobblerFlow* CMbufGobblerFlow::NewL(ESock::CSubConnectionFlowFactoryBase& aFactory, const Messages::TNodeId& aSubConnId, ESock::CProtocolIntfBase* aProtocolIntf)
+ {
+ CMbufGobblerFlow* inst = new(ELeave) CMbufGobblerFlow(aFactory, aSubConnId, aProtocolIntf);
+ CleanupStack::PushL(inst);
+ inst->ConstructL();
+ CleanupStack::Pop(inst);
+ return inst;
+ }
+
+CMbufGobblerFlow::CMbufGobblerFlow(ESock::CSubConnectionFlowFactoryBase& aFactory, const Messages::TNodeId& aSubConnId, ESock::CProtocolIntfBase* aProtocolIntf)
+/**
+ * Constructor.
+ *
+ * @param aFactory Reference to the factory which created this object.
+ * @param aTheLogger The logging object, ownership is passed to this object
+ */
+ :ESock::CSubConnectionFlowBase(aFactory, aSubConnId, aProtocolIntf)
+ {
+ MBUFGOBBLER_LOG_NODE_CREATE(KMbufGobblerFlowSubTag, CMbufGobblerFlow, KNodeName, this->NodeId().Ptr());
+ }
+
+void CMbufGobblerFlow::ConstructL()
+ {
+#ifdef SYMBIAN_COMMSFW_MBUF_GOBBLER
+ iMBufGobbler = CMBufGobbler::NewL();
+#endif
+ }
+
+CMbufGobblerFlow::~CMbufGobblerFlow()
+ {
+ MBUFGOBBLER_LOG_NODE_DESTROY(KMbufGobblerFlowSubTag, CMbufGobblerFlow, KNodeName, this->NodeId().Ptr());
+ iBinders.ResetAndDestroy();
+#ifdef SYMBIAN_COMMSFW_MBUF_GOBBLER
+ delete iMBufGobbler;
+#endif
+ }
+
+
+
+///////////////////////////////////////////
+// Methods from CSubConnectionFlowBase: //
+///////////////////////////////////////////
+
+ESock::MFlowBinderControl* CMbufGobblerFlow::DoGetBinderControlL()
+ {
+ return this;
+ }
+
+
+// Messages::ANode
+void CMbufGobblerFlow::ReceivedL(
+ const Messages::TRuntimeCtxId& aSender,
+ const Messages::TNodeId& aRecipient,
+ Messages::TSignatureBase& aMessage
+ )
+/**
+Method called on incoming SCPR messages
+
+@param aCFMessage message base
+*/
+ {
+
+ LOGMESSAGE(KMbufGobblerFlowSubTag, KNodeName, this, aSender, aRecipient, aMessage);
+ //LOG_NODE_INFO(KMbufGobblerFlowSubTag, KNodeName, *this); does not compile as flow inheritance is different to other nodes
+ CSubConnectionFlowBase::ReceivedL(aSender, aRecipient, aMessage);
+
+ // Dispatch the message locally
+ if (ESock::TCFDataClient::ERealmId == aMessage.MessageId().Realm())
+ {
+ switch (aMessage.MessageId().MessageId())
+ {
+
+ case ESock::TCFDataClient::TStart::EId :
+ {
+ iSubConnectionProvider.RNodeInterface::PostMessage(
+ Id(),
+ ESock::TCFDataClient::TStarted().CRef()
+ );
+ }
+ break;
+
+ case ESock::TCFDataClient::TStop::EId :
+ {
+ TInt i;
+ for (i=iBinders.Count()-1;i>=0;--i)
+ {
+ CMbufGobblerBinder* binder = iBinders[i];
+ binder->UnbindFromLowerFlow();
+ delete binder;
+ iBinders.Remove(i);
+ }
+ iSubConnectionProvider.PostMessage(Id(), ESock::TCFDataClient::TStopped(KErrNone).CRef());
+ }
+ break;
+
+ case ESock::TCFDataClient::TProvisionConfig::EId :
+ {
+ ESock::TCFDataClient::TProvisionConfig& aMess = Messages::message_cast<ESock::TCFDataClient::TProvisionConfig>(aMessage);
+ iAccessPointConfig.Close();
+ iAccessPointConfig.Open(aMess.iConfig);
+ }
+ break;
+
+ case ESock::TCFDataClient::TBindTo::EId :
+ {
+ ESock::TCFDataClient::TBindTo& bindToReq = Messages::message_cast<ESock::TCFDataClient::TBindTo>(aMessage);
+ if (bindToReq.iNodeId == Messages::TNodeId::NullId())
+ {
+ User::Leave(KErrNotSupported);
+ }
+
+ const Messages::TNodeId& commsId = bindToReq.iNodeId;
+ CSubConnectionFlowBase* lowerFlow = Messages::mnode_cast<CSubConnectionFlowBase>(&commsId.Node());
+
+ MFlowBinderControl* lowerBinderControl = lowerFlow->GetBinderControlL();
+ ASSERT(lowerBinderControl);
+
+ TInt i;
+ for (i=0;i<iBinders.Count();++i)
+ {
+ // binder for each protocol will request binder for same protocol from lower binder controller using this fn.
+ iBinders[i]->BindToLowerFlowL(*lowerBinderControl);
+ }
+ ASSERT(i); // there should be some binders!
+
+ Messages::RClientInterface::OpenPostMessageClose(
+ Id(),
+ aSender,
+ ESock::TCFDataClient::TBindToComplete().CRef()
+ );
+ }
+ break;
+
+ default:
+ ASSERT(EFalse);
+ }
+ }
+ else if (Messages::TEChild::ERealmId == aMessage.MessageId().Realm())
+ {
+ switch (aMessage.MessageId().MessageId())
+ {
+ case Messages::TEChild::TDestroy::EId :
+ {
+ TInt i;
+ for (i=0;i<iBinders.Count();++i)
+ {
+ // ensure all binders unbound
+ if (iBinders[i]->InUse())
+ {
+ //__CFLOG_0(KLogTag1, KLogTag2,_L("something is sending TDestroy to CMbufGobblerFlow before unbinding."));
+ User::Panic(KPanicCategory,KPanic_DestroyReceivedBeforeUnbind);
+ }
+
+ // EXAMPLE CODE: cancel requests here if necessary...
+ //iBinders[i]->Cancel();
+
+ }
+ if (i==iBinders.Count()) // all unbound
+ {
+ DeleteThisFlow();
+ }
+ }
+ break;
+
+ default:
+ ASSERT(EFalse);
+ }
+ }
+ // realm != TCFMessage::ERealmId
+ else
+ {
+ ASSERT(EFalse);
+ }
+ }
+
+
+///////////////////////////////////////
+// Methods from MFlowBinderControl: //
+///////////////////////////////////////
+
+ESock::MLowerControl* CMbufGobblerFlow::GetControlL(const TDesC8& aProtocol)
+/**
+Create and return an MLowerControl instance of the specified binder type.
+
+Called from upper layer during binding procedure.
+
+@param aProtocol Protocol type of the binder
+@return MLowerControl instance of the protocol type
+*/
+ {
+ ESock::MLowerControl* lowerControl = FindOrCreateBinderL(aProtocol);
+ ASSERT(lowerControl);
+ return lowerControl;
+ }
+
+
+ESock::MLowerDataSender* CMbufGobblerFlow::BindL(const TDesC8& aProtocol, ESock::MUpperDataReceiver* aReceiver, ESock::MUpperControl* aControl)
+ {
+ CMbufGobblerBinder* binder = FindOrCreateBinderL(aProtocol);
+ ASSERT(binder);
+ binder->BindToUpperL( *aReceiver, *aControl );
+
+ iSubConnectionProvider.RNodeInterface::PostMessage(
+ Id(),
+ ESock::TCFControlProvider::TActive().CRef()
+ );
+
+ return binder;
+ }
+
+void CMbufGobblerFlow::Unbind( ESock::MUpperDataReceiver* aReceiver, ESock::MUpperControl* aControl)
+ {
+ ASSERT(aReceiver);
+ ASSERT(aControl);
+ TInt i;
+ TInt numberUnbound=0;
+ for (i=0;i<iBinders.Count();++i)
+ {
+ numberUnbound += (iBinders[i]->UnbindFromUpper(*aReceiver,*aControl) ? 1 : 0);
+ }
+ ASSERT(i); // there should be some binders!
+ ASSERT(numberUnbound<=1); // only 1 unbind should have happened
+
+ iSubConnectionProvider.RNodeInterface::PostMessage(
+ Id(),
+ ESock::TCFControlProvider::TIdle().CRef()
+ );
+ }
+
+ESock::CSubConnectionFlowBase* CMbufGobblerFlow::Flow()
+ {
+ return this;
+ }
+
+
+/////////////////
+// Own methods //
+/////////////////
+
+CMbufGobblerBinder* CMbufGobblerFlow::FindOrCreateBinderL(const TDesC8& aProtocol)
+ {
+
+ // EXAMPLE CODE, should you want your: perhaps your protocol to work with IPv4
+ //if (aProtocol.Compare(KIp4ProtocolName))
+ // { // only work with IPv4
+ // User::Leave(KErrNotSupported);
+ // }
+
+ for (TInt i=0;i<iBinders.Count();++i)
+ {
+ if(iBinders[i]->ProtocolName() == aProtocol)
+ {
+ return iBinders[i];
+ }
+ }
+ // not found.. create it.
+ CMbufGobblerBinder* newBinder = CMbufGobblerBinder::NewL(aProtocol);
+ CleanupStack::PushL(newBinder);
+ iBinders.AppendL(newBinder);
+ CleanupStack::Pop(newBinder);
+ return newBinder;
+ }
+
+
+
+
+
+//##################################################################################################
+
+/////////////////////////////
+// class CMbufGobblerBinder //
+/////////////////////////////
+
+
+////////////////////
+// My constructor //
+////////////////////
+
+CMbufGobblerBinder::CMbufGobblerBinder(const TDesC8& aProtocolName):
+ iLowerControl(NULL),
+ iLowerDataSender(NULL),
+ iUpperControl(NULL),
+ iUpperDataReceiver(NULL),
+ iProtocolName(aProtocolName)
+ {}
+
+CMbufGobblerBinder* CMbufGobblerBinder::NewL(const TDesC8& aProtocolName)
+ {
+ CMbufGobblerBinder* inst = new(ELeave) CMbufGobblerBinder(aProtocolName);
+ CleanupStack::PushL(inst);
+ inst->ConstructL();
+ CleanupStack::Pop(inst);
+ return inst;
+ }
+
+void CMbufGobblerBinder::ConstructL()
+ {
+ MBUFGOBBLER_TEST_DATA_INIT
+#if 0
+ // EXAMPLE CODE - set up everything you need to in this method.
+ // Perhaps you have some kind of test control interface using pub/sub.. if so you'd do something like below..
+ // Diff this file with networking/netperf/delaymeterproto/src/delaymeterflow.cpp for a full working implementation of such a control interface...
+ CActiveScheduler::Add(this);
+ DefinePubSubKeysL();
+ // watch for incoming commands
+ User::LeaveIfError(iProperty.Attach(TUid::Uid(KDelayMeterControlLevel), KCommandToDelayMeter));
+ iProperty.Subscribe(iStatus);
+ SetActive();
+#endif
+ }
+
+/*virtual*/
+CMbufGobblerBinder::~CMbufGobblerBinder()
+ {
+ }
+
+
+
+////////////////////////////////////////
+// Methods from ESock::MLowerControl: //
+////////////////////////////////////////
+
+TInt CMbufGobblerBinder::GetName(TDes& aName)
+ {
+ TBuf16<10> tmp;
+ tmp.Copy(ProtocolName());
+ aName.Format(_L("mbufgobbler[%S][0x%08x]"), &tmp, this);
+
+ return KErrNone;
+ }
+
+TInt CMbufGobblerBinder::BlockFlow(TBlockOption aOption)
+ {
+ if (iLowerControl==NULL)
+ {
+ return KErrNotReady;
+ }
+ return iLowerControl->BlockFlow(aOption) ;
+ }
+
+TInt CMbufGobblerBinder::GetConfig(TBinderConfig& aConfig)
+ {
+ if (iLowerControl==NULL)
+ {
+ return KErrNotReady;
+ }
+ return iLowerControl->GetConfig(aConfig) ;
+ }
+
+TInt CMbufGobblerBinder::Control(TUint aLevel, TUint aName, TDes8& aOption)
+ {
+ // Pass it on..
+ if (iLowerControl==NULL)
+ {
+ return KErrNotReady;
+ }
+ return iLowerControl->Control(aLevel,aName,aOption);
+ }
+
+
+///////////////////////////////////////////
+// Methods from ESock::MLowerDataSender: //
+///////////////////////////////////////////
+
+ESock::MLowerDataSender::TSendResult CMbufGobblerBinder::Send(RMBufChain& aData)
+ {
+ // EXAMPLE NOTE:
+ // This is where a protocol implementation will do its work on outgoing data.
+
+ MBUFGOBBLER_TEST_POINT(KBinderSend,KErrNone)
+
+ if (iLowerControl==NULL)
+ {
+ return ESendBlocked; // returning this obliges us to send an unblock later..
+ // so perhaps it'd be better to just swallow the packet?
+ }
+ return iLowerDataSender->Send(aData);
+ }
+
+////////////////////////////////////////
+// Methods from ESock::MUpperControl: //
+////////////////////////////////////////
+
+/*virtual*/
+void CMbufGobblerBinder::StartSending()
+ {
+ if (iUpperControl)
+ {
+ iUpperControl->StartSending();
+ }
+ else
+ {
+ ASSERT(1); // to allow setting a breakpoint
+ //__CFLOG_0(KLogTag1, KLogTag2,_L("CMbufGobblerBinder::StartSending: upper control not yet known!"));
+ }
+ }
+
+/*virtual*/
+void CMbufGobblerBinder::Error(TInt anError)
+ {
+ if (iUpperControl)
+ {
+ iUpperControl->Error(anError);
+ }
+ else
+ {
+ ASSERT(1); // to set a breakpoint
+ //__CFLOG_0(KLogTag1, KLogTag2,_L("CMbufGobblerBinder::Error: upper control not yet known!"));
+ }
+ }
+
+
+/////////////////////////////////////////////
+// Methods from ESock::MUpperDataReceiver: //
+/////////////////////////////////////////////
+
+/*virtual*/
+void CMbufGobblerBinder::Process(RMBufChain& aData)
+ {
+ // EXAMPLE NOTE:
+ // This is where a protocol implementation will do its work on incoming data.
+
+ MBUFGOBBLER_TEST_POINT(KBinderReceive,KErrNone)
+
+ if (iUpperDataReceiver == NULL)
+ {
+ // Why is the guy below still sending data to me when I'm not bound above?
+ // Try to ignore it
+ ASSERT(1); // so a breakpoint can be set if necessary
+ //__CFLOG_0(KLogTag1, KLogTag2,_L("CMbufGobblerBinder::Process: incoming traffic discarded as upper data receiver not (or no longer) set"));
+ return;
+ }
+ iUpperDataReceiver->Process(aData);
+ }
+
+
+//////////////////////////
+// and my own methods.. //
+//////////////////////////
+
+// called by layer above calling my flow's BindL
+void CMbufGobblerBinder::BindToUpperL(MUpperDataReceiver& aUpperDataReceiver, MUpperControl& aUpperControl)
+ {
+ if(iUpperDataReceiver || iUpperControl) {User::Leave(KErrInUse);}
+ iUpperDataReceiver=&aUpperDataReceiver;
+ iUpperControl=&aUpperControl;
+ MBUFGOBBLER_TEST_POINT(KBind,KErrNone)
+ }
+
+// called by layer above calling my flow's Unbind. Returns ETrue if unbind happened here, EFalse otherwise
+TBool CMbufGobblerBinder::UnbindFromUpper(MUpperDataReceiver& aUpperDataReceiver, MUpperControl& aUpperControl)
+ {
+ if(&aUpperDataReceiver == iUpperDataReceiver && &aUpperControl == iUpperControl)
+ {
+ iUpperDataReceiver=0;
+ iUpperControl=0;
+ return ETrue;
+ }
+ return EFalse;
+ }
+
+// called by my flow receiving a BinderRequest
+void CMbufGobblerBinder::BindToLowerFlowL(ESock::MFlowBinderControl& aLowerBinderControl)
+ {
+// __CFLOG_0(KLogTag1, KLogTag2, _L("CMbufGobblerBinder::BindToLowerFlowL"));
+ if(iLowerControl || iLowerDataSender)
+ {
+ User::Leave(KErrInUse);
+ }
+
+ iBinderControl = &aLowerBinderControl;
+ iLowerControl = aLowerBinderControl.GetControlL(ProtocolName());
+ iLowerDataSender = aLowerBinderControl.BindL(ProtocolName(), this, this);
+ }
+
+void CMbufGobblerBinder::UnbindFromLowerFlow()
+ {
+ if (!iBinderControl)
+ return;
+
+ iBinderControl->Unbind(this, this);
+ iBinderControl = NULL;
+
+ iLowerControl = NULL;
+ iLowerDataSender = NULL;
+ }
+
+const TDesC8& CMbufGobblerBinder::ProtocolName() const
+ {
+ return iProtocolName;
+ }
+
+#ifdef SYMBIAN_COMMSFW_MBUF_GOBBLER
+
+CMBufGobbler::CMBufGobbler():
+ CActive(CActive::EPriorityStandard)
+ {
+ }
+
+CMBufGobbler* CMBufGobbler::NewL()
+ {
+ CMBufGobbler* inst = new(ELeave) CMBufGobbler;
+ CleanupStack::PushL(inst);
+ inst->ConstructL();
+ CleanupStack::Pop(inst);
+ return inst;
+ }
+
+void CMBufGobbler::ConstructL()
+ {
+ iChain.AllocL(128);
+
+ CActiveScheduler::Add(this);
+
+ TInt result = RProperty::Define(TUid::Uid(EMBufGobbler), EAdjustNumberOfMBufsRemainingInPool, RProperty::EInt);
+ // Only want 1 instance of a MBufGobbler Layer, so just leave if KErrAlreadyExists returned
+ User::LeaveIfError(result);
+
+ // watch for incoming commands
+ User::LeaveIfError(iProperty.Attach(TUid::Uid(EMBufGobbler), EAdjustNumberOfMBufsRemainingInPool));
+
+ iProperty.Subscribe(iStatus);
+ SetActive();
+ }
+
+/*virtual*/ CMBufGobbler::~CMBufGobbler()
+ {
+ if (IsActive())
+ {
+ Cancel();
+ }
+
+ iChain.Free();
+
+ TInt result = RProperty::Delete(TUid::Uid(EMBufGobbler), EAdjustNumberOfMBufsRemainingInPool);
+ if (result != KErrNone)
+ {
+ RDebug::Print(_L("CMBufGobbler::~CMBufGobbler() %d"), result);
+ }
+ }
+
+/*virtual*/ void CMBufGobbler::DoCancel()
+ {
+ iProperty.Cancel();
+ }
+
+/*virtual*/ void CMBufGobbler::RunL()
+ {
+ // Resubscribe to ensure that next pub/sub notification is picked up
+ iProperty.Subscribe(iStatus);
+ SetActive();
+
+ TInt request=EGobbleAllMBufs;
+ TInt pubSubRet = iProperty.Get(request);
+ if (pubSubRet == KErrNone)
+ {
+ switch(request)
+ {
+ case EGobbleAllMBufs:
+ {
+ RMBufAllocator allocator;
+ RMBufChain chain;
+ TInt size = allocator.NextMBufSize(0);
+ while (size != KErrNotFound)
+ {
+ TInt ret = KErrNone;
+ while (ret == KErrNone)
+ {
+ ret = chain.Alloc(size);
+ if (ret==KErrNone )
+ {
+ iChain.Append(chain);
+ }
+ }
+ size = allocator.NextMBufSize(size);
+ }
+ TInt length = iChain.Length();
+ RDebug::Print(_L("Out of MBuf Memory... Total MBuf memory in use %d"), length);
+ TInt numBufs = iChain.NumBufs();
+ RDebug::Print(_L("Out of MBuf Memory... Total MBufs in use %d"), numBufs);
+ break;
+ }
+ case EReleaseAllMBufs:
+ {
+ if(!iChain.IsEmpty())
+ {
+ iChain.Free();
+ ASSERT(!iChain.Length());
+ }
+ break;
+ }
+ case EReleaseASingleMBuf:
+ {
+ TInt length = iChain.Length();
+ if (length != 0)
+ {
+ TInt trimOffset = length - iChain.Last()->Size();
+ iChain.TrimEnd(trimOffset);
+ }
+
+ length = iChain.Length();
+ RDebug::Print(_L("MBufMemory De-Allocated... Total MBuf memory in use %d"), length);
+ break;
+ }
+ default:
+ {
+ RDebug::Print(_L("CMBufGobbler::RunL(), invalid request %d"), request);
+ break;
+ }
+ }
+ }
+ else
+ {
+ RDebug::Print(_L("Attempt to process MBufGobbler publish/subscribe failed with value for %d"), pubSubRet);
+ }
+ }
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblerflowfactory.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,71 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// The factory class which is used to instantiate the MbufGobbler flow.
+// (data plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblerflowfactory.h"
+#include "mbufgobblerflow.h"
+#include "mbufgobblerlog.h"
+
+// =====================================================================================
+//
+// MbufGobbler Flow Factory
+//
+
+CMbufGobblerFlowFactory* CMbufGobblerFlowFactory::NewL(TAny* aConstructionParameters)
+/**
+Constructs a Default SubConnection Flow Factory
+
+@param aConstructionParameters construction data passed by ECOM
+
+@returns pointer to a constructed factory
+*/
+ {
+ CMbufGobblerFlowFactory* ptr = new (ELeave) CMbufGobblerFlowFactory(TUid::Uid(CMbufGobblerFlowFactory::EUid), *(reinterpret_cast<ESock::CSubConnectionFlowFactoryContainer*>(aConstructionParameters)));
+
+ return ptr;
+ }
+
+
+CMbufGobblerFlowFactory::CMbufGobblerFlowFactory(TUid aFactoryId, ESock::CSubConnectionFlowFactoryContainer& aParentContainer)
+ : CSubConnectionFlowFactoryBase(aFactoryId, aParentContainer)
+/**
+Default SubConnection Flow Factory Constructor
+
+@param aFactoryId ECOM Implementation Id
+@param aParentContainer Object Owner
+*/
+ {
+ }
+
+
+ESock::CSubConnectionFlowBase* CMbufGobblerFlowFactory::DoCreateFlowL(ESock::CProtocolIntfBase* aProtocol, ESock::TFactoryQueryBase& aQuery)
+ {
+ const ESock::TDefaultFlowFactoryQuery& query = static_cast<const ESock::TDefaultFlowFactoryQuery&>(aQuery);
+ ESock::CSubConnectionFlowBase *temp = CMbufGobblerFlow::NewL(*this, query.iSCprId, aProtocol);
+ return temp;
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblerhelper.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,114 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Helper class supplying useful logging functions to the providers in the layer
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblerhelper.h"
+#include "mbufgobblerlog.h"
+#include <elements/mm_node.h>
+#include <comms-infras/ss_nodeinterfaces.h>
+
+
+void MbufGobblerHelper::LogCreateDestroy(const TDesC8& aSubTag, const TDesC8& aNodeName, TAny* aNodePtr, TBool aIsCreate)
+ {
+ // to eradicate warnings on builds for which the LOG macro does nothing (e.g. urel)
+ (void)(aSubTag); (void)(aNodeName); (void)(aNodePtr); (void)(aIsCreate);
+
+ if(aIsCreate)
+ {
+ LOG(aSubTag,_L8("%S (0x%x) Created"), &aNodeName, aNodePtr);
+ }
+ else
+ {
+ LOG(aSubTag,_L8("%S (0x%x) Destroyed"), &aNodeName, aNodePtr);
+ }
+ }
+
+void MbufGobblerHelper::LogMessage(const TDesC8& aSubTag, const TDesC8& aNodeName, TAny* aNodePtr, const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage)
+ {
+ // to eradicate warnings on builds for which the LOG macro does nothing (e.g. urel)
+ (void)(aSubTag); (void)(aNodeName); (void)(aNodePtr);
+
+ TInt msgId = aMessage.MessageId().MessageId();
+ TInt realm = aMessage.MessageId().Realm();
+
+ TUint32 threadid_of_sender = aSender.Thread();
+ Messages::TNodeId nid = Messages::address_cast<Messages::TNodeId>(aSender);
+ TAny* ptr = nid.Ptr(); //this seems to be the only hting that can be used to print out something to address the node
+ TAny* rptr = aRecipient.Ptr();
+ __CFLOG_VAR((KMbufGobblerComponentTag, aSubTag,_L8("Node %S(0x%x) message received (msgid=%d, realm=0x%x), sender(0x%x threadID=%d)"), &aNodeName, rptr, msgId, realm, ptr, threadid_of_sender));
+ }
+
+void MbufGobblerHelper::PrintClientNodes(const TDesC8& aSubTag, const TDesC8& aNodeName, MeshMachine::AMMNodeBase& aNode, TInt& aClientCount)
+ {
+ // to eradicate warnings on builds for which the LOG macro does nothing (e.g. urel)
+ (void)(aSubTag); (void)(aNodeName);
+
+ TUint type = ESock::TCFClientType::EData | ESock::TCFClientType::ECtrl | ESock::TCFClientType::EServProvider | ESock::TCFClientType::ECtrlProvider;
+ TInt totclients = aNode.CountClients<Messages::TDefaultClientMatchPolicy>(type);
+ //only print if count different than previous
+ if(aClientCount != totclients)
+ {
+ aClientCount = totclients;
+ LOG(aSubTag,_L8("Printing Node %S(0x%x) info..."), &aNodeName, aNode.Id().Ptr());
+ LOG(aSubTag, _L8("\tTotal Num clients = %d"), totclients);
+
+ //enumerate through clients
+ Messages::TClientIter<Messages::TDefaultClientMatchPolicy> clientIter(aNode.GetClientIter<Messages::TDefaultClientMatchPolicy>(type));
+ Messages::RNodeInterface* client = clientIter++;
+ while (client)
+ {
+
+ Messages::TNodeId id = client->RecipientId();
+ //look up node type
+ TBuf8<20> typlu;
+ switch(client->Type())
+ {
+ case ESock::TCFClientType::EUnknown:
+ typlu = _L8("EUnknown");
+ break;
+ case ESock::TCFClientType::EData:
+ typlu = _L8("EData");
+ break;
+ case ESock::TCFClientType::ECtrl:
+ typlu = _L8("ECtrl");
+ break;
+ case ESock::TCFClientType::EServProvider:
+ typlu = _L8("EServProvider");
+ break;
+ case ESock::TCFClientType::ECtrlProvider:
+ typlu = _L8("ECtrlProvider");
+ break;
+ default:
+ typlu = _L8("Unknown");
+ break;
+ }
+ LOG(aSubTag, _L8("\t\tClientNode(0x%x) type=%d(%S), flags=%d"), id.Ptr(), client->Type(), &typlu, client->Flags());
+ client = clientIter++;
+ }
+ }
+
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblermetaconnprovider.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,74 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Meta Connection Provider
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblermetaconnprovider.h"
+#include "mbufgobblermetaconnprovideractivities.h"
+#include "mbufgobblerlog.h"
+#include "mbufgobblertestflags.h"
+
+_LIT8(KNodeName, "CMbufGobblerMetaConnectionProvider");
+
+CMbufGobblerMetaConnectionProvider* CMbufGobblerMetaConnectionProvider::NewL(ESock::CMetaConnectionProviderFactoryBase& aFactory,
+ const ESock::TProviderInfo& aProviderInfo)
+ {
+ CMbufGobblerMetaConnectionProvider* self = new (ELeave) CMbufGobblerMetaConnectionProvider(aFactory,aProviderInfo,MbufGobblerMCprActivities::MbufGobblerMCprActivitiesMap::Self());
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+CMbufGobblerMetaConnectionProvider::CMbufGobblerMetaConnectionProvider(ESock::CMetaConnectionProviderFactoryBase& aFactory,
+ const ESock::TProviderInfo& aProviderInfo, const MeshMachine::TNodeActivityMap& aActivityMap)
+ : CCoreMetaConnectionProvider(aFactory, aProviderInfo, aActivityMap)
+ {
+ MBUFGOBBLER_LOG_NODE_CREATE(KMbufGobblerMcprSubTag, CMbufGobblerMetaConnectionProvider, KNodeName, this->NodeId().Ptr());
+ }
+
+void CMbufGobblerMetaConnectionProvider::ConstructL()
+ {
+ CCoreMetaConnectionProvider::ConstructL();
+ MBUFGOBBLER_TEST_DATA_INIT
+ MBUFGOBBLER_TEST_POINT(KMCPrUp,KErrNone)
+ }
+
+CMbufGobblerMetaConnectionProvider::~CMbufGobblerMetaConnectionProvider()
+ {
+ MBUFGOBBLER_LOG_NODE_DESTROY(KMbufGobblerMcprSubTag, CMbufGobblerMetaConnectionProvider, KNodeName, this->NodeId().Ptr());
+ }
+
+void CMbufGobblerMetaConnectionProvider::ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aCFMessage)
+ {
+ LOGMESSAGE(KMbufGobblerMcprSubTag, KNodeName, this, aSender, aRecipient, aCFMessage);
+ LOG_NODE_INFO(KMbufGobblerMcprSubTag, KNodeName, *this, iClientCount);
+ MeshMachine::TNodeContext<CMbufGobblerMetaConnectionProvider> ctx(*this, aCFMessage, aSender, aRecipient);
+ CCoreMetaConnectionProvider::Received(ctx);
+ User::LeaveIfError(ctx.iReturn);
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblermetaconnprovideractivities.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,42 @@
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Meta Connection Provider Mesh Activities
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblermetaconnprovideractivities.h"
+#include "mbufgobblerlog.h"
+
+#include <comms-infras/coremcpractivities.h>
+
+
+namespace MbufGobblerMCprActivities
+{
+DEFINE_ACTIVITY_MAP(MbufGobblerMCprActivitiesMap)
+ //no activities defiend here yet. This define is to show where to put activities
+ //so for now just inherit from core activities
+ACTIVITY_MAP_END_BASE(MCprActivities, coreMCprActivities)
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblermetaconnproviderfactory.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,63 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Factory which creates the Meta Connection Provider
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblermetaconnproviderfactory.h"
+#include "mbufgobblermetaconnprovider.h"
+#include "mbufgobblerlog.h"
+
+
+CMbufGobblerMetaConnectionProviderFactory* CMbufGobblerMetaConnectionProviderFactory::NewL(TAny* aParentContainer)
+ {
+ return new (ELeave) CMbufGobblerMetaConnectionProviderFactory(TUid::Uid(CMbufGobblerMetaConnectionProviderFactory::iUid),
+ *(reinterpret_cast<ESock::CMetaConnectionFactoryContainer*>(aParentContainer)));
+ }
+
+CMbufGobblerMetaConnectionProviderFactory::CMbufGobblerMetaConnectionProviderFactory(TUid aFactoryUid, ESock::CMetaConnectionFactoryContainer& aParentContainer)
+ : CMetaConnectionProviderFactoryBase(aFactoryUid,aParentContainer)
+ {
+ //LOG_NODE_CREATE(KVccMCprFactoryTag, CVccMetaConnectionProviderFactory);
+ }
+
+ESock::ACommsFactoryNodeId* CMbufGobblerMetaConnectionProviderFactory::DoCreateObjectL(ESock::TFactoryQueryBase& aQuery)
+ {
+ //LOG1(_L8("CMbufGobblerMetaConnectionProviderFactory %08x:\tDoCreateObjectL()"), this);
+ const ESock::TMetaConnectionFactoryQuery& query = static_cast<const ESock::TMetaConnectionFactoryQuery&>(aQuery);
+ return CMbufGobblerMetaConnectionProvider::NewL (*this, query.iProviderInfo);
+ }
+
+void CMbufGobblerMetaConnectionProviderFactory::DoEnumerateConnectionsL (RPointerArray<TConnectionInfo>& /*aConnectionInfoPtrArray*/)
+ {
+ User::Leave(KErrNotSupported);
+ }
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblermetaconnproviderstates.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,62 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Meta Connection Provider Mesh States
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblermetaconnproviderstates.h"
+#include "mbufgobblerlog.h"
+
+CMbufGobblerMetaConnectionProviderStates::CMbufGobblerMetaConnectionProviderStates()
+ {
+ // No implementation required
+ }
+
+CMbufGobblerMetaConnectionProviderStates::~CMbufGobblerMetaConnectionProviderStates()
+ {
+ }
+
+CMbufGobblerMetaConnectionProviderStates* CMbufGobblerMetaConnectionProviderStates::NewLC()
+ {
+ CMbufGobblerMetaConnectionProviderStates* self =
+ new (ELeave) CMbufGobblerMetaConnectionProviderStates();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+CMbufGobblerMetaConnectionProviderStates* CMbufGobblerMetaConnectionProviderStates::NewL()
+ {
+ CMbufGobblerMetaConnectionProviderStates* self =
+ CMbufGobblerMetaConnectionProviderStates::NewLC();
+ CleanupStack::Pop(); // self;
+ return self;
+ }
+
+void CMbufGobblerMetaConnectionProviderStates::ConstructL()
+ {
+
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblerproviderselector.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,105 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// MbufGobbler selector. Used by the Tier Manager to select the access point below
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblerproviderselector.h"
+#include "mbufgobblerlog.h"
+
+//extra includes
+#include <ss_select.h> //needed as declares MProviderSelector.
+#include <metadatabase.h> //needed for CommsDat::CMDBSession
+#include <ss_tiermanagerutils.h> //needed for ESock::TierManagerUtils
+#include <commsdattypesv1_1_partner.h> //needed for CCDTierRecord (iTierRecord)
+
+#include "mbufgobbler_panic.h" //needed for ASSERT_DEBUG
+#include "mbufgobblertiermanagerfactory.h" //needed for CMbufGobblerTierManagerFactory::iUid
+#include "mbufgobblermetaconnproviderfactory.h" //needed for CMbufGobblerMetaConnectionProviderFactory::iUid
+
+
+ESock::MProviderSelector* CMbufGobblerProviderSelector::NewL(const Meta::SMetaData& aSelectionPreferences)
+ {
+ //LOG_STATIC_FUNC
+ ASSERT_DEBUG(aSelectionPreferences.IsTypeOf(ESock::TSelectionPrefs::TypeId()), EUnexpectedTSelectionPrefsType);
+
+ CMbufGobblerProviderSelector* self = NULL;
+ self = new(ELeave) CMbufGobblerProviderSelector(aSelectionPreferences);
+ CleanupStack::PushL(self);
+
+ CommsDat::CMDBSession* dbs = CommsDat::CMDBSession::NewLC(KCDVersion1_2);
+
+ self->iTierRecord = ESock::TierManagerUtils::LoadTierRecordL(TUid::Uid(CMbufGobblerTierManagerFactory::iUid), *dbs);
+
+ ASSERT_DEBUG(static_cast<TUint32>(self->iTierRecord->iDefaultAccessPoint)!=0,EUnexpectedTSelectionPrefsType);
+
+ CleanupStack::Pop(dbs);
+ CleanupStack::Pop(self);
+ ASSERT_DEBUG(self->iDbs == NULL, EInvalidNullPtr);
+ self->iDbs = dbs;
+ return self;
+ }
+
+CMbufGobblerProviderSelector::CMbufGobblerProviderSelector(const Meta::SMetaData& aSelectionPreferences)
+: ASimpleSelectorBase(aSelectionPreferences)
+ {
+ }
+
+CMbufGobblerProviderSelector::~CMbufGobblerProviderSelector()
+ {
+ }
+
+void CMbufGobblerProviderSelector::Destroy()
+ {
+ delete this;
+ }
+
+
+/**
+Find or create a Mbufgobbler Meta Connection Provider
+*/
+ESock::CMetaConnectionProviderBase* CMbufGobblerProviderSelector::FindOrCreateProviderL(TUint aAccessPoint)
+ {
+ return ASimpleSelectorBase::FindOrCreateProviderL(aAccessPoint);
+ }
+
+
+/**
+Perform the selection of a Meta Connection Provider
+*/
+void CMbufGobblerProviderSelector::SelectL(ESock::ISelectionNotify& aSelectionNotify)
+ {
+ ASSERT_DEBUG(iDbs, EInvalidNullPtr);
+ ASSERT_DEBUG(iTierRecord, EInvalidNullPtr);
+ TUint32 defaultAccessPoint = iTierRecord->iDefaultAccessPoint;
+
+ //Must be set
+ User::LeaveIfError(defaultAccessPoint!=0 ? KErrNone : KErrCorrupt);
+
+ // Send select complete with the provider, and the final select complete
+ aSelectionNotify.SelectComplete(this, FindOrCreateProviderL(defaultAccessPoint));
+ aSelectionNotify.SelectComplete(this, NULL);
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblersubconnprovider.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,75 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Sub Connection Provider
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblersubconnprovider.h"
+#include "mbufgobblersubconnprovideractivities.h"
+#include "mbufgobblerlog.h"
+#include "mbufgobblertestflags.h"
+
+using namespace MbufGobblerSCprActivities;
+
+_LIT8(KNodeName, "CMbufGobblerSubconnProvider");
+
+CMbufGobblerSubconnProvider* CMbufGobblerSubconnProvider::NewL(ESock::CSubConnectionProviderFactoryBase& aFactory)
+ {
+ CMbufGobblerSubconnProvider* prov = new (ELeave) CMbufGobblerSubconnProvider(aFactory);
+ CleanupStack::PushL(prov);
+ prov->ConstructL();
+ CleanupStack::Pop(prov);
+ return prov;
+ }
+
+CMbufGobblerSubconnProvider::CMbufGobblerSubconnProvider(ESock::CSubConnectionProviderFactoryBase& aFactory)
+: CCoreSubConnectionProvider(aFactory, MbufGobblerSCprActivities::MbufGobblerSCprActivitiesMap::Self())
+ {
+ MBUFGOBBLER_LOG_NODE_CREATE(KMbufGobblerScprSubTag, CMbufGobblerSubconnProvider, KNodeName, this->NodeId().Ptr());
+ }
+
+
+
+void CMbufGobblerSubconnProvider::ConstructL()
+ {
+ CCoreSubConnectionProvider::ConstructL();
+ MBUFGOBBLER_TEST_DATA_INIT
+ MBUFGOBBLER_TEST_POINT(KSCPrUp,KErrNone)
+ }
+
+CMbufGobblerSubconnProvider::~CMbufGobblerSubconnProvider()
+ {
+ MBUFGOBBLER_LOG_NODE_DESTROY(KMbufGobblerScprSubTag, CMbufGobblerSubconnProvider, KNodeName, this->NodeId().Ptr());
+ }
+
+void CMbufGobblerSubconnProvider::ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage)
+ {
+ LOGMESSAGE(KMbufGobblerScprSubTag, KNodeName, this, aSender, aRecipient, aMessage);
+ LOG_NODE_INFO(KMbufGobblerScprSubTag, KNodeName, *this, iClientCount);
+ MeshMachine::TNodeContext<CMbufGobblerSubconnProvider> ctx(*this, aMessage, aSender, aRecipient);
+ Received(ctx);
+ User::LeaveIfError(ctx.iReturn);
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblersubconnprovideractivities.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,43 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Sub Connection Provider Mesh Activities
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblersubconnprovideractivities.h"
+#include "mbufgobblerlog.h"
+
+#include <comms-infras/corescpractivities.h>
+
+
+
+namespace MbufGobblerSCprActivities
+{
+DEFINE_ACTIVITY_MAP(MbufGobblerSCprActivitiesMap)
+ //no activities defiend here yet. This define is to show where to put activities
+ //so for now just inherit from core activities
+ACTIVITY_MAP_END_BASE(SCprActivities, coreSCprActivities)
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblersubconnproviderfactory.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,61 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Sub Connection Provider Factory
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblersubconnproviderfactory.h"
+#include "mbufgobblersubconnprovider.h"
+#include "mbufgobblerlog.h"
+
+CMbufGobblerSubconnProviderFactory* CMbufGobblerSubconnProviderFactory::NewL(TAny* aParentContainer)
+ {
+ return new (ELeave) CMbufGobblerSubconnProviderFactory(TUid::Uid(CMbufGobblerSubconnProviderFactory::iUid),
+ *reinterpret_cast<ESock::CSubConnectionFactoryContainer*>(aParentContainer));
+ }
+
+CMbufGobblerSubconnProviderFactory::CMbufGobblerSubconnProviderFactory(TUid aFactoryId, ESock::CSubConnectionFactoryContainer& aParentContainer)
+ : CSubConnectionProviderFactoryBase(aFactoryId, aParentContainer)
+ {
+ }
+
+ESock::ACommsFactoryNodeId* CMbufGobblerSubconnProviderFactory::DoCreateObjectL(ESock::TFactoryQueryBase& aQuery)
+ {
+ const ESock::TDefaultSCPRFactoryQuery& query = static_cast<const ESock::TDefaultSCPRFactoryQuery&>(aQuery);
+ if (query.iSCPRType == RSubConnection::EAttachToDefault)
+ {
+ return CMbufGobblerSubconnProvider::NewL(*this);
+ }
+ else if(query.iSCPRType == RSubConnection::ECreateNew)
+ {
+ return CMbufGobblerSubconnProvider::NewL(*this);
+ }
+ else
+ {
+ User::Leave(KErrNotSupported);
+ }
+ return NULL;
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblersubconnproviderstates.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,62 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Connection Provider Declaration
+// (control plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblersubconnproviderstates.h"
+#include "mbufgobblerlog.h"
+
+CMbufGobblerSubconnMeshStates::CMbufGobblerSubconnMeshStates()
+ {
+ // No implementation required
+ }
+
+CMbufGobblerSubconnMeshStates::~CMbufGobblerSubconnMeshStates()
+ {
+ }
+
+CMbufGobblerSubconnMeshStates* CMbufGobblerSubconnMeshStates::NewLC()
+ {
+ CMbufGobblerSubconnMeshStates* self =
+ new (ELeave) CMbufGobblerSubconnMeshStates();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+CMbufGobblerSubconnMeshStates* CMbufGobblerSubconnMeshStates::NewL()
+ {
+ CMbufGobblerSubconnMeshStates* self =
+ CMbufGobblerSubconnMeshStates::NewLC();
+ CleanupStack::Pop(); // self;
+ return self;
+ }
+
+void CMbufGobblerSubconnMeshStates::ConstructL()
+ {
+
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblertiermanager.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,87 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Tier Manager
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblertiermanager.h"
+#include "mbufgobblertiermanageractivities.h"
+#include "mbufgobblerlog.h"
+#include "mbufgobblertestflags.h"
+
+#include <comms-infras/coretiermanageractivities.h>
+
+#include "mbufgobblerproviderselector.h"
+
+_LIT8(KNodeName, "CMbufGobblerTierManager");
+
+CMbufGobblerTierManager* CMbufGobblerTierManager::NewL(ESock::CTierManagerFactoryBase& aFactory)
+ {
+ CMbufGobblerTierManager* self = new (ELeave) CMbufGobblerTierManager(aFactory);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+CMbufGobblerTierManager::CMbufGobblerTierManager(ESock::CTierManagerFactoryBase& aFactory)
+: CCoreTierManager(aFactory,MbufGobblerTMActivities::MbufGobblerTMActivitiesMap::Self())
+ {
+ MBUFGOBBLER_LOG_NODE_CREATE(KMbufGobblerTierSubTag, CMbufGobblerTierManager, KNodeName, this->NodeId().Ptr());
+ }
+
+void CMbufGobblerTierManager::ConstructL()
+ {
+ CCoreTierManager::ConstructL();
+ MBUFGOBBLER_TEST_DATA_INIT
+ MBUFGOBBLER_TEST_POINT(KTierUp,KErrNone)
+ }
+
+CMbufGobblerTierManager::~CMbufGobblerTierManager()
+ {
+ MBUFGOBBLER_LOG_NODE_DESTROY(KMbufGobblerTierSubTag, CMbufGobblerTierManager, KNodeName, this->NodeId().Ptr());
+ }
+
+ESock::MProviderSelector* CMbufGobblerTierManager::DoCreateProviderSelectorL(const Meta::SMetaData& aSelectionPreferences)
+ {
+ return CMbufGobblerProviderSelector::NewL(aSelectionPreferences);
+ }
+
+void CMbufGobblerTierManager::ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage)
+ {
+ LOGMESSAGE(KMbufGobblerTierSubTag, KNodeName, this, aSender, aRecipient, aMessage);
+ LOG_NODE_INFO(KMbufGobblerTierSubTag, KNodeName, *this, iClientCount);
+ MeshMachine::TNodeContext<CMbufGobblerTierManager> ctx(*this, aMessage, aSender, aRecipient);
+ CCoreTierManager::Received(ctx);
+ User::LeaveIfError(ctx.iReturn);
+ }
+
+
+
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblertiermanageractivities.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,47 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Tier Manager Mesh Activities
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblertiermanageractivities.h"
+#include "mbufgobblerlog.h"
+
+#include <comms-infras/ss_activities.h>
+#include <elements/mm_activities.h>
+
+#include <comms-infras/coretiermanageractivities.h>
+
+
+
+namespace MbufGobblerTMActivities
+{
+DEFINE_ACTIVITY_MAP(MbufGobblerTMActivitiesMap)
+ //no activities defiend here yet. This define is to show where to put activities
+ //so for now just inherit from core activities
+ACTIVITY_MAP_END_BASE(TMActivities, coreTMActivities)
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblertiermanagerfactory.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,52 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Tier Manager Factory
+// (management plane)
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblertiermanagerfactory.h"
+#include "mbufgobblertiermanager.h"
+#include "mbufgobblerlog.h"
+
+
+
+CMbufGobblerTierManagerFactory* CMbufGobblerTierManagerFactory::NewL(TAny* aParentContainer)
+ {
+ return new (ELeave) CMbufGobblerTierManagerFactory(TUid::Uid(CMbufGobblerTierManagerFactory::iUid),TUid::Uid(CMbufGobblerTierManagerFactory::iUid),*(reinterpret_cast<ESock::CTierManagerFactoryContainer*>(aParentContainer)));
+ }
+
+CMbufGobblerTierManagerFactory::CMbufGobblerTierManagerFactory(TUid aTierTypeId, TUid aFactoryUid, ESock::CTierManagerFactoryContainer& aParentContainer)
+: CTierManagerFactoryBase(aTierTypeId,aFactoryUid,aParentContainer)
+ {
+ }
+
+ESock::ACommsFactoryNodeId* CMbufGobblerTierManagerFactory::DoCreateObjectL(ESock::TFactoryQueryBase& /* aQuery */)
+ {
+ return CMbufGobblerTierManager::NewL(*this);
+ }
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/src/mbufgobblertiermanagerstates.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,63 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Tier Manager Mesh States
+// (management plane)
+//
+//
+//
+// This is a 3-plane comms layer implementation example, which has been customised to be a test layer which gobbles and releases ESOCK MBUFs.
+// The MBuf gobbling functionality can be disabled by undefining the macro SYMBIAN_COMMSFW_MBUF_GOBBLER which is specified in mbufgobblerproviders.mmp.
+// When SYMBIAN_COMMSFW_MBUF_GOBBLER is undefined, the source code specified by mbufgobblerproviders.mmp becomes a pass through layer i.e. it passes the data
+// through to the layer above or below without altering it. This makes it useful as a starting point for implementing your own layers / providers;
+// useful documentation on how to customise your own passthrough layer can be found in ..\docs\MbufGobblerLayer.doc
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#include "mbufgobblertiermanagerstates.h"
+#include "mbufgobblerlog.h"
+
+CMbufGobblerTierManagerMeshStates::CMbufGobblerTierManagerMeshStates()
+ {
+ // No implementation required
+ }
+
+CMbufGobblerTierManagerMeshStates::~CMbufGobblerTierManagerMeshStates()
+ {
+ }
+
+CMbufGobblerTierManagerMeshStates* CMbufGobblerTierManagerMeshStates::NewLC()
+ {
+ CMbufGobblerTierManagerMeshStates* self =
+ new (ELeave) CMbufGobblerTierManagerMeshStates();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+CMbufGobblerTierManagerMeshStates* CMbufGobblerTierManagerMeshStates::NewL()
+ {
+ CMbufGobblerTierManagerMeshStates* self =
+ CMbufGobblerTierManagerMeshStates::NewLC();
+ CleanupStack::Pop(); // self;
+ return self;
+ }
+
+void CMbufGobblerTierManagerMeshStates::ConstructL()
+ {
+
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/te_mbufgobbler/group/bld.inf Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,24 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+PRJ_TESTEXPORTS
+../../data/dummy_static_with_mbufgobbler.cfg z:/testdata/configs/mbufgobbler/dummy_static_with_mbufgobbler.cfg
+../scripts/te_mbufgobbler.script z:/testdata/scripts/mbufgobbler/te_mbufgobbler.script
+
+../group/te_mbufgobbler.iby /epoc32/rom/include/te_mbufgobbler.iby
+
+PRJ_TESTMMPFILES
+te_mbufgobbler.mmp
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/te_mbufgobbler/group/te_mbufgobbler.iby Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,26 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __te_mbufgobbler_IBY__
+#define __te_mbufgobbler_IBY__
+
+#include "mbufgobblerproviders.iby"
+
+file=ABI_DIR\DEBUG_DIR\te_mbufgobbler.exe Sys\Bin\te_mbufgobbler.exe
+
+data=EPOCROOT##epoc32\data\z\testdata\configs\mbufgobbler\dummy_static_with_mbufgobbler.cfg testdata\configs\mbufgobbler\dummy_static_with_mbufgobbler.cfg
+data=EPOCROOT##epoc32\data\z\testdata\scripts\mbufgobbler\te_mbufgobbler.script testdata\scripts\mbufgobbler\te_mbufgobbler.script
+
+#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/te_mbufgobbler/group/te_mbufgobbler.mmp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,49 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Mbufgobbler plugin for TEF. Sends/receives data, and ensures it went through the new layer
+//
+
+TARGET te_mbufgobbler.exe
+
+// NetworkServices because it's using sockets.
+// WriteDeviceData because it needs to define pub/sub properties
+// NetworkControl for RConnection::Stop. Remove this (from here and test code) if stop is not required
+CAPABILITY NetworkServices WriteDeviceData NetworkControl
+TARGETTYPE exe
+UID 0x1000007A 0x10272F9D
+VENDORID 0x70000001
+
+SOURCEPATH ../src
+SOURCE te_mbufgobblerserver.cpp
+SOURCE te_mbufgobblertest.cpp
+
+
+USERINCLUDE ../inc
+USERINCLUDE ../../inc
+SYSTEMINCLUDE /epoc32/include
+SYSTEMINCLUDE /epoc32/include/test
+SYSTEMINCLUDE /epoc32/include/libc
+//SYSTEMINCLUDE /epoc32/include/nkern
+SYSTEMINCLUDE /epoc32/include/platform
+SYSTEMINCLUDE /epoc32/include/platform/comms-infras
+
+//LIBRARY estlib.lib
+LIBRARY euser.lib
+LIBRARY testexecuteutils.lib
+LIBRARY testexecutelogclient.lib
+
+LIBRARY esock.lib
+LIBRARY insock.lib
+
+SMPSAFE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/te_mbufgobbler/inc/te_mbufgobblerserver.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,45 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Test server
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef __MBUFGOBBLER_SERVER_H__
+#define __MBUFGOBBLER_SERVER_H__
+
+#include <test/testexecuteserverbase.h>
+
+enum
+ {
+ KTestWorkerStart = 1,
+ };
+
+
+class CMbufGobblerTestServer : public CTestServer
+ {
+public:
+ typedef CTestServer ParentClass;
+ static CMbufGobblerTestServer* NewL();
+ virtual ~CMbufGobblerTestServer();
+ virtual CTestStep* CreateTestStep(const TDesC& aStepName);
+ };
+
+
+#endif // __MBUFGOBBLER_SERVER_H__
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/te_mbufgobbler/inc/te_mbufgobblertest.h Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,38 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Test steps
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef __MBUFGOBBLER_TEST_H__
+#define __MBUFGOBBLER_TEST_H__
+
+#include <test/testexecutestepbase.h>
+#include "te_mbufgobblerserver.h"
+
+class CMbufGobblerStartupTest : public CTestStep
+ {
+public:
+ CMbufGobblerStartupTest(CMbufGobblerTestServer* aOwner);
+ ~CMbufGobblerStartupTest();
+ virtual TVerdict doTestStepL();
+ };
+
+_LIT(KTestMbufGobblerStartupTest,"MbufGobblerStartupTest");
+
+#endif // __MBUFGOBBLER_TEST_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/te_mbufgobbler/scripts/te_mbufgobbler.script Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,24 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+
+LOAD_SUITE te_mbufgobbler
+
+RUN_SCRIPT z:\TestData\scripts\te_esock_test_unloadesockForced.script
+
+ced -i z:\testdata\configs\mbufgobbler\dummy_static_with_mbufgobbler.cfg
+
+RUN_SCRIPT z:\TestData\scripts\te_esock_test_loadesock.script
+
+RUN_TEST_STEP 50 te_mbufgobbler MbufGobblerStartupTest
+
+RUN_SCRIPT z:\TestData\scripts\te_esock_test_unloadesockForced.script
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/te_mbufgobbler/src/te_mbufgobblerserver.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,117 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Test server
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+
+#include <commdbconnpref.h>
+#include "te_mbufgobblerserver.h"
+#include "te_mbufgobblertest.h"
+
+_LIT(KServerName,"te_mbufgobbler");
+
+CMbufGobblerTestServer* CMbufGobblerTestServer::NewL()
+/**
+ * @return - Instance of the test server
+ * Called inside the MainL() function to create and start the
+ * CTestServer derived server.
+ */
+ {
+ CMbufGobblerTestServer * server = new (ELeave) CMbufGobblerTestServer();
+ CleanupStack::PushL(server);
+
+ // Either use a StartL or ConstructL, the latter will permit
+ // Server Logging.
+
+ //server->StartL(KServerName);
+ server->ConstructL(KServerName); // from CTestBase
+
+ CleanupStack::Pop(server);
+ return server;
+ }
+
+
+/*virtual*/ CMbufGobblerTestServer::~CMbufGobblerTestServer()
+ {
+ }
+
+
+// EKA2 much simpler
+// Just an E32Main and a MainL()
+LOCAL_C void MainL()
+/**
+ * Much simpler, uses the new Rendezvous() call to sync with the client
+ */
+ {
+ // Leave the hooks in for platform security
+#if (defined __DATA_CAGING__)
+ RProcess().DataCaging(RProcess::EDataCagingOn);
+ RProcess().SecureApi(RProcess::ESecureApiOn);
+#endif
+ CActiveScheduler* sched=NULL;
+ sched=new(ELeave) CActiveScheduler;
+ CActiveScheduler::Install(sched);
+ CMbufGobblerTestServer* server = NULL;
+ // Create the CTestServer derived server
+ TRAPD(err,server = CMbufGobblerTestServer::NewL());
+ if (!err)
+ {
+ // Sync with the client and enter the active scheduler
+ RProcess::Rendezvous(KErrNone);
+ sched->Start();
+ }
+ delete server;
+ delete sched;
+ }
+
+// Only a DLL on emulator for typhoon and earlier
+
+GLDEF_C TInt E32Main()
+/**
+ * @return - Standard Epoc error code on exit
+ */
+ {
+ CTrapCleanup* cleanup = CTrapCleanup::New();
+ if (cleanup == NULL)
+ {
+ return KErrNoMemory;
+ }
+ TRAP_IGNORE(MainL());
+ delete cleanup;
+ return KErrNone;
+ }
+
+// Create a thread in the calling process
+// Emulator typhoon and earlier
+
+CTestStep* CMbufGobblerTestServer::CreateTestStep(const TDesC& aStepName)
+/**
+ * @return - A CTestStep derived instance
+ * Implementation of CTestServer pure virtual
+ */
+ {
+ CTestStep* testStep = NULL;
+
+ if (aStepName == KTestMbufGobblerStartupTest)
+ testStep = new CMbufGobblerStartupTest(this);
+// else if (aStepName == (other step name)
+// testStep = new (other test step class)
+
+ return testStep;
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/te_mbufgobbler/src/te_mbufgobblertest.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,126 @@
+// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Test steps
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+
+#include <stdlib.h>
+#include <string.h>
+//#include <profiler.h>
+#include <test/testexecutelog.h>
+#include <in_sock.h>
+#include "te_mbufgobblertest.h"
+#include "mbufgobblertestflags.h"
+
+
+CMbufGobblerStartupTest::CMbufGobblerStartupTest(CMbufGobblerTestServer* /*aOwner*/)
+ {
+ SetTestStepName(KTestMbufGobblerStartupTest);
+ }
+
+CMbufGobblerStartupTest::~CMbufGobblerStartupTest()
+ {
+ }
+
+TVerdict CMbufGobblerStartupTest::doTestStepL()
+ {
+#ifdef _DEBUG
+ SetTestStepResult( EFail );
+
+ User::LeaveIfError(MbufGobblerTestFlags::ActivateTestFlags());
+
+ INFO_PRINTF1(_L(" .. opening socket server.."));
+ RSocketServ sockServ;
+ User::LeaveIfError(sockServ.Connect());
+ CleanupClosePushL(sockServ);
+
+ INFO_PRINTF1(_L(" .. opening connection.."));
+ RConnection conn;
+ User::LeaveIfError(conn.Open(sockServ));
+ CleanupClosePushL(conn);
+ User::LeaveIfError(conn.Start()); // start default connection (defined in commsdat)
+
+ INFO_PRINTF1(_L("Checking Tier up.."));
+ TInt result = MbufGobblerTestFlags::GetResult(MbufGobblerTestFlags::KTierUp);
+ User::LeaveIfError(result);
+ INFO_PRINTF2(_L("Tier started ok [%d]."),result);
+
+ INFO_PRINTF1(_L("Checking MCPr up.."));
+ result = MbufGobblerTestFlags::GetResult(MbufGobblerTestFlags::KMCPrUp);
+ User::LeaveIfError(result);
+ INFO_PRINTF2(_L("MCPr started ok [%d]."),result);
+
+ INFO_PRINTF1(_L("Checking CPr up.."));
+ result = MbufGobblerTestFlags::GetResult(MbufGobblerTestFlags::KCPrUp);
+ User::LeaveIfError(result);
+ INFO_PRINTF2(_L("CPr started ok [%d]."),result);
+
+ INFO_PRINTF1(_L("Checking SCPr up.."));
+ result = MbufGobblerTestFlags::GetResult(MbufGobblerTestFlags::KSCPrUp);
+ User::LeaveIfError(result);
+ INFO_PRINTF2(_L("SCPr started ok [%d]."),result);
+
+ INFO_PRINTF1(_L("Checking Binder up.."));
+ result = MbufGobblerTestFlags::GetResult(MbufGobblerTestFlags::KBind);
+ User::LeaveIfError(result);
+ INFO_PRINTF2(_L("Binder up ok [%d]."),result);
+
+ INFO_PRINTF1(_L(" .. opening socket.."));
+ RSocket sock;
+ User::LeaveIfError(sock.Open(sockServ,KAfInet,KSockDatagram,KProtocolInetUdp,conn));
+ CleanupClosePushL(sock);
+
+ INFO_PRINTF1(_L(" .. sending a packet.."));
+ TBuf8<128> pkt;
+ pkt.SetLength(128);
+ TInetAddr dest;
+ dest.Input(_L("11.22.33.44"));
+ dest.SetPort(100);
+ TRequestStatus status;
+ sock.SendTo(pkt,dest,0,status);
+ User::WaitForRequest(status);
+ User::LeaveIfError(status.Int());
+
+ INFO_PRINTF1(_L("Checking Send occurred.."));
+ result = MbufGobblerTestFlags::GetResult(MbufGobblerTestFlags::KBinderSend);
+ User::LeaveIfError(result);
+ INFO_PRINTF2(_L("Send occurred ok [%d]."),result);
+
+ INFO_PRINTF1(_L("Checking Receive occurred.."));
+ result = MbufGobblerTestFlags::GetResult(MbufGobblerTestFlags::KBinderReceive);
+ User::LeaveIfError(result);
+ INFO_PRINTF2(_L("Receive occurred ok [%d]."),result);
+
+ // Remove this call if its high capability requirement is a problem
+ INFO_PRINTF1(_L(" .. stopping connection.."));
+ User::LeaveIfError(conn.Stop());
+
+ CleanupStack::Pop(); // RSocket close
+ CleanupStack::Pop(); // RConnection close
+ CleanupStack::Pop(); // RSocketServ close
+
+ // return success / failure
+ SetTestStepResult( EPass );
+#else // _DEBUG
+ SetTestStepResult( EPass );
+ INFO_PRINTF1(_L(" .. results for this component only useful in UDEB mode."));
+#endif
+ return TestStepResult();
+ }
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/updatecontentandfilenames.ini Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,36 @@
+[Name]
+# N.B. This must be capitalised correctly as you wish it to appear in the class names.
+Search=MbufGobbler
+Replace=CHANGEME
+
+
+# Uids to replace follow.
+# Don't include the leading 0x (because we need to search and replace on resource filename).
+[DLL UId]
+Search=10272F97
+Replace=CHANGEME
+
+[Tier Impl UId]
+Search=10272F98
+Replace=CHANGEME
+
+[MCPr Impl UId]
+Search=10272F99
+Replace=CHANGEME
+
+[CPr Impl UId]
+Search=10272F9A
+Replace=CHANGEME
+
+[SCPr Impl UId]
+Search=10272F9B
+Replace=CHANGEME
+
+[Flow Impl UId]
+Search=10272F9C
+Replace=CHANGEME
+
+[Test Plug-in UId + Test pub/sub UId]
+Search=10272F9D
+Replace=CHANGEME
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwutils/commsbufs/mbufgobblerlayer/updatecontentandfilenames.py Thu Sep 23 10:22:55 2010 +0100
@@ -0,0 +1,181 @@
+import ConfigParser
+##import io
+import sys
+import os
+import re
+import string
+import shutil
+
+active=1
+iniFileName='updatecontentandfilenames.ini'
+
+def AddSearchReplacePair(src,dst):
+ print "Will replace\t"+src+" with\t"+dst
+ search_replace[src] = dst
+
+def DieAndWait(string):
+ print string
+ sys.exit()
+
+def TranslateString(string):
+# out = string
+# print "\ntranslating: "+string
+ for src in search_replace.keys():
+ dest = search_replace[src]
+# print "src: "+src+" dest: "+dest
+ string = string.replace(src,dest)
+# print "out: "+out
+ return string
+
+
+def RenameIfNecessary(root,file):
+ thisdest = TranslateString(file)
+ if(thisdest != file):
+ print "Renaming ["+file+"] to ["+thisdest+"]"
+ if active:
+ os.rename(os.path.join(root,file),os.path.join(root,thisdest))
+
+def CorrectFile(file):
+ # ini file is special
+ if(file.upper() == iniFileName.upper()):
+ CorrectIniFile(file)
+ else:
+ if(FileContainsSrc(file)):
+ print "Modifying ["+file+"]"
+ TranslateFile(file);
+
+def FileContainsSrc(file):
+# print "looking in ["+file+"]"
+ f = open(file)
+ found = 0
+ for line in f:
+# print "[[["+line
+ for src in search_replace.keys():
+ if(-1 != string.find(line,src)):
+ found = 1
+# print "\n'"+src+"' found in "+line+".. so.."
+ break
+ if(found):
+ break
+ f.close()
+ return found
+
+def TranslateFile(file):
+ if (active == 0):
+ return
+ shutil.copyfile(file,file+".bak")
+ i = open(file+".bak")
+ o = open(file,"w+")
+ for line in i:
+ out=TranslateString(line)
+ o.write(out)
+ i.close()
+ o.close()
+
+def CorrectIniFile(file):
+ if (active == 0):
+ return
+ print "Correcting ini file "+file+" .."
+ shutil.copyfile(file,file+".bak")
+ i = open(file+".bak")
+ o = open(file,"w+")
+ searchfield=''
+ for line in i:
+ ms=re.match('^\s*Search\s*=\s*(.+)',line,flags=re.IGNORECASE)
+ mr=re.match('^\s*Replace\s*=\s*(.+)',line,flags=re.IGNORECASE)
+ if(ms):
+ if(searchfield != ''):
+ print "Multiple search sections found before a replace. fix config file manually"
+ sys.exit()
+ searchfield = ms.group(1)
+ elif(mr):
+ if(searchfield == ''):
+ print "Replace section found before search section. fix config file manually"
+ sys.exit()
+ o.write("Search="+mr.group(1)+"\nReplace=CHANGEME\n")
+ searchfield=''
+ else:
+ o.write(line)
+ i.close()
+ o.close()
+
+
+
+
+config = ConfigParser.ConfigParser()
+config.readfp(open(iniFileName))
+
+print "1. Figuring out search/replace pairs.."
+
+search_replace = {} # empty map
+
+for section in config.sections():
+ src = config.get(section,'Search')
+ if(src == ""):
+ DieAndWait("Error in ini file section '"+section+"': Must specify Search field")
+ if(src in search_replace):
+ DieAndWait("Error in ini file section '"+section+"': Search field '"+src+"' specified more than once")
+ dest = config.get(section,'Replace')
+ if(dest == ""):
+ DieAndWait("Error in ini file section '"+section+"': Must specify Replace field")
+ if(dest == "CHANGEME"):
+ DieAndWait("Error in ini file section '"+section+"': Must specify value to replace '"+src+"' with")
+
+ AddSearchReplacePair(src,dest)
+
+ # deal with upper / lower case variants
+ ucsrc = src.upper()
+ lcsrc = src.lower()
+ lcapsrc = ucsrc[:1]+lcsrc[1:]
+ ucdest = dest.upper()
+ lcdest = dest.lower()
+ lcapdest = ucdest[:1]+lcdest[1:]
+
+ if(ucsrc != src):
+ AddSearchReplacePair(ucsrc,ucdest)
+ if(lcsrc != src):
+ AddSearchReplacePair(lcsrc,lcdest)
+ if(lcapsrc != src and lcapsrc != lcsrc):
+ AddSearchReplacePair(lcapsrc,lcapdest)
+
+print "-----"
+print "2. Scanning for read-only files.."
+
+readOnlyFiles=0;
+for root, dirs, files in os.walk("",topdown=False):
+ for file in files:
+# print "Testing readable : "+root+file
+ try:
+ fh = open(os.path.join(root,file),"a+")
+ fh.close()
+ except:
+ print "Read-only file detected: "+os.path.join(root,file)
+ readOnlyFiles=1
+
+if(readOnlyFiles):
+ print "Can't operate with read-only files present."
+ sys.exit()
+else:
+ print "No read-only files present. Proceeding to search/replace.."
+
+
+print "-----"
+print "3. Renaming files and folders.."
+
+for root, dirs, files in os.walk("",topdown=False):
+# print "ROOT: "+root
+ for dir in dirs:
+ RenameIfNecessary(root,dir)
+ for file in files:
+ RenameIfNecessary(root,file)
+
+
+print "-----"
+print "4. Search/replacing in files.."
+
+for root, dirs, files in os.walk("",topdown=False):
+ for file in files:
+ CorrectFile(os.path.join(root,file))
+
+print "-----"
+print "Done."
--- a/commsfwutils/commsbufs/mbufmgr/src/mb_chn.cpp Mon Sep 13 15:06:46 2010 +0100
+++ b/commsfwutils/commsbufs/mbufmgr/src/mb_chn.cpp Thu Sep 23 10:22:55 2010 +0100
@@ -575,8 +575,8 @@
#endif
TInt splitBufOffset;
TInt splitBufRemainder;
- RMBuf* splitBuf;
- RMBuf* splitBufPrev;
+ RMBuf* splitBuf = NULL;
+ RMBuf* splitBufPrev = NULL;
if(!Goto(aOffset, splitBuf, splitBufOffset, splitBufRemainder, splitBufPrev))
{
Binary file commsprocess/commsrootserverconfig/doc_pub/Comms Process Startup-Config Design Document.doc has changed
Binary file commsprocess/commsrootserverconfig/doc_pub/Root Server API Reference.doc has changed
Binary file commsprocess/commsrootserverconfig/doc_pub/Root Server Design Document.doc has changed
Binary file datacommsserver/esockserver/doc_pub/Design for Flexible Comms Stack.doc has changed
Binary file datacommsserver/esockserver/doc_pub/ESock_Design.doc has changed
Binary file datacommsserver/esockserver/doc_pub/ESock_HowTo.doc has changed
Binary file datacommsserver/esockserver/doc_pub/HOWTO install an esock protocol after market.doc has changed
Binary file datacommsserver/esockserver/doc_pub/NonSeamlessBearerMobility_ClientSideAPIs.doc has changed
Binary file datacommsserver/esockserver/doc_pub/NonSeamlessBearerMobility_ServerSideAPIs.doc has changed
Binary file datacommsserver/esockserver/doc_pub/RConnection API for Connection Management.doc has changed
Binary file datacommsserver/esockserver/doc_pub/RConnection_API.doc has changed
Binary file datacommsserver/esockserver/doc_pub/RSubConnection_API.doc has changed
--- a/datacommsserver/esockserver/inc/es_availability.h Mon Sep 13 15:06:46 2010 +0100
+++ b/datacommsserver/esockserver/inc/es_availability.h Thu Sep 23 10:22:55 2010 +0100
@@ -120,11 +120,11 @@
TUint aScoreDropsBelow = 0,
TUint aScoreIncreasesByMoreThan = 0,
TUint aScoreDecreasesByMoreThan = 0)
- : iFlags(aAnyChange? EAnyChange : ENotAnyChange),
- iScoreExceeds(aScoreExceeds),
+ : iScoreExceeds(aScoreExceeds),
iScoreDropsBelow(aScoreDropsBelow),
iScoreIncreasesByMoreThan(aScoreIncreasesByMoreThan),
- iScoreDecreasesByMoreThan(aScoreDecreasesByMoreThan)
+ iScoreDecreasesByMoreThan(aScoreDecreasesByMoreThan),
+ iFlags(aAnyChange? EAnyChange : ENotAnyChange)
{
__ASSERT_DEBUG(aScoreExceeds >= TAvailabilityStatus::EMinAvailabilityScore && aScoreExceeds <= TAvailabilityStatus::EMaxAvailabilityScore, User::Panic(KSpecAssert_ESock_Availabili, 2));
__ASSERT_DEBUG(aScoreDropsBelow >= TAvailabilityStatus::EMinAvailabilityScore && aScoreDropsBelow <= TAvailabilityStatus::EMaxAvailabilityScore, User::Panic(KSpecAssert_ESock_Availabili, 3));
@@ -139,11 +139,11 @@
@see TChangeScopeFlags.
*/
TAvailabilitySubscriptionOptions(TChangeScopeFlags aFlags)
- : iFlags(aFlags),
- iScoreExceeds(0),
+ : iScoreExceeds(0),
iScoreDropsBelow(0),
iScoreIncreasesByMoreThan(0),
- iScoreDecreasesByMoreThan(0)
+ iScoreDecreasesByMoreThan(0),
+ iFlags(aFlags)
{
ASSERT(aFlags != ENotAnyChange); //illegal to ask for thersholds without specifying them.
}
--- a/datacommsserver/esockserver/test/TE_ESock/scriptfiles/te_esock_wlan.xml Mon Sep 13 15:06:46 2010 +0100
+++ b/datacommsserver/esockserver/test/TE_ESock/scriptfiles/te_esock_wlan.xml Thu Sep 23 10:22:55 2010 +0100
@@ -734,8 +734,8 @@
<IpGateway>0.0.0.0</IpGateway>
<IpAddrFromServer>TRUE</IpAddrFromServer>
<IpAddr>0.0.0.0</IpAddr>
- <IpDNSAddrFromServer>FALSE</IpDNSAddrFromServer>
- <IpNameServer1>10.29.23.7</IpNameServer1>
+ <IpDNSAddrFromServer>TRUE</IpDNSAddrFromServer>
+ <IpNameServer1>0.0.0.0</IpNameServer1>
<IpNameServer2>0.0.0.0</IpNameServer2>
<Ip6DnsAddrFromServer>TRUE</Ip6DnsAddrFromServer>
<Ip6NameServer1>0:0:0:0:0:0:0:0</Ip6NameServer1>
@@ -751,9 +751,9 @@
<IpGateway>194.72.6.1</IpGateway>
<IpAddr>192.168.0.100</IpAddr>
<IpAddrFromServer>TRUE</IpAddrFromServer>
- <IpDNSAddrFromServer>FALSE</IpDNSAddrFromServer>
- <IpNameServer1>194.72.6.51</IpNameServer1>
- <IpNameServer2>194.72.6.52</IpNameServer2>
+ <IpDNSAddrFromServer>TRUE</IpDNSAddrFromServer>
+ <IpNameServer1>0.0.0.0</IpNameServer1>
+ <IpNameServer2>0.0.0.0</IpNameServer2>
</LANService>
<LANService operation="add">
<Name>Ethernet (IPv6 static DNS)</Name>
Binary file datacommsserver/esockserver/test/TE_EsockTestSteps/doc_pub/TE_EsockTestSteps_Test Specification.doc has changed
Binary file datacommsserver/esockserver/test/TE_RConnection/doc_pub/GT0429 - PDP Contention Management Test Specification.doc has changed
Binary file datacommsserver/esockserver/test/TE_RConnection/doc_pub/SGL.GT0253.202 Non-Seamless Bearer Mobility - Test Spec.doc has changed
Binary file datacommsserver/esockserver/test/TE_RConnection/doc_pub/SGL.GT0253.220 Data Monitoring - Test Specification.doc has changed
Binary file datacommsserver/esockserver/test/TE_RConnection/doc_pub/TE_RConnection_Test_Specification.doc has changed
Binary file datacommsserver/esockserver/test/TE_RConnectionServ/doc_pub/RConnectionServ API test specification.doc has changed
Binary file datacommsserver/esockserver/test/TE_RSubconnection/doc_pub/TE_RSubConnection_Test_Specification.doc has changed
Binary file serialserver/c32serialserver/Test/TE_C32/doc_pub/C32_How_to_test.doc has changed
Binary file serialserver/c32serialserver/Test/TE_C32/doc_pub/C32_Test_Specification.doc has changed
Binary file serialserver/c32serialserver/Test/TE_C32/doc_pub/C32_Unit_Test_Specification.doc has changed
Binary file serialserver/c32serialserver/Test/te_C32Performance/doc_pub/C32 Performance Test Design.doc has changed
Binary file serialserver/c32serialserver/doc_pub/C32API.doc has changed
Binary file serialserver/c32serialserver/doc_pub/C32_Design_Document.doc has changed
Binary file serialserver/c32serialserver/doc_pub/C32_Design_Document_v1.doc has changed
Binary file serialserver/c32serialserver/doc_pub/C32_Heap_Check_Migration.doc has changed
Binary file serialserver/c32serialserver/doc_pub/How_To_configure_C32.doc has changed
--- a/serialserver/c32serialserver/group/bld.inf Mon Sep 13 15:06:46 2010 +0100
+++ b/serialserver/c32serialserver/group/bld.inf Thu Sep 23 10:22:55 2010 +0100
@@ -35,7 +35,7 @@
c32.iby /epoc32/rom/include/c32.iby
-../documentation/C32API.doc /epoc32/engdoc/c32/c32api.doc
+../doc_pub/C32API.doc /epoc32/engdoc/c32/c32api.doc
PRJ_TESTEXPORTS
--- a/serialserver/c32serialserver/group/ser-comms_c32.mrp Mon Sep 13 15:06:46 2010 +0100
+++ b/serialserver/c32serialserver/group/ser-comms_c32.mrp Thu Sep 23 10:22:55 2010 +0100
@@ -1,7 +1,7 @@
component ser-comms_c32
source \sf\os\commsfw\serialserver\c32serialserver\bwins
source \sf\os\commsfw\serialserver\c32serialserver\CCOMM
-source \sf\os\commsfw\serialserver\c32serialserver\documentation
+source \sf\os\commsfw\serialserver\c32serialserver\doc_pub
source \sf\os\commsfw\serialserver\c32serialserver\eabi
source \sf\os\commsfw\serialserver\c32serialserver\group
source \sf\os\commsfw\serialserver\c32serialserver\INC
@@ -12,7 +12,7 @@
exports \sf\os\commsfw\serialserver\c32serialserver\group
--export_file \sf\os\commsfw\serialserver\c32serialserver\documentation\C32API.doc \epoc32\engdoc\c32\C32API.doc
+-export_file \sf\os\commsfw\serialserver\c32serialserver\doc_pub\C32API.doc \epoc32\engdoc\c32\C32API.doc
notes_source \component_defs\release.src
Binary file serialserver/c32serialserverdocs/doc_pub/SerComms_Subsystem_Architectural_Description.doc has changed
Binary file serialserver/c32serialserverdocs/doc_pub/SerComms_Subsystem_Functional_Specification.doc has changed