pressrv_plat/publisher_api/inc/msimplepublisher.h
changeset 0 c8caa15ef882
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pressrv_plat/publisher_api/inc/msimplepublisher.h	Tue Feb 02 01:05:17 2010 +0200
@@ -0,0 +1,167 @@
+/*
+* Copyright (c) 2006 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:    SIMPLE Engine presence data publisher
+*
+*/
+
+
+
+
+#ifndef M_simplepublisher_H
+#define M_simplepublisher_H
+
+#include <e32std.h>
+
+// FORWARD DECLARATION
+class MSimpleDocument;
+class MSimpleConnection;
+class MSimpleETagObserver;
+
+
+/**
+ *  MSimplePublisher
+ *
+ *  SIMPLE Engine presence data publisher
+ *
+ *  @lib simpleengine
+ *  @since S60 3.2
+ */
+
+class MSimplePublisher
+    {
+
+public:
+
+    /**
+     * Destroy this entity
+     *
+     * @since S60 v3.2
+     */
+    virtual void Close() = 0;
+
+    /**
+     * Getter for the SIMPLE Engine connection.
+     *
+     * @since S60 3.2
+     * @return the attribute name.
+     */
+    virtual const MSimpleConnection& Connection() = 0;
+
+    /**
+     * Start to publish data.
+     * Leaves with KErrInUse if there is already active publication
+     * in this MSimplePublisher entity.
+     * Expiry time is set based on SIMPLE settings.
+     * Refreshing is made by SIMPLE Engine.
+     *
+     * @since S60 3.2
+     * @param aDocument data to be published
+     * @param aRefresh whether refresh is made automatically
+     * @return operation id
+     */
+    virtual TInt StartPublishL( MSimpleDocument& aDocument,
+     TBool aRefresh ) = 0;         
+     
+    /**
+     * Continue data publication
+     * Leaves with KErrInUse if there is already active publication
+     * in this MSimplePublisher entity.
+     * Expiry time is set based on SIMPLE settings.
+     * Refreshing is made by SIMPLE Engine.
+     *
+     * @since S60 3.2
+     * @param aDocument data to be published
+     * @param aRefresh whether refresh is made automatically
+     * @param aETag SIP ETag header value to be used in SIP-If-Match header.
+     * @return operation id
+     */
+    virtual TInt ContinuePublishL( MSimpleDocument& aDocument,
+     TBool aRefresh, const TDesC8& aETag ) = 0;     
+
+    /**
+     * Update published data. This will overwrite the previous
+     * presence data. StartPublishL() must be completed before
+     * calling this method.
+     * Remote URI is not modified but taken from an initial
+     * StartPublishL document.
+     *
+     * @since S60 3.2
+     * @param aDocument data to be published
+     * @return operation id
+     */
+    virtual TInt ModifyPublishL( MSimpleDocument& aDocument ) = 0;
+
+    /**
+     * Stop publishing data.
+     *
+     * @since S60 3.2
+     * @return operation id
+     */
+    virtual TInt StopPublishL() = 0;
+    
+    /**
+     * Stop publication.
+     *
+     * @since S60 3.2
+     * @param aETag SIP ETag header value to be used in SIP-If-Match header.     
+     * @return operation id
+     */
+    virtual TInt StopPublishL( const TDesC8& aETag ) = 0;    
+
+    /**
+     * SIP Status code accessor.
+     * Get the status of the last completed request.
+     * Refer to RFC3261, RFC3265, RFC3903.
+     *
+     * @since S60 3.2
+     * @return SIP status, 0 if not available
+     */
+    virtual TUint SIPStatus() = 0;
+
+    /**
+     * SIP Retry-after header value accessor.
+     * Get the SIP retry-fater header value of the last completed request.
+     * Refer to RFC3261, RFC3265, RFC3903.     
+     *
+     * @since S60 3.2
+     * @return retry-after value in seconds, 0 if not available
+     */
+    virtual TUint SIPRetryAfter() = 0;
+    
+    /**
+     * SIP ETag header value accessor.
+     * Refer to RFC3903.     
+     *
+     * @since S60 3.2
+     * @return Current ETag header value received from a network server.
+     *         Zero length if not available. 
+     */
+    virtual TPtrC8 SIPETag() = 0;  
+    
+    /**
+     * SIP ETag header value change observer setter.
+     * Notice that this value may change after each modification or automatic refresh
+     * of publication. Observer is called when the ETag value changes next time.
+     * Refer to RFC3903.     
+     *
+     * @since S60 3.2
+     * @param aObs ETag value observer. Can be NULL to stop notification.
+     */
+    virtual void SetSIPETagObserver( MSimpleETagObserver* aObs ) = 0;      
+
+    };
+
+#endif
+
+// End of File