diff -r 000000000000 -r 3da2a79470a7 testexecmgmt/ucc/Source/CSProtocolLibrary/sprotocol/CXServer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testexecmgmt/ucc/Source/CSProtocolLibrary/sprotocol/CXServer.h Mon Mar 08 15:04:18 2010 +0800 @@ -0,0 +1,97 @@ +/* +* 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: +* +* Description: +* Filename: CXServer.h +* Author: Sanjeet Matharu +* This is the server side of the protocol which takes name/value pairs and does stuff +* +*/ + + + +#ifndef __CXSERVER_H__ +#define __CXSERVER_H__ + +#define MAXLISTLENGTH 100 //this is the name/value pair max list length +#define MAXBUFFERLEN 64 //maximum length of the name and value strings + +#define HT_SOCKET 0 +#define HT_WIN32FILEHANDLE 1 +#define HT_LINUXFILEHANDLE 2 + +#define REPLY_OK "OK" +#define REPLY_ERROR "ERROR" +#define REPLY_TIMEOUT "TIMEOUT" + +#define CSP_LISTFULL 2001 +#define CSP_BUFFERFULL 2002 + +//Types +typedef enum +{ + RECEIVE_HELLO, + RECEIVE_NAME, + RECEIVE_VALUE, + RECEIVE_GOODBYE +} TReceiveStatus; + +//struct required for the name/value pairs +typedef struct +{ + char iName[MAXBUFFERLEN]; + char iValue[MAXBUFFERLEN]; +} TNameValuePair; + +//---------------------------------------------------------------------------------- +//generic server class +class CXServer +{ + public: + + //constructor/destructor + CXServer(); + ~CXServer(); + + //functions + int OnExecute(int handle, int handletype); + + //data + TReceiveStatus iStatus; + TNameValuePair iList[MAXLISTLENGTH]; + + private: + + //functions + int CheckForHello(int handle, int handletype, int freeslot); + int CheckForData(int handle, int handletype, int freeslot); + void CheckForGoodbye(int handle, int handletype, int latestposition); + int CheckForTimeout(int handle); + + int Read(int handle, int handletype, char* c); + int Write(int handle, int handletype, char *buff, int bufflen ); + + //data + char* iListPtr; + + char iGoodbyebuffer[8]; + char iHellobuffer[6]; + + fd_set iReadSocketSet; + struct timeval timeout; +}; + +//---------------------------------------------------------------------------------- + +#endif __CXSERVER_H__ +