diff -r 78fbd574edf4 -r da856f45b798 zeroconf/server/inc/mdnsserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/zeroconf/server/inc/mdnsserver.h Thu Jun 24 19:09:47 2010 +0530 @@ -0,0 +1,131 @@ +// 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: +// mdnsserver.h +// +// +/** +@file +@internalTechnology +*/ + +#ifndef __MDNSSERVER_H__ +#define __MDNSSERVER_H__ + +#include +#include +#include +#include +#include + +#include "cinternalmessagequeue.h" +#include "mmessagehandler.h" +#include "mdnsdebug.h" + +//class TMessageType; +class CMessageHandler; +class CMDNSProbeManager; +class CMDNSCacheConsistencyMgr; +// zeroconf messages policy - all NetworkService + +const TUint zeroconfRangeCount = 1; +const TInt zeroconfRanges[zeroconfRangeCount] = + { + 0 + }; + +const TUint8 zeroconfElementsIndex[zeroconfRangeCount] = + { + 0 + }; + +const CPolicyServer::TPolicyElement zeroconfElements[] = + { + {_INIT_SECURITY_POLICY_C1(ECapabilityNetworkServices), CPolicyServer::EFailClient} + }; + +const CPolicyServer::TPolicy zeroconfPolicy = + { + CPolicyServer::EAlwaysPass, + zeroconfRangeCount, + zeroconfRanges, + zeroconfElementsIndex, + zeroconfElements, + }; + +// The zeroconf server class + +class CSocketHandler; +class CShutdownTimer; + +class CMdnsServer : public CPolicyServer,public MMessageHandler + { +public: + static CMdnsServer* NewL(); + static CMdnsServer* NewLC(); + + CSession2* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const; + + TInt NewSession(); + void DropSession(); + void BeginShutdownL(); + void JoinMulticastGroupL(TInetAddr& aMulticastAddr); + RSocket& Socket(); + CMessageHandler& MessageHandler()const; + void NotifyClientQuery(TInt aClientHandle); + void NotifyServicePublishL(const RBuf8& aName,TInt aError, TInt aSessionId); + ~CMdnsServer(); + TDesC8& HostName()const; + void SetHostNameL(const TDesC8& aName); + void SetStateHostProbing(TBool aProbing); + void SetPublishingService(TBool aFlag); + TBool IsHostProbing()const; + TBool IsPublishingService() const; + void ProcessQueuedMessage(const RMessage2& aMessage, const TMessageType aType,TInt aSessionId); + void NotifyNewServiceL(const RArray& aName); + CInternalMessageQueue* MessageQueue(); + //From MMessageHandler + void OnPacketSendL(TInt aError); + + +private: + TInt GetLocalHost ( TSockAddr& aAddr ); + CMdnsServer(); + void ConstructL(); + + + +private: + RSocketServ iSockServ; + RConnection iConnection; + RSocket iSocket; + + CShutdownTimer* iShutdownTimer; + CMessageHandler* iMessageHandler; + CInternalMessageQueue* iInternalMessageQueue; + CMDNSCacheConsistencyMgr* iCacheConsistencyMgr; + TInt iConnectionCount; + TInt iSessionIdCounter; + TBool iShutdownInProgress; + CMDNSProbeManager* iProbeManager; + RBuf8 iHostName; + TBool iData; + TBool iIsHostProbing; + TBool iIsPublishing; + /** + *FLOGGER debug trace member variable. + */ + __FLOG_DECLARATION_MEMBER_MUTABLE; + }; + +#endif /* __MDNSSERVER_H__ */