zeroconf/server/inc/cbasehandler.h
changeset 14 da856f45b798
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/zeroconf/server/inc/cbasehandler.h	Thu Jun 24 19:09:47 2010 +0530
@@ -0,0 +1,100 @@
+// Copyright (c) 2008-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:
+// cbasehandler.h
+// 
+//
+/**
+@file
+@internalTechnology
+*/
+
+#ifndef __CBASEHANDLER_H__
+#define __CBASEHANDLER_H__
+//System include 
+#include <mdns/cdnsmessage.h>
+
+//User include
+#include "cmessagehandler.h"
+#include "mdnsdebug.h"
+
+class COutStandingQuery : public CBase
+	{
+	public :
+		static COutStandingQuery* NewL(CDnsMessage* aDnsMessage,TInt aTransactionId,TTime aTime, TSockAddr aAddr);
+		~COutStandingQuery();
+		 TTime GetAddTime()const;
+		TInt TransactionId()const ;
+		TSockAddr SocketAddress()const;
+		CDnsMessage& DnsMessage()const; 
+		TInt ClientHandle()const;
+		void SetClientHandle(TInt aHandle);
+	private:
+		void ConstructL();
+		COutStandingQuery(CDnsMessage* aDnsMessage,TInt aTransactionId,TTime aTime, TSockAddr aAddr);
+	
+	
+	private:
+	 	TInt iTransactionID;
+	 	TTime iReviewTime;
+	 	TSockAddr iSockAddress;
+	 	CDnsMessage* iDnsMessage;
+	 	TInt iClientHandle;
+	 	/**
+	 	    *FLOGGER debug trace member variable.
+	 	    */
+	 	    __FLOG_DECLARATION_MEMBER_MUTABLE;
+	};
+
+/**
+This is a Baseclass to handle common functionality to both the response and query handler
+this contains a reference to messagehandler which the derived class can make use of using 
+the MessageHandler() api
+
+A reference to cache entry to be passed in order to build a cache wrapper as cache requires
+all the records to be present in the CacheEntry variable.
+
+Seperate functions are provide to handle address,pointer,text and srv records as , same can 
+be used by both query and response handler.
+ 
+*/
+class CBaseHandler : public CTimer
+	{
+	public :
+	 	static CBaseHandler* NewL(CMessageHandler& aMessageHandler);
+	 	virtual ~CBaseHandler();
+	 	
+	 	//From CTimer
+	 	void RunL();
+	 	void DoCancel();
+	 	
+	 	virtual void HandleIncomingPacketL(CDnsMessage& aMessage, const TSockAddr& aAddr);
+	 	 	
+	protected:
+	   	CBaseHandler(CMessageHandler& aMessageHandler);
+	   	void ConstructL();
+	   	CMessageHandler& MessageHandler()const;
+	   
+	protected:
+		RPointerArray<COutStandingQuery> iOutStandingQueryArray;
+		TBool IsLastTruncated;    	
+	 		 		
+	private:
+		CMessageHandler& iMessageHandler; 
+		/**
+		    *FLOGGER debug trace member variable.
+		    */
+		    __FLOG_DECLARATION_MEMBER_MUTABLE; 
+	};
+
+#endif