diff -r 78fbd574edf4 -r da856f45b798 zeroconf/server/src/cinternalmessagequeue.cpp --- /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) + { + + } +