testexecmgmt/ucc/Source/CSProtocolLibrary/sprotocol/CXServer.h
changeset 0 3da2a79470a7
--- /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__
+