sl@0: // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // Test server code for validating CClientMessage Framework sl@0: // sl@0: // sl@0: sl@0: #if !defined(T_CLIENTMESSAGETESTSERVERH) sl@0: #define T_CLIENTMESSAGETESTSERVERH sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: sl@0: /* These types are used in testing to pass as TPckg parameter type data sl@0: */ sl@0: enum TCMTestEnum sl@0: { sl@0: ETestVal0, sl@0: ETestVal1, sl@0: ETestVal2, sl@0: ETestVal3 sl@0: }; sl@0: sl@0: struct CMTestStruct1 sl@0: { sl@0: TInt iInt; sl@0: TBuf<32> iDes; sl@0: }; sl@0: sl@0: struct CMTestStruct2 sl@0: { sl@0: TInt iCount; sl@0: CMTestStruct1* iStruct; sl@0: TInt iEnum; sl@0: TBuf<32> iDes; sl@0: }; sl@0: sl@0: enum TTestServerMessages sl@0: { sl@0: ETestMessage0 = 10, sl@0: ETestMessage1, sl@0: ETestMessage2, sl@0: ETestMessage3, sl@0: ETestMessage4, sl@0: ETestMessage5, sl@0: ETestMessage6, sl@0: ETestMessage7, sl@0: ETestMessage8, sl@0: ETestMessage9, sl@0: ETestMessage10, sl@0: ETestMessage11, sl@0: ETestMessage12, sl@0: ETestMessage13, sl@0: ETestMessage14, sl@0: ETestMessage15, sl@0: ETestMessage16, sl@0: ETestMessage17, sl@0: ETestMessage18, sl@0: ETestMessage19, sl@0: ETestMessage20, sl@0: ETestMessage21, sl@0: ETestMessage22, sl@0: ETestMessage23, sl@0: ETestMessage24, sl@0: ETestMessage25, sl@0: ETestMessage26, sl@0: ETestMessage27, sl@0: ETestMessage28, sl@0: ETestMessage29, sl@0: ETestMessage30, sl@0: ETestMessage31, sl@0: ETestMessage32 sl@0: sl@0: }; sl@0: sl@0: enum TParameterTestFunctions sl@0: { sl@0: EGetIntL, sl@0: EGetDes8L, sl@0: EGetDes16L, sl@0: EGetDesLengthL, sl@0: EGetDesMaxLengthL, sl@0: ERead8L, sl@0: ERead16L, sl@0: EWrite8L, sl@0: EWrite16L sl@0: }; sl@0: sl@0: /* Server class. Very basic server implementation sl@0: */ sl@0: class CClientMessageTestServer : public CServer2 sl@0: { sl@0: sl@0: public: sl@0: static CServer2* NewLC(); sl@0: sl@0: protected: sl@0: virtual TInt RunError(TInt aError); sl@0: sl@0: private: sl@0: CClientMessageTestServer(TInt aPriority); sl@0: void ConstructL(); sl@0: CSession2* NewSessionL(const TVersion &aVersion, const RMessage2& aMessage) const; sl@0: sl@0: }; sl@0: sl@0: /* Server Session class. Basic implementation of session and associated test functions sl@0: */ sl@0: class CClientMessageTestSession : public CSession2 sl@0: { sl@0: sl@0: public: sl@0: CClientMessageTestSession(){}; sl@0: virtual void CreateL(const CServer2& aServer); sl@0: sl@0: sl@0: private: sl@0: void TestFunction0L(); sl@0: void TestFunction1L(); sl@0: void TestFunction4L(); sl@0: void TestFunction5L(); sl@0: void TestFunction6L(); sl@0: void TestFunction7L(); sl@0: void TestFunction9L(); sl@0: void TestFunction10L(); sl@0: void TestFunction11L(); sl@0: void TestFunction14L(); sl@0: void TestFunction15L(); sl@0: void TestFunction16L(); sl@0: void TestFunction17L(); sl@0: void TestFunction18L(); sl@0: void TestFunction19L(); sl@0: void TestFunction31L(); sl@0: sl@0: private: sl@0: ~CClientMessageTestSession(); sl@0: void ServiceL(const RMessage2& aMessage); sl@0: void DoServiceL(); sl@0: BSUL::CClientMessage* iClientMessage; sl@0: sl@0: }; sl@0: sl@0: sl@0: /* Server class. Very basic server implementation sl@0: */ sl@0: class CClientMessageTestServer2 : public CServer2 sl@0: { sl@0: sl@0: public: sl@0: static CServer2* NewLC(); sl@0: sl@0: protected: sl@0: virtual TInt RunError(TInt aError); sl@0: sl@0: private: sl@0: CClientMessageTestServer2(TInt aPriority); sl@0: void ConstructL(); sl@0: CSession2* NewSessionL(const TVersion &aVersion, const RMessage2& aMessage) const; sl@0: sl@0: }; sl@0: sl@0: /* Server Session class. Basic implementation of session and associated test functions sl@0: */ sl@0: class CClientMessageTestSession2 : public CSession2 sl@0: { sl@0: sl@0: public: sl@0: CClientMessageTestSession2(){}; sl@0: virtual void CreateL(const CServer2& aServer); sl@0: sl@0: private: sl@0: void TestFunction0L(); sl@0: void TestFunction1L(); sl@0: void TestFunction2L(); sl@0: sl@0: private: sl@0: ~CClientMessageTestSession2(); sl@0: void ServiceL(const RMessage2& aMessage); sl@0: void DoServiceL(); sl@0: BSUL::CClientMessage* iClientMessage; sl@0: }; sl@0: sl@0: sl@0: sl@0: sl@0: sl@0: #endif