webservices/idwsfplugin/inc/idwsfdiscoveryserviceclient.h
changeset 0 62f9d29f7211
child 12 20aafbbfb68e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/idwsfplugin/inc/idwsfdiscoveryserviceclient.h	Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,134 @@
+/*
+* Copyright (c) 2002-2005 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: Header declaration
+*
+*/
+
+
+
+
+
+
+
+
+#ifndef IDWSF_DISCOVERY_SERVICE_CLIENT
+#define IDWSF_DISCOVERY_SERVICE_CLIENT
+
+// INCLUDES
+#include <e32base.h>
+#include <badesca.h>
+#include <flogger.h>
+
+#include "midwsfsessionvalidator.h"
+
+#include "idwsfcoreserviceconsumer.h"
+
+
+// CONSTANTS 
+_LIT8(KDiscoOption,"urn:com.nokia.serene.idwsf:disco:option");
+
+// FORWARD DECLARATIONS
+class CIdWsfServiceSession;
+class CIdWsfDsQueryResponse;
+
+// DATA TYPES
+typedef RPointerArray<CIdWsfServiceSession> RSessionArray;
+
+// CLASS DECLARATION
+class CIdWsfDiscoveryServiceClient : public CIdWsfCoreServiceConsumer, 
+                                     public MIdWsfSessionValidator
+{
+    public: // Constructors and destructor
+    
+        static CIdWsfDiscoveryServiceClient* NewL(CSIF& aSIF);//,
+                                                  //RFileLogger& aLogger);
+
+        static CIdWsfDiscoveryServiceClient* NewLC(CSIF& aSIF);//,
+                                                   //RFileLogger& aLogger);
+
+        ~CIdWsfDiscoveryServiceClient();
+
+        // New functions
+        
+        /**
+        * @return KErrNotFound, if no known security mechanism was found
+        *         KErrNotReady, if no service session has been initialized
+        */
+        virtual TInt ValidateL(CIdWsfServiceSession& aSession,
+                               MSenRemoteServiceConsumer& aRemoteConsumer);
+
+        virtual void SetStatusL(const TInt aStatus);
+
+        /**
+        * @return KErrNotFound, if no known security mechanism was found
+        */
+        virtual TInt FindServiceL(RPointerArray<CSenWSDescription>& aServiceArray, 
+                                  MSenServiceDescription& aPattern,
+                                  MSenRemoteServiceConsumer& aRemoteConsumer);
+
+        static TInt DSOptionsL(RFacetArray& aOptionArray,
+                               MSenServiceDescription& aServiceDescription);
+
+        virtual TBool HasSuperClass( TDescriptionClassType aType );
+		virtual void SetDataTrafficDetails( TSenDataTrafficDetails& aDetails) ; 		
+
+    protected:
+        
+        /**
+        * C++ default constructor.
+        */
+        CIdWsfDiscoveryServiceClient(CSIF& aSIF, TDescriptionClassType aType);//RFileLogger& aLogger);
+        
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void BaseConstructL();
+
+        // New functions
+        
+        /**
+        * @return KErrNotFound, if no known security mechanism was found
+        */
+        virtual TInt ProcessResponseL(CIdWsfDsQueryResponse* aResponse);
+        //RFileLogger* Log() const;
+        
+    private: // New functions
+    
+        HBufC8* CIdWsfDiscoveryServiceClient::DsLookupRequestL(MSenServiceDescription& aPattern);
+        
+        CIdWsfDsQueryResponse* ParseResponseLC(TDesC8& aMessage);
+        //void SetStatusL(TInt aStatus);
+
+    protected: // Data
+        enum TClientState
+        {
+        ENotInitialized = 1,
+        EHasSession,
+        EHasResults,
+        EAuthServiceClient,
+        ESaslMechanism
+        };
+
+        TClientState iCState;
+        CIdWsfServiceSession* iSession; // Not owned
+
+    private: // Data
+        //RFileLogger& iLog;
+        RSessionArray iResults;
+        TSenDataTrafficDetails iDiscDetails;
+    };
+
+#endif //IDWSF_DISCOVERY_SERVICE_CLIENT
+
+// End of File