webservices/wscore/inc/msendao.h
changeset 0 62f9d29f7211
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wscore/inc/msendao.h	Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,105 @@
+/*
+* 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 M_SEN_DAO_H
+#define M_SEN_DAO_H
+
+//  INCLUDES
+#include <flogger.h>
+#include <e32std.h>
+
+#include "msenserviceinvocationframework.h"
+#include "msenservicemanager.h"
+#include "msenremoteserviceconsumer.h"
+#include "MSenServiceDescription.h"
+
+// FORWARD DECLARATIONS
+class CSIF;
+class CSenServiceSession;
+class CSenXMLDAO;
+class CSenCoreServiceManager;
+
+// CLASS DECLARATION
+class MSenDAO
+    {
+    friend class CSenXMLDAO;             // to provide visibility to critical section
+    friend class CSenCoreServiceManager; // to provide visibility to critical section
+
+    public:
+        virtual MSIF* Framework( const TDesC8& aFramework ) = 0;
+        virtual TInt Add( CSenWSDescription& aDescription ) = 0;
+        virtual TInt Add( CSIF& aFramework ) = 0;
+        virtual TBool Remove( CSenWSDescription& aDescription ) = 0;
+        virtual void Remove( CSIF& aFramework ) = 0;
+        
+        /**
+        * The ownership of the returned ServiceDescription is NOT transferred 
+        */
+        virtual CSenWSDescription* FindMatchingServiceDescriptionL( CSenWSDescription& aSd ) = 0; //codescannerwarnings
+                                           
+        virtual TInt AddServiceDescriptionToFrameworksL( CSenWSDescription& aPattern,
+                                                         MSenRemoteServiceConsumer& aRemoteConsumer,
+                                                         HBufC8*& aErrorMsg ) = 0;
+                     
+        virtual TInt FindAllMatchingServiceDescriptions( RWSDescriptionArray& aMatches,
+                                                         const TDesC8& aContract ) = 0;
+                                            
+        virtual TInt FindAllMatchingServiceDescriptions( RWSDescriptionArray& aMatches,
+                                                         MSenServiceDescription& aPattern ) = 0;
+                                        
+        virtual TInt SaveL( const CSenServiceSession& aServiceSession ) = 0;
+        virtual TInt SaveL( const CSIF& aServiceInvocationFramework ) = 0;
+        virtual CDesC8Array& SupportedFrameworksL() = 0;
+        virtual void Load() = 0;
+        virtual TInt NotifyFrameworksL( const TDesC8& aFrameworkID,
+                                        const TInt aEvent,
+                                        TAny* aArgument) = 0;
+
+        virtual TPtrC8 TransportPluginCueBySchemeL( const TPtrC8& aSchema ) = 0;
+
+        /** 
+        * Looks up CSenProvider ECOM plug-in. Sharable hostlets (providers)
+        * may be found from a "proxy", a cache allowing them to be reused.
+        */
+        virtual MSenProvider& LookupHostletForL( const TDesC8& aHostletEndpoint,
+                                                 const TDesC& aReqThreadId,
+                                                 const TDesC8& aReqConsumerId ) = 0;
+
+        /** 
+        * Unsharable providers should be released from server (main) threads
+        * memory by calling this method. 
+        */
+        virtual TInt ReleaseHostletL(const MSenProvider* aHostlet,
+                                      const TDesC& aReqThreadId,
+                                      const TDesC8& aReqConsumerId) = 0;
+
+    private:
+        virtual TInt Save() = 0;
+
+        RCriticalSection iCriticalSection;
+    };
+
+#endif // M_SEN_DAO_H
+
+// End of File