--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wsframework/inc/msentransport.h Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,151 @@
+/*
+* 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_TRANSPORT_H
+#define M_SEN_TRANSPORT_H
+
+// INCLUDES
+#include <e32std.h>
+
+#include "msenservicesession.h"
+#include "msenremoteserviceconsumer.h"
+#include "msenlayeredproperties.h"
+
+#include "MSenElement.h"
+
+// CONSTANTS
+const TInt KErrSenTransactionComplete = 20;
+
+// FORWARD DECLARATIONS
+class CSenFragment;
+class CSenTransportProperties;
+
+// DATA TYPES
+typedef RPointerArray<CSenFragment> RTransportProperties;
+
+// CLASS DECLARATION
+class MSenTransport
+ {
+ public:
+
+ // New functions
+
+ /**
+ * Method for sending synchronous request to a known endpoint (URI). This method
+ * will block the current ActiveScheduler until the response from service is received.
+ *
+ * @param aEndpoint is the endpoint, typically an URI of the service being invoked
+ * @param aMessage is the actual message to the service behind known endpoint
+ * @param aTransportProperties containts the transport related request properties
+ * @param aResponse will contain the response after this synchronous call returns.
+ * @param aConsumer is the underlying caller invoking this request.
+ * @return KErrSenNoEndpoint if aEndpoint lenght is zero or negative.
+ */
+ virtual TInt SubmitL(const TDesC8& aEndpoint,
+ const TDesC8& aMessage,
+ const TDesC8& aTransportProperties,
+ HBufC8*& aResponse,
+ MSenRemoteServiceConsumer& aConsumer) = 0;
+
+ /**
+ * Method for sending asynchronous request to a known endpoint (URI).
+ * @param aEndpoint is the endpoint, typically an URI of the service being invoked
+ * @param aMessage is the actual message to the service behind known endpoint
+ * @param aTransportProperties containts the transport related request properties
+ * @param aReplyTo is the session session performing this request for the caller
+ * @param aConsumer is the underlying caller invoking this request (addressee)
+ * @param aTxnId will be set to refer to the new transaction id of this request
+ * @return KErrNone or some error, if the method fails. Error code can be either some
+ * system-wide constnat, or a WSF specific KErrSenNoEndpoint if aEndpoint lenght is zero
+ * or negative.
+ */
+ virtual TInt SendL(const TDesC8& aEndpoint,
+ const TDesC8& aMessage,
+ const TDesC8& aTransportProperties,
+ MSenServiceSession& aReplyTo,
+ MSenRemoteServiceConsumer& aConsumer,
+ TInt& aTxnId) = 0;
+
+ /**
+ * Method parses and applies the given properties on top of current properties
+ * (state) of the transport. This means, that all spesified property entries
+ * override existing ones
+ */
+ virtual TInt SetPropertiesL(const TDesC8& aProperties,
+ MSenLayeredProperties::TSenPropertiesLayer aTargetLayer,
+ MSenRemoteServiceConsumer* aConsumer) = 0;
+
+ virtual TInt PropertiesL(HBufC8*& aProperties) = 0;
+
+ /**
+ * Cancels the transaction from the transport, removing interested pending
+ * consumers from list of response receivers, preventing any callbacks
+ * being performed even though transport itself may still receive response
+ * from some (network stack) server.
+ * @return KErrNone, if cancel was performed
+ * KErrNotFound if transaction was not found
+ */
+ virtual TInt CancelTransaction(const TInt aTxnId) = 0;
+
+ /**
+ * Method requests the transport plug-in implementation to complete
+ * a pending transaction. Typically, service provider sessions
+ * (like MSenRemoteHostlet) implementations call this method to
+ * signalize, that certain pending, asynchronous transaction
+ * issued earlier by some consumer has been completed.
+ * @param aTxnId is the id of the transaction to be completed
+ * @param aStatus is an optional, additinal status code, which
+ * transport plug-in should pass to the "addressee", the consumer,
+ * who originated this transaction.
+ * @return KErrNone if transaction was completed successfully
+ * KErrNotFound if pending transaction, matching with
+ * given aTxnId was not found.
+ */
+ virtual TInt CompleteTransaction(const TInt aTxnId,
+ const TInt aStatus = KErrNone) = 0;
+
+ /**
+ * Getter for the URI scheme of this transport plug-in implementation,
+ * Examples of such scheme are: http, tcp, udp and local.
+ * @return the scheme of this transport
+ */
+ virtual TPtrC8 UriSchemeL() = 0;
+
+
+
+ virtual MSenProperties& PropertiesL() = 0;
+
+ inline virtual TInt SubscribeEventListenerL(MSenRemoteServiceConsumer& /*aConsumer*/)
+ {
+ return KErrNotSupported;
+ }
+ inline virtual TInt UnsubscribeEventListenerL(MSenRemoteServiceConsumer& /*aConsumer*/)
+ {
+ return KErrNotSupported;
+ }
+ };
+
+#endif // SEN_MTRANSPORT_H
+
+// End of File