--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wsframework/inc/senprovider.h Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,197 @@
+/*
+* 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 SEN_PROVIDER_H
+#define SEN_PROVIDER_H
+
+// INCLUDES
+#include <ecom/ecom.h>
+#include <e32std.h> // for RCriticalSection
+
+#include <MSenServiceDescription.h>
+#include "senwsdescription.h"
+#include <SenFacet.h>
+
+#include "senidentifier.h" // internal Utils\inc
+#include "msenprovider.h" // internal Framework\inc
+
+// FORWARD DECLARE
+class CSenLocalRequest;
+
+// CLASS DECLARATION
+
+/**
+* Class for delivering SOAP request to Serene and response back.
+* Sub-classing actual Service Providers have to implement MSenProvider
+* interface.
+*
+*/
+class CSenProvider : public CBase, public MSenProvider
+ {
+ public: // Constructors and destructor
+ /**
+ * Two-phased constructor.
+ */
+ static CSenProvider* NewL(const TDesC8& aMatch);
+
+ static CSenProvider* NewL();
+
+ /**
+ * Function: ~CSenProvider
+ *
+ * Description: Destroy the object
+ */
+ virtual ~CSenProvider();
+
+ // From MSenHostlet:
+ /**
+ * Default implementation returns the ECOM cue as endpoint of this local provider.
+ * @return ECOM cue of this plug-in implementation
+ */
+ inline virtual TPtrC8 Endpoint() const;
+
+ /**
+ * Method provides the default implementation of adding facets in the SD after
+ * checking the default values of the provider properties (exposed, shareable,
+ * complete client message etc). Each overriden default facet value is added
+ * to the service description (SD).
+ *
+ * @param aSD is the service description into which all the facets of this
+ * hostlet (local service provider) will be added.
+ *
+ * Method provides means of "auto-configuration" for service session creation.
+ * The sessions themself can read properties of the provider from the altered
+ * XML service description. This way, provider deployment does not need to be
+ * followed by explicit Service Management API calls (configuration) to add
+ * these facet.
+ */
+ inline virtual void DescribeServiceL(CSenWSDescription& aSD);
+
+ /**
+ * This default, inline version returns EFalse. Any service exposed to outside world should
+ * override to return ETrue instead. That would cause inline method
+ * InitServiceSession to add corresponding facet to the session.
+ * @see MSenProvider interface
+ */
+ inline virtual TBool Exposed() const;
+
+
+ /**
+ * This default, inline version version returns EFalse. Sharable, sub-classing providers need
+ * to override this to return ETrue instead, if they allow multiple service consumers to have
+ * queued access to the ServiceL() of the same provider instance.
+ * @see MSenProvider interface
+ */
+ inline virtual TBool Sharable() const;
+
+ /**
+ * This default, inline version version returns EFalse. Providers, which wish to receive
+ * complete messages (with header information) need to override this to return ETrue instead.
+ * @see MSenProvider interface
+ */
+ inline virtual TBool CompleteClientMessages() const;
+
+
+ /**
+ * This default, inline version version returns EFalse. Providers, which have slow construction
+ * mechanism should make this return ETrue, to make WSF Core Service Manager to pre-load them
+ * after that (Symbian server) process is created and sensessions.xml database is being loaded.
+ * @see MSenProvider interface
+ */
+ inline virtual TBool LoadOnStartup() const;
+
+ /**
+ * This default, inline version version returns ETrue. Providers, which wish to permit
+ * un-thread-safe access to their ServiceL need to make this return EFalse instead.
+ * @see MSenProvider interface
+ */
+ inline virtual TBool Threadsafe() const;
+
+ /**
+ * This default, inline version version returns EFalse. Providers, which allow themselves
+ * to be re-cycled (reused) need to make this return EFalse.
+ * @see MSenProvider interface
+ */
+ inline virtual TBool Reinitializable() const;
+
+ /**
+ * This default, inline version version returns EFalse. Providers, which want themselves
+ * to be left on background as long as main thread (Core Service Manager) is alive, need
+ * to make this return ETrue instead.
+ * @see MSenProvider interface
+ */
+ inline virtual TBool StayOnBackground() const;
+
+ /**
+ * Default implementation does nothing, and
+ * returns KErrNotSupported.
+ * Subclasses should override this method in
+ * order to re-initialize any state variables
+ * that are not related to exact construction
+ * phase; for example, some provider might
+ * reset any state data it has, but still it
+ * might decide to keep negotiated client
+ * (connection) to some server open, making
+ * just corresponding "re-init" to that service
+ * being internally consumed by that provider.
+ *
+ * Typically, this method is a pair to Reinitializable()
+ * function, meaning that when one develops such provider
+ * which supports reinitialization, that re-init should be
+ * implemented behind this ReinitL() method.
+ *
+ * @see MSenProvider
+ */
+ inline virtual TInt ReinitL();
+
+ /**
+ * Default implementation does nothing. Subclasses should override this.
+ */
+ //inline virtual void ThreadInitL(const TDesC& /* aThreadId */) { ; }
+
+ /**
+ * Default implementation does nothing. Subclasses should override this.
+ */
+ //inline virtual void ThreadDestroy(const TDesC& /* aThreadId */) { ; }
+
+ private:
+ /** iDtor_ID_Key Instance identifier key. When instance of an
+ * implementation is created by ECOM framework, the
+ * framework will assign UID for it. The UID is used in
+ * destructor to notify framework that this instance is
+ * being destroyed and resources can be released.
+ */
+ TUid iDtor_ID_Key;
+
+ HBufC8* iCue;
+
+ TAny* _reserved;
+ TAny* _reserved2;
+ };
+
+#include "senprovider.inl"
+
+#endif
+
+// End of File