diff -r 78fbd574edf4 -r da856f45b798 zeroconf/client/inc/mdnsparamset.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/zeroconf/client/inc/mdnsparamset.h Thu Jun 24 19:09:47 2010 +0530 @@ -0,0 +1,272 @@ +/* +* Copyright (c) 2008 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: +* +*/ + + +#ifndef __MDNSPARAMSET_H__ +#define __MDNSPARAMSET_H__ + +#include +#include +#include + + +const TInt KMDnsParamsFactoryUid = 0x2000D067;//0x2000D05E; + +/** +MDns ParameterSet Family Identifiers. +@publishedPartner +@prototype +*/ +enum TMDnsParamSetFamily + { + EMDnsDiscoverRequestParamSet = 1, + EMdnsPtrParamset = 2, + EMdnsSrvParamset = 3, + EMdnsAddrParamset = 4, + EMdnsTxtParamset = 5, + EMdnsPublishResponseParamset = 6, + EMdnsRegisterNotifyParamset = 7, + EMdnsPublishParamset = 8, + //@internalTechnology + //@prototype + }; + +/** +class TMDnsEvent +MDnsEvent class defines the reason code for an event callback. +@publishedPartner +@prototype +*/ +NONSHARABLE_CLASS(TMDnsEvent) + { +public: + /** Type of MDns Event. */ + enum TEventType + { + /** This signifies that the operation completed successfully. */ + ESuccess, + /** This is a 'catch-all' for communicating failures. The actual error reason is + shown in error code. */ + EFail, + /** This signifies a discovery search timeout */ + EDiscoveryTimeout, + /** This signifies a subscription request timeout */ + ESubscriptionTimeout + }; + +public: + /** The event status. */ + TInt iStatus; + /** The error code value. */ + TInt iErrorCode; + }; + + + + +/** +The base class for all MDns ParamSet classes. + +@internalTechnology +@prototype +*/ +NONSHARABLE_CLASS (CMDnsParamSetBase) : public CSubConExtensionParameterSet + { + public: + inline static CMDnsParamSetBase* NewL ( RParameterFamily& aFamily, TMDnsParamSetFamily aFamilyType ); + protected: + inline CMDnsParamSetBase (); + }; + + +// ------------------------------------------------------------------- + +/** +Parameter set class containing a Uri. All UPnP Request ParamSet classes derive from this class. + +@internalTechnology +@prototype +*/ +NONSHARABLE_CLASS ( CMDnsQueryRequestParamSet ) : public CMDnsParamSetBase + { + protected: + RBuf8 iInstanceName; + TInt iQueryType; + TInt iProtocol; + RBuf8 iServiceType; + public: + inline static CMDnsQueryRequestParamSet* NewL( RParameterFamily& aFamily ); + inline void SetInstanceNameL ( const TDesC8& aName ); + inline const TDesC8& InstanceName () const; + inline void SetQueryTypeL(TInt aQueryType ); + inline TInt QueryType()const; + inline void SetProtocol(TInt aProtocol); + inline TInt Protocol()const; + inline void SetServiceTypeL(const TDesC8& aServiceType); + inline const TDesC8& ServiceType() const; + protected: + inline ~CMDnsQueryRequestParamSet (); + protected: + DATA_VTABLE + }; + +// ---------------------------------------------------------------------- +NONSHARABLE_CLASS (CMDnsPtrParamSet): public CMDnsParamSetBase + { + protected: + RBuf8 iInstanceName; + RBuf8 iDomainName; + TInt iTtl; + public: + inline static CMDnsPtrParamSet* NewL(RParameterFamily& aFamily) ; + inline void SetInstanceNameL(const TDesC8& aName); + inline const TDesC8& InstanceName()const; + inline void SetDomainNameL(const TDesC8& aDomainName); + inline const TDesC8& DomainName() const; + inline void SetTtlL(TInt aTtl); + inline TInt Ttl() const; + protected: + inline ~CMDnsPtrParamSet(); + protected: + DATA_VTABLE + + }; + +//--------------------------------------------------------------------------- +NONSHARABLE_CLASS (CMDnsSrvParamSet): public CMDnsParamSetBase + { + protected: + RBuf8 iDomainName; + RBuf8 iTarget; + TUint16 iPrio; + TUint16 iWeight; + TUint16 iPort; + + public: + inline static CMDnsSrvParamSet* NewL(RParameterFamily& aFamily) ; + inline void SetDomainNameL(const TDesC8& aDomainName); + inline const TDesC8& DomainName() const; + inline void SetTargetL(const TDesC8& aName); + inline const TDesC8& Target()const; + inline void SetPriority(TUint16 aPriority); + inline TUint16 Priority()const; + inline void SetWeight(TUint16 aWeight); + inline TUint16 Weight()const; + inline void SetPort(TUint16 aPort); + inline TUint16 Port()const; + protected: + inline ~CMDnsSrvParamSet(); + protected: + DATA_VTABLE + + }; +//------------------------------------------------------------------------------ +NONSHARABLE_CLASS (CMDnsAddrParamSet): public CMDnsParamSetBase + { + protected: + RBuf8 iDomainName; + TInetAddr iAddr; + + public: + inline static CMDnsAddrParamSet* NewL(RParameterFamily& aFamily) ; + inline void SetDomainNameL(const TDesC8& aDomainName); + inline const TDesC8& DomainName() const; + inline void SetAddress(TInetAddr aAddr); + inline TInetAddr Address()const; + protected: + inline ~CMDnsAddrParamSet(); + protected: + DATA_VTABLE + + }; + +//------------------------------------------------------------------------------- +NONSHARABLE_CLASS (CMDnsTxtParamSet): public CMDnsParamSetBase + { + protected: + RBuf8 iDomainName; + RBuf8 iTxtData; + private: + TInt iCount; + public: + inline static CMDnsTxtParamSet* NewL(RParameterFamily& aFamily) ; + inline void SetDomainNameL(const TDesC8& aDomainName); + inline const TDesC8& DomainName() const; + inline void AppendTxtData(TDesC8& aData); + inline void TxtDataL(RArray& aTxtData); + private: + inline void TokenizeStringL(RBuf8& aString, RArray& aList, TChar aSeparator); + protected: + inline ~CMDnsTxtParamSet(); + protected: + DATA_VTABLE + + }; +//-------------------------------------------------------------------------------- +NONSHARABLE_CLASS (CMDnsPublishResponseParamSet): public CMDnsParamSetBase + { + protected: + RBuf8 iDomainName; + TInt iError; + public: + inline static CMDnsPublishResponseParamSet* NewL(RParameterFamily& aFamily) ; + inline void SetDomainNameL(const TDesC8& aDomainName); + inline const TDesC8& DomainName() const; + inline void SetError(TInt aError); + inline TInt Error()const; + protected: + inline ~CMDnsPublishResponseParamSet(); + protected: + DATA_VTABLE + + }; + +//-------------------------------------------------------------------------------- +NONSHARABLE_CLASS (CMDnsRegisterNotifyParamSet): public CMDnsParamSetBase + { + protected: + RBuf8 iInstanceName; + + public : + inline static CMDnsRegisterNotifyParamSet* NewL(RParameterFamily& aFamily); + inline void SetInstanceNameL(const TDesC8& aInstanceName); + inline const TDesC8& InstanceName()const; + protected: + inline ~CMDnsRegisterNotifyParamSet(); + protected: + DATA_VTABLE + + }; + +//-------------------------------------------------------------------------------- +NONSHARABLE_CLASS (CMDnsPublishParamSet): public CMDnsParamSetBase + { + protected: + TBool isPublish; + public: + inline static CMDnsPublishParamSet* NewL(RParameterFamily& aFamily) ; + inline void SetPublishUpdate(TBool aFlag); + inline TBool PublishUpdate()const; + protected: + inline ~CMDnsPublishParamSet(); + protected: + DATA_VTABLE + + }; +#include + +#endif // __MDNSPARAMSET_H__