datacommsserver/esockserver/test/TE_EsockTestSteps/inc/EsockTestBase.h
changeset 0 dfb7c4ff071f
child 1 21d2ab05f085
equal deleted inserted replaced
-1:000000000000 0:dfb7c4ff071f
       
     1 /**
       
     2 * Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 /**
       
    21  @file EsockTestBase.h
       
    22 */
       
    23 
       
    24 #if (!defined ESOCKTESTBASE_H)
       
    25 #define ESOCKTESTBASE_H
       
    26 
       
    27 #include <e32base.h>
       
    28 #include <in_sock.h>
       
    29 #include <es_sock.h>
       
    30 #include "SimpleMapTemplate.h"
       
    31 #include <ip_subconparams.h>
       
    32 #include <etel.h>
       
    33 #include <etelmm.h>
       
    34 #include <simtsy.h>
       
    35 #include <rsshared.h>
       
    36 #include "SimTsySpecificDefs.h"
       
    37 
       
    38 #include <test/testexecutestepbase.h>
       
    39 
       
    40 #include <comms-infras/es_mobility_apiext.h>
       
    41 #include <comms-infras/es_datamon_apiext.h>
       
    42 //include <comms-infras/cs_availability_apiext.h>
       
    43 #include <elements/sd_mintercept_macro.h>
       
    44 //#include "MobilitySimulation.h"
       
    45 #include <comms-infras/es_connectionserv.h>
       
    46 
       
    47 class CConnServNotificationWatcher;
       
    48 
       
    49 enum TSocketDataTransform
       
    50 	{
       
    51 	// Basic addition transformations
       
    52 	ETransformDataNone, ETransformDataAddOne, ETransfromDataAddTwo,
       
    53 	// Others
       
    54 	ETransformDataXor = 0x80
       
    55 	};
       
    56 
       
    57 enum TBearerAvailabilityChangeType
       
    58 	{
       
    59 	EAvailability_MakeAvailable, EAvailability_MakeUnavailable, EAvailability_Disconnect
       
    60 	};
       
    61 
       
    62 //to remove
       
    63 //#include "dummyrsubconnection_todelete.h"
       
    64 
       
    65 
       
    66 ///////////////////////////////////////////////////////////////////////////////
       
    67 //TMigrateToPreferredCarrierParams - container for parameters for accepting a move for mobility
       
    68 
       
    69 struct TMigrateToPreferredCarrierParams
       
    70 	{
       
    71 	void Reset();
       
    72 
       
    73 	TPtrC iName;
       
    74 	TPtrC iMobilityApiName;
       
    75 	};
       
    76 
       
    77 ///////////////////////////////////////////////////////////////////////////////
       
    78 //TSocketDataCheckParams - container for parameters for checking data on a socket
       
    79 
       
    80 struct TSocketDataCheckParams
       
    81     {
       
    82     void Reset();
       
    83 
       
    84     TPtrC iSocketCheckName;
       
    85     TPtrC iSocketName;
       
    86     TSocketDataTransform iTransformType;
       
    87     TBool iErrorExpected;
       
    88 
       
    89     };
       
    90 
       
    91 
       
    92 ///////////////////////////////////////////////////////////////////////////////
       
    93 //TRSocketParams - container for parameters (from an .ini file)
       
    94 //needed for operations on a sockets
       
    95 
       
    96 struct TRSocketParams
       
    97     {
       
    98     void Reset();
       
    99 
       
   100     TPtrC iSockServName;
       
   101     TPtrC iConnectionName;
       
   102     TPtrC iSubconnectionName;
       
   103     TPtrC iSocketName;
       
   104     TPtrC iProtocolName;
       
   105 
       
   106     TUint iSocketType;
       
   107    	TUint iProtocol;
       
   108 	TInt iPacketSize;
       
   109 	TInt iNrOfPackets;
       
   110    	TInetAddr iLocalIP;
       
   111    	TInetAddr iRemoteIP;
       
   112    	RSocket::TShutdown iShutdownType;
       
   113 
       
   114     // Payload colouring
       
   115     TBool iPayloadColouringIsEnabled;
       
   116     TInt iPayloadColour;
       
   117     };
       
   118 
       
   119 struct TRSocketIoctlParams
       
   120     {
       
   121     void Reset();
       
   122 
       
   123     TPtrC iSocketName;
       
   124 	TInt iIoctlCommand;
       
   125 	TInt iIoctlLevel;
       
   126 	TPtrC iExpectedIoctlOutput;
       
   127     };
       
   128 
       
   129 struct TRSocketGetOptParams
       
   130     {
       
   131     void Reset();
       
   132 
       
   133     TPtrC iSocketName;
       
   134 	TInt iOptionName;
       
   135 	TInt iOptionLevel;
       
   136 	TPtrC iExpectedOptionOutputText;
       
   137 	TInt iExpectedOptionOutputValue;
       
   138 	TBool iTextExpected;
       
   139 	TBool iValueExpected;
       
   140     };
       
   141 
       
   142 struct TProtocolDescriptionParams
       
   143 	{
       
   144 	void Reset();
       
   145 	static TInt FetchDescription(TProtocolDescriptionParams& aProtocolParams, CTestStep& aTestStep);
       
   146 	TBool MatchesExpected(TProtocolDesc& aProtocolDescription);
       
   147 
       
   148 	TProtocolDescriptionParams();
       
   149 	
       
   150 	struct TProtocolDescParamsExpected
       
   151 		{
       
   152 		void Reset();
       
   153 
       
   154 		TBool NoneExpected();
       
   155 		TBool AllExpected();
       
   156 
       
   157 		TBool iName;
       
   158 		TBool iAddrFamily;
       
   159 		TBool iProtocol;
       
   160 		TBool iSockType;
       
   161 		TBool iVersion;
       
   162 		TBool iByteOrder;
       
   163 		TBool iServiceInfo;
       
   164 		TBool iNamingServices;
       
   165 		TBool iSecurity;
       
   166 		TBool iMessageSize;
       
   167 		};
       
   168 
       
   169 	TProtocolDesc iValues;
       
   170 	TProtocolDescParamsExpected iValuesGiven;
       
   171 	};
       
   172 
       
   173 struct TCompareIntegersParams
       
   174 	{
       
   175     void Reset();
       
   176     TPtrC iValue1;
       
   177     TPtrC iValue2;
       
   178 	TInt iDifference;	
       
   179 	};
       
   180 
       
   181 struct TSocketProtocolDescriptionParams
       
   182 	{
       
   183 	void Reset();
       
   184     TPtrC iSocketName;
       
   185 	TProtocolDescriptionParams iProtocolDescParams;
       
   186 	};
       
   187 
       
   188 struct TSocketServFindProtocolParams
       
   189 	{
       
   190     void Reset();
       
   191     TPtrC iSocketServName;
       
   192 	TProtocolDescriptionParams iProtocolDescParams;
       
   193 	};
       
   194 
       
   195 struct TSocketServGetProtocolInfoParams
       
   196 	{
       
   197 	void Reset();
       
   198     TPtrC iSocketServName;
       
   199 	TInt iProtocolIndex;
       
   200 	TProtocolDescriptionParams iProtocolDescParams;
       
   201 	};
       
   202 
       
   203 struct TSocketServStartStopProtocolParams
       
   204 	{
       
   205 	void Reset();
       
   206     TPtrC iSocketServName;
       
   207 	TInt iAddrFamily;
       
   208 	TInt iProtocol;
       
   209 	TInt iSockType;
       
   210 	};
       
   211 
       
   212 ///////////////////////////////////////////////////////////////////////////////
       
   213 //TSocketServerNumProtocolsParams - container for paramters for checking the number of procotols on a socket server instance
       
   214 
       
   215 struct TSocketServerNumProtocolsParams
       
   216 	{
       
   217 	void Reset();
       
   218 
       
   219 	TPtrC iSocketServName;
       
   220 	TInt iNumberExpected;
       
   221 	TPtrC iSavedAsName;
       
   222 	TBool iExpected;
       
   223 	TBool iToBeSaved;
       
   224 	};
       
   225 
       
   226 
       
   227 ///////////////////////////////////////////////////////////////////////////////
       
   228 //TRConnectionParams - container for parameters (from an .ini file)
       
   229 //needed for operations on a connections
       
   230 
       
   231 struct TRConnectionParams
       
   232     {
       
   233     void Reset();
       
   234 
       
   235     TPtrC iSockServName;
       
   236     TPtrC iConnectionName;
       
   237     TPtrC iAttachToConnectionName;
       
   238     TInt iConnectionType;
       
   239 
       
   240   	TUint iBearer;
       
   241 	TInt iIAP;
       
   242 	TInt iNET;
       
   243 	TInt iSNAP;
       
   244 	TInt iDummy;
       
   245     RConnection::TConnStopType iConnStopType;
       
   246 	RConnection::TConnAttachType iConnAttachType;
       
   247     TBool iStartWithOldPreferences;
       
   248     TBool iStartWithSnapPreferences;
       
   249     TBool iStartWithConPrefList;
       
   250     TBool iStartWithDummy;
       
   251     TBool iStartAuto;
       
   252     TBool iAsynch;    
       
   253     };
       
   254 
       
   255 struct TCreateBearerAvailabilitySimulatorParams
       
   256 {
       
   257 	void Reset();
       
   258 
       
   259 	TPtrC iAvailSimuName;
       
   260 	TInt iBearerNumber;
       
   261 };
       
   262 
       
   263 struct TChangeBearerAvailabilityParams
       
   264 {
       
   265 	void Reset();
       
   266 
       
   267 	TPtrC iName;
       
   268 	TPtrC iAvailSimuName;
       
   269 	TBearerAvailabilityChangeType iChangeToMake;
       
   270 };
       
   271 
       
   272 
       
   273 ///////////////////////////////////////////////////////////////////////////////
       
   274 //TRSubConnectionParams - container for parameters (from an .ini file)
       
   275 //needed for operations on a subconnections
       
   276 
       
   277 struct TRSubConnectionParams
       
   278     {
       
   279     void Reset();
       
   280 
       
   281     TPtrC iSockServName;
       
   282     TPtrC iConnectionName;
       
   283     TPtrC iSubConnectionName;
       
   284     TPtrC iSocketName;
       
   285 
       
   286 	TPtrC iSubConnectionParamsName;
       
   287 	TPtrC iSubConnectionEventName;
       
   288 
       
   289     RSubConnection::TSubConnType iSubConnType;
       
   290     };
       
   291 
       
   292 struct TCancelConnectionNotificationParams
       
   293 	{
       
   294 	void Reset();
       
   295 
       
   296 	TPtrC iName;
       
   297 	TPtrC iConnMgrApiName;
       
   298 	};
       
   299 
       
   300 struct TGetConnectionNotificationAPIParams
       
   301 	{
       
   302 	void Reset();
       
   303 
       
   304 	TPtrC iName;
       
   305 	};
       
   306 
       
   307 struct TGetRConnMgrBearerCountParams
       
   308 	{
       
   309 	void Reset();
       
   310 
       
   311 	TPtrC iName;
       
   312 	TInt iExpectedCount;
       
   313 	};
       
   314 
       
   315 struct TOpenRCommsManagerServerParams
       
   316 	{
       
   317 	void Reset();
       
   318 
       
   319 	TPtrC iName;
       
   320 	};
       
   321 
       
   322 struct TSelectRConnectionManagerTierParams
       
   323 	{
       
   324 	void Reset();
       
   325 
       
   326 	TPtrC iName;
       
   327 	TInt iTierId;
       
   328 	};
       
   329 
       
   330 ///////////////////////////////////////////////////////////////////////////////
       
   331 //TEsockTestEventContainer - encapsulates all necessary RConnection
       
   332 //or RSubConnection event data so that it can be conveniently stored in a map.
       
   333 struct TEventContainerParams
       
   334     {
       
   335 	void Reset();
       
   336 
       
   337 	TPtrC iEventName;
       
   338 	TPtrC iSubConnectionName;
       
   339 	TPtrC iConnectionName;
       
   340 	TPtrC iMobilityExtName;
       
   341 	TPtrC iAvailabilityExtName;
       
   342 	TPtrC iConnectionManagerExtName;
       
   343 	TPtrC iExtensionName;
       
   344 	TBool iAllEvents;
       
   345 	TBool iGenericEvents;
       
   346 	TUint32 iEventMask;
       
   347 	TInt iTimeoutMiliSecs;
       
   348     };
       
   349 
       
   350 struct TCheckAvailabilityParams
       
   351 {
       
   352 	void Reset();
       
   353 
       
   354 	TPtrC iAvailabilityCheckName;
       
   355 	TPtrC iExtensionApiName;
       
   356 	TBool iExpectedAvailability;
       
   357 };
       
   358 
       
   359 ///////////////////////////////////////////////////////////////////////////////
       
   360 // TEsockTestDataMonitoringEventContainer - encapsulates all necessary data monitoring
       
   361 // event data so that it can be conveniently stored in a map.
       
   362 struct TDataMonitorEventParams
       
   363 	{
       
   364 	void Reset();
       
   365 	TPtrC& ConnOrSubConnName();
       
   366 
       
   367 	TBuf<100> iEventName;
       
   368 	TPtrC iConnectionName;
       
   369 	TPtrC iSubConnectionName;
       
   370 	TPtrC iDataMonitorName;
       
   371 
       
   372 	TUint iDelta;
       
   373 	TUint iMinExpectedVolume;
       
   374 	TBool iExpectTimeout;
       
   375 	TInt iReceivedDataVolumeCondition;
       
   376 	TInt iSentDataVolumeCondition;
       
   377 	TPtrC iCompareAgainstName;
       
   378 	TPtrC iSaveResultsName;
       
   379 	};
       
   380 
       
   381 
       
   382 ///////////////////////////////////////////////////////////////////////////////
       
   383 // TEsockTestDataMonitoringResponse - encapsulates the information required
       
   384 // to receive and process a response to a data monitoring event.
       
   385 class TEsockTestDataMonitoringResponse
       
   386 	{
       
   387 public:
       
   388 	TEsockTestDataMonitoringResponse() : iComplete(EFalse)  {}
       
   389 	TBuf8<KNotificationEventMaxSize> iBuffer;
       
   390 	TInt iTimeout;
       
   391 	TRequestStatus iStatus;
       
   392 	TBool iComplete;
       
   393 	};
       
   394 
       
   395 
       
   396 class TEsockTestEventContainer
       
   397 	{
       
   398 public:
       
   399     ~TEsockTestEventContainer();
       
   400 
       
   401     RSubConnection::TEventFilter iSubconnEventFilter;
       
   402     TBuf8<KNotificationEventMaxSize> iEventNotifBuf;
       
   403     TNifProgressBuf iProgressBuf;
       
   404     TRequestStatus iEventReceived;
       
   405 	};
       
   406 
       
   407 class TDataMonitorStats
       
   408 	{
       
   409 public:
       
   410 	TUint iReceivedBytes;
       
   411 	TUint iSentBytes;
       
   412 	};
       
   413 
       
   414 ///////////////////////////////////////////////////////////////////////////////
       
   415 //TSimTsy - encapsulates all necessary sim tsy objects and data
       
   416 //so that it can be conveniently stored in a map
       
   417 
       
   418 
       
   419 struct TSimTsy
       
   420     {
       
   421     TInt Start();
       
   422     void Stop();
       
   423     TInt SetTestNumber(TInt aTestSectionNumber);
       
   424 
       
   425     RTelServer iServer;
       
   426     RMobilePhone iPhone;
       
   427     };
       
   428 
       
   429 
       
   430 ///////////////////////////////////////////////////////////////////////////////
       
   431 //TRSimtsyEventParams - container for parameters (from an .ini file)
       
   432 
       
   433 struct TSimTsyEventParams
       
   434     {
       
   435     void Reset();
       
   436 
       
   437     TPtrC iConnectionName;
       
   438     TPtrC iSimTsyEventName;
       
   439     TPtrC iEventName;
       
   440     TUint iEventKey;
       
   441     TInt  iEventIndex;
       
   442 
       
   443     };
       
   444 
       
   445 
       
   446 ///////////////////////////////////////////////////////////////////////////////
       
   447 //CCEsockTestBase
       
   448 class CCEsockTestBase
       
   449 	{
       
   450 public:
       
   451 	virtual ~CCEsockTestBase();
       
   452 
       
   453 public:
       
   454     //socket server functions library
       
   455 	TInt CreateSocketServer(const TDesC& aSockServName);
       
   456 	TInt ConnectSocketServer(const TDesC& aSockServName);
       
   457 	TInt CloseSocketServer(const TDesC& aSockServName);
       
   458 	TInt SocketServerNumProtocols(TSocketServerNumProtocolsParams& aParams, TInt& aNumProtocols);
       
   459 	TInt SocketServerFindProtocol(TSocketServFindProtocolParams& aParams, TProtocolDesc& aProtocolDescription);
       
   460 	TInt SocketServerGetProtocolInfo(TSocketServFindProtocolParams& aParams, TProtocolDesc& aProtocolDescription);
       
   461 	TInt SocketServerGetProtocolInfo(TSocketServGetProtocolInfoParams& aParams, TProtocolDesc& aProtocolDescription);
       
   462 	TInt SocketServerStartProtocol(TSocketServStartStopProtocolParams& aParams, TRequestStatus& aStatus);
       
   463 	TInt SocketServerStopProtocol(TSocketServStartStopProtocolParams& aParams, TRequestStatus& aStatus);
       
   464 
       
   465 	TInt __DbgFailNext(const TDesC& aSockServName, TInt aCount);
       
   466 	TBool __DbgCheckFailNext(const TDesC& aSockServName);
       
   467 
       
   468     //socket functions library
       
   469     RSocket* FindSocket(const TDesC& aSocketName);
       
   470     TInt CreateSocket(const TDesC& aSocketName);
       
   471     TInt OpenSocket(const TRSocketParams& aParams);
       
   472     TInt BindSocket(const TRSocketParams& aParams);
       
   473     TInt ConnectSocket(TRSocketParams& aParams, TRequestStatus& aRequestStatus);
       
   474     TInt CancelConnectSocket(const TRSocketParams& aParams);
       
   475     void SendAndReceiveDataL(const TRSocketParams& aParams);
       
   476     TInt CloseSocket(const TDesC& aSocketName);
       
   477     TInt ShutdownSocket(const TRSocketParams& aParams, TRequestStatus& aRequestStatus);
       
   478 	TInt IoctlSocket(const TRSocketIoctlParams& aParams, TDes8& aIoctlOutput, TRequestStatus& aRequestStatus);
       
   479 	TInt SendAndReceiveDataAndVerifyL(const TSocketDataCheckParams& /*aParams*/);
       
   480 	TInt ProtocolDescription(
       
   481 		const TSocketProtocolDescriptionParams& aParams,
       
   482 		TProtocolDesc& aProtocolDescriptionOutput);
       
   483 	TInt GetOptSocket(const TRSocketGetOptParams& aParams, TDes8& aGetOptOutput);
       
   484 	TInt GetOptSocket(const TRSocketGetOptParams& aParams, TInt& aGetOptOutput);
       
   485 
       
   486     //connection functions library
       
   487     RConnection* FindConnection(const TDesC& aConnectionName);
       
   488     TInt CreateConnection(const TDesC& aConnectionName);
       
   489     TInt OpenConnection(const TRConnectionParams& aParams);
       
   490     TInt StartConnection(RConnection& aConn, TConnPref& aPrefs, TRequestStatus* aRequestStatus);
       
   491     TInt StartConnection(TRConnectionParams& aParams);
       
   492 	TInt AttachToConnection(const TRConnectionParams& aParams);
       
   493     TInt WaitforIncomingConnection(const TRSubConnectionParams& aParams);
       
   494     TInt WaitforIncomingConnection(const TRSubConnectionParams& aParams,TRequestStatus& aStatus);
       
   495     TInt AcceptIncomingConnection(const TRSubConnectionParams& aParams);
       
   496    	TInt AsyncAcceptIncomingConnection(const TRSubConnectionParams& aParams, TRequestStatus& reqStat);
       
   497     TInt RejectIncomingConnection(const TRSubConnectionParams& aParams);
       
   498     TInt CancelIncomingConnection(const TRSubConnectionParams& aParams);
       
   499     TInt StopConnection(const TRConnectionParams& aParams);
       
   500     TInt CloseConnection(const TDesC& aConnectionName);
       
   501 	TInt SelectConnection(const TRConnectionParams& aParams, TRequestStatus aStatus);
       
   502     TInt CreateAvailabilityExtension(const TDesC& aAvailabilityExtensionName);
       
   503     TInt RegisterForProgressNotificationEvent(const TEventContainerParams& aParams);
       
   504     TInt ReceiveProgressNotificationEvent(TNifProgress*& aNifProgress, const TDesC& aEventName, TUint aTimeoutInMiliSec = 0);
       
   505 
       
   506     //mobility extensions
       
   507     RCommsMobilityApiExt* FindMobilityExtension(const TDesC& aMobilityExtensionName);
       
   508     TInt CreateMobilityExtension(const TDesC& aMobilityExtensionName);
       
   509 
       
   510 	// Availability extensions
       
   511 #if 0
       
   512 	CCommsAvailabilityApiExt* FindAvailabilityExtension(const TDesC& aAvailabilityExtensionName);
       
   513 #endif
       
   514 
       
   515     // Data monitoring extensions
       
   516     RCommsDataMonitoringApiExt* FindDataMonitoringExtension(const TDataMonitorEventParams& aParams);
       
   517     TInt CreateDataMonitoringExtension(const TDataMonitorEventParams& aParams);
       
   518     TEsockTestDataMonitoringResponse* FindDataMonitoringResponder(const TDataMonitorEventParams& aParams);
       
   519 	TEsockTestDataMonitoringResponse* FindOrCreateDataMonitoringResponder(const TDataMonitorEventParams& aParams);
       
   520 	TInt OpenDataMonitoringExtension(const TDataMonitorEventParams& aParams);
       
   521 	TInt CloseDataMonitoringExtension(const TDataMonitorEventParams& aParams);
       
   522 	TInt RequestDataTransferred(const TDataMonitorEventParams& aParams, TDes8& aResponseBuf);
       
   523 	TInt RequestDataReceivedNotification(const TDataMonitorEventParams& aParams);
       
   524 	TInt CancelDataReceivedNotificationRequest(const TDataMonitorEventParams& aParams);
       
   525 	TInt RequestDataSentNotification(const TDataMonitorEventParams& aParams);
       
   526 	TInt CancelDataSentNotificationRequest(const TDataMonitorEventParams& aParams);
       
   527 	TInt ReceiveDataSentNotification(const TDataMonitorEventParams& aParams, TDesC8*& aResponseBuf);
       
   528 	TInt ReceiveDataReceivedNotification(const TDataMonitorEventParams& aParams, TDesC8*& aResponseBuf);
       
   529 	TDataMonitorStats* FetchSavedDataMonitorStats(const TDesC& aDataMonitorStatsSavedName);
       
   530 	TInt SaveDataMonitorStats(const TDesC& aSavedName, TDataMonitorStats& aStatsToSave);
       
   531     //subconnection functions library
       
   532     RSubConnection* FindSubConnection(const TDesC& aSubConnectionName);
       
   533     TInt CreateSubConnection(const TDesC& aSubConnectionName);
       
   534     TInt OpenSubConnection(const TRSubConnectionParams& aParams);
       
   535     TInt CloseSubConnection(const TDesC& aSubConnectionName);
       
   536     TInt AddSocketToSubConnection(const TRSubConnectionParams& aParams, TRequestStatus& aStatus);
       
   537     TInt RemoveSocketFromSubConnection(const TRSubConnectionParams& aParams, TRequestStatus& aStatus);
       
   538 	TInt SetSubConnectionParameters(const TRSubConnectionParams& aParams);
       
   539 	TInt GetSubConnectionParameters(const TRSubConnectionParams& aParams);
       
   540 
       
   541 	//Sblp functions
       
   542 	TFlowId* FindTFlowId(const TDesC& aFlowId);
       
   543 	TInt CreateTFlowId(const TDesC& aSubConSblpParamsName);
       
   544 
       
   545 	//subconnection parameters
       
   546 	TInt CreateRSubConnectionParams(const TDesC& aSubConParamsName);
       
   547 	TInt CloseRSubConnectionParams(const TDesC& aSubConParamsName);
       
   548 	RSubConParameterBundle* FindRSubConnectionParams(const TDesC& aSubConParamsName);
       
   549 	CSubConParameterFamily* FindRSubConnectionParameterFamily(const TDesC& aSubConParamsName, const TInt aFamilyId);
       
   550 
       
   551     //subconnection events
       
   552     //(each event notification request is encapsulated in an "EventContainer"
       
   553     //that can be easily stored in a map.)
       
   554 	TInt RegisterForRSubConnectionEvent(const TEventContainerParams& aParams);
       
   555 	TInt ReceiveRSubConnectionEvent(TNotificationEventBuf*& aBufferPtr, const TDesC& aSubConEventName);
       
   556 
       
   557 
       
   558     // General
       
   559     //--------
       
   560 	TInt CompareIntegerValues(const TCompareIntegersParams& aParams, TInt& aDifference);
       
   561 	TInt AwaitRequestStatus(const TDesC& aStatusName);
       
   562 	
       
   563     // Mobility
       
   564     //---------
       
   565     // Mobility notifications
       
   566     TInt RegisterForMobilityNotification(const TEventContainerParams& aParams);
       
   567 	TInt ReceiveMobilityNotification(TDesC8*& aBufferPtr, const TEventContainerParams& aParams);
       
   568 
       
   569 	TInt IgnorePreferredCarrier(const TMigrateToPreferredCarrierParams& aParams);
       
   570 	TInt MigrateToPreferredCarrier(const TMigrateToPreferredCarrierParams& aParams);
       
   571 	TInt NewCarrierAccepted(const TMigrateToPreferredCarrierParams& aParams);
       
   572 	TInt NewCarrierRejected(const TMigrateToPreferredCarrierParams& aParams);
       
   573 
       
   574 	// Availability
       
   575 	//-------------
       
   576 	// Availability notifications
       
   577 	TInt RegisterForAvailabilityNotification(const TEventContainerParams& aParams);
       
   578 	TInt ReceiveAvailabilityNotification(TDesC8*& aBufferPtr, const TDesC& aEventName);
       
   579 	TInt CheckConnectionForAvailability(TDesC8*& aBufferPtr, const TCheckAvailabilityParams& aParams);
       
   580 
       
   581 	// Availability simulation
       
   582 	TInt ChangeBearerAvailability(const TChangeBearerAvailabilityParams& aParams);
       
   583 	TInt CreateBearerAvailabilitySimulator(const TCreateBearerAvailabilitySimulatorParams& aParams);
       
   584 	TInt TransformData(TDes8& dataIn, TDes8& dataOut, TSocketDataTransform transform);
       
   585 
       
   586 	// Connection Server (RConnectionServ)
       
   587 	//------------------------------------
       
   588 	TInt CreateConnectionServer(const TDesC& aConnectionServName);
       
   589 	TInt ConnectConnectionServer(const TDesC& aConnectionServName, TUint aTierId);
       
   590 	TInt CloseConnectionServer(const TDesC& aConnectionServName);
       
   591 	TInt ConnectionAccessPointStatusQuery(
       
   592 		const TDesC& aConnectionServName,
       
   593 		const ConnectionServ::CConnectionServParameterBundle& aQuery,
       
   594 		ConnectionServ::CConnectionServParameterBundle& aResult);
       
   595 	TInt CancelAccessPointStatusQuery(
       
   596 		const TDesC& aConnectionServName,
       
   597 		const ConnectionServ::CConnectionServParameterBundle& aQuery,
       
   598 		ConnectionServ::CConnectionServParameterBundle& aResult);
       
   599 
       
   600 	TInt GetConnectionNotificationAPI(const TDesC& aConnectionManagerExtensionName);
       
   601 	TInt CreateRConnectionManager(const TPtrC& aServerName);
       
   602 	TInt GetRConnMgrBearerCount(const TGetRConnMgrBearerCountParams& iParams, TInt& count);
       
   603 	TInt OpenRConnectionManager(const TPtrC& aName);
       
   604 	TInt SelectRConnectionManagerTier(TSelectRConnectionManagerTierParams& iParams);
       
   605 	TInt CancelConnectionNotification(TCancelConnectionNotificationParams& aParams);
       
   606 
       
   607     //clean all
       
   608     void CleanAll();
       
   609 
       
   610 	// Trigger simtsy events
       
   611 	TInt EtelRequestL(TUint aEventKey, TInt aNewValue);
       
   612 
       
   613 public:
       
   614     //store the elements in maps (look-up-able by name)
       
   615     RPointerDesMap<RSocketServ> iSockServs;
       
   616     RPointerDesMap<RSocket> iSocks;
       
   617 	RPointerDesMap<RConnection> iConns;
       
   618 	RPointerDesMap<RSubConnection> iSubConns;
       
   619 	RPointerDesMap<RSubConParameterBundle> iSubConnParams;
       
   620 	RPointerDesMap<TEsockTestEventContainer> iSubConnEvents;
       
   621 	RPointerDesMap<TEsockTestEventContainer> iConnEvents;
       
   622 	RPointerDesMap<TFlowId> iFlowId;
       
   623 	RPointerDesMap<ConnectionServ::RConnectionServ> iConnectionServs;
       
   624 	RPointerDesMap<CConnServNotificationWatcher> iNotifWatchers;
       
   625 	RPointerDesMap<TInt> iIntegerValues;
       
   626 	RPointerDesMap<TRequestStatus> iRequestStatuses;
       
   627 
       
   628 	// API extensions
       
   629 	RPointerDesMap<RCommsMobilityApiExt> iMobilityExts;
       
   630 
       
   631 	TSimTsy iSimTsy;
       
   632 
       
   633 	// Data Monitoring
       
   634 	RPointerDesMap<RCommsDataMonitoringApiExt> iDataMonitoringExts;
       
   635 	RPointerDesMap<TEsockTestDataMonitoringResponse> iDataMonitoringEvents;
       
   636 	RPointerDesMap<TDataMonitorStats> iSavedDataMonitorStats;
       
   637    };
       
   638 
       
   639 #endif //ESOCKTESTBASE_H
       
   640