--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/zeroconf/server/src/cinternalmessagequeue.cpp Thu Jun 24 19:09:47 2010 +0530
@@ -0,0 +1,106 @@
+// 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:
+// cinternalmessagequeue.cpp
+//
+//
+/**
+@file
+@internalTechnology
+*/
+//User include
+#include "cinternalmessagequeue.h"
+#include "mdnsserver.h"
+__FLOG_STMT(_LIT8(KComponent,"MDNSServer");)
+/*
+ * Two phase constructor
+ * @param aServer reference to the server
+ */
+CInternalMessageQueue* CInternalMessageQueue::NewL(CMdnsServer& aServer)
+ {
+ CInternalMessageQueue* self = new (ELeave)CInternalMessageQueue(aServer);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();//self
+ return self;
+ }
+
+//Destructor
+CInternalMessageQueue:: ~CInternalMessageQueue()
+ {
+ __FLOG(_L8("CInternalMessageQueue::~CInternalMessageQueue - Exit"));
+ __FLOG_CLOSE;
+ }
+
+/*
+ * When this is called reads the first request form the
+ * queue and start processing.
+ */
+void CInternalMessageQueue::StartProcessing()
+ {
+ __FLOG(_L8("CInternalMessageQueue::StartProcessing - Entry"));
+ if(iMessageQueue.Count() == 0)
+ {
+ return;
+ }
+ else
+ {
+ TMessageObject message = iMessageQueue[0];
+ iServer.ProcessQueuedMessage(message.MessageObject(),message.Type(),message.SessionId());
+ iMessageQueue.Remove(0);
+ }
+ __FLOG(_L8("CInternalMessageQueue::StartProcessing - Exit"));
+ }
+
+/*
+ * @return count returns the count of messageQueue
+ */
+
+TInt CInternalMessageQueue::Count()
+ {
+ __FLOG(_L8("CInternalMessageQueue::Count - Entry Exit"));
+ return iMessageQueue.Count();
+ }
+
+/*
+ * Interface to append the message to the queue
+ * @param aType represents the type of message.
+ * @param aMessage RMessage object of the query or publish request.
+ * @param aSessionId session to which request is made.
+ */
+void CInternalMessageQueue::AppendMessageL(TMessageType aType, const RMessage2& aMessage,TInt aSessionId )
+ {
+ __FLOG(_L8("CInternalMessageQueue::AppendMessageL - Entry"));
+ TMessageObject messageObject(aType,aMessage,aSessionId);
+ iMessageQueue.AppendL(messageObject);
+ __FLOG(_L8("CInternalMessageQueue::AppendMessageL - Exit"));
+ }
+
+/*
+ * Two phase constructor.
+ */
+void CInternalMessageQueue::ConstructL()
+ {
+ __FLOG_OPEN(KMDNSSubsystem, KComponent);
+ __FLOG(_L8("CInternalMessageQueue::ConstructL -Entry Exit"));
+ }
+
+/*
+ * Constructor
+ * @param aServer reference to the server.
+ */
+CInternalMessageQueue::CInternalMessageQueue(CMdnsServer& aServer): iServer(aServer)
+ {
+
+ }
+