simpleengine/inc/msimpleenginerequest.h
changeset 0 c8caa15ef882
equal deleted inserted replaced
-1:000000000000 0:c8caa15ef882
       
     1 /*
       
     2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:    Abstract base class for WV engine service APIs.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef M_simpleenginerequest_H
       
    21 #define M_simpleenginerequest_H
       
    22 
       
    23 
       
    24 // INCLUDES
       
    25 #include <e32base.h>
       
    26 #include "simplecommon.h"
       
    27 
       
    28 
       
    29 /**
       
    30  *  Abstarct API for request handling in SIMPLE engine core and SIMPLE SIP LIB communication.
       
    31  *
       
    32  *  @lib simpleengine
       
    33  *  @since S60 v3.2
       
    34  */
       
    35 class MSimpleEngineRequest
       
    36     {
       
    37 public:
       
    38 
       
    39     /** Request type */
       
    40     enum TSimpleRequest
       
    41         {
       
    42         /** None */
       
    43         ENone=0,        
       
    44         /** SIP Register */
       
    45         ERegister,
       
    46         /** SIP Publish */
       
    47         EStartPublish,
       
    48         /** SIP modify Publish */
       
    49         EPublishModify,
       
    50         /** SIP Subscribe */
       
    51         ESubscribe,
       
    52         /** SIP list Subscribe */
       
    53         ESubscribeLista,
       
    54         /** SIP Subscribe Get (once) */
       
    55         ESubscribeGet,
       
    56         /** SIP subscribe WINFO */
       
    57         ESubscribeWinfo,
       
    58         /** SIP Unsubscribe */
       
    59         ESubscribeStop,
       
    60         /** SIP Dialog (notify, status) */
       
    61         EDialog,
       
    62         /** SIP Publish stop */
       
    63         EStopPublish,
       
    64         /** Listen to event states */
       
    65         EListenEvents,       
       
    66         /** Destroy the object */
       
    67         EDestroy,
       
    68         /** Destroy the object with a delay */
       
    69         EDestroyStart,
       
    70         /** SIP Subscrption-state */
       
    71         ESubscriptionState,
       
    72         /** SIP send IM */
       
    73         ESendIM,
       
    74         /** SIP receive IM */
       
    75         EReceiveIM
       
    76         };
       
    77         
       
    78     /** SIP response/request message */    
       
    79     enum TSimpleSIPResponse
       
    80         {
       
    81         /** None */
       
    82         EUnknownResponse=0,        
       
    83         /** SIP NOTIFY */
       
    84         ENotify,
       
    85         /** SIP status */
       
    86         EStatus,
       
    87         /** ETag update only in status in refresh response */
       
    88         EStatusETag
       
    89         }; 
       
    90         
       
    91     /** NOTIFY response reason */     
       
    92     enum TSimpleResponseReason
       
    93         {
       
    94         /** unknown reason */
       
    95         ENoReason,
       
    96         /** Application SHOULD re-subscribe later. */        
       
    97         EDeactivated,
       
    98         /** Application SHOULD re-subscribe later. */      
       
    99         EProbation,
       
   100         /** The subscription has been terminated due to change in
       
   101             authorization policy.  
       
   102             Application SHOULD NOT attempt to re-subscribe. */           
       
   103         ERejected,
       
   104         /** The subscription has been terminated because it was not
       
   105             refreshed before it expired.  Application MAY re-subscribe
       
   106             later. */
       
   107         ETimeout,
       
   108         /** The subscription has been terminated because the notifier
       
   109             could not obtain authorization in a timely fashion.
       
   110             Application MAY re-subscribe later. */ 
       
   111         EGiveup,
       
   112         /** The subscription has been terminated because the resource
       
   113             state which was being monitored no longer exists. 
       
   114             Application SHOULD NOT attempt to re-subscribe. */
       
   115         ENoresource
       
   116         };  
       
   117         
       
   118     /** SIP subscription-state */    
       
   119     enum TSimpleSipSubscriptionState
       
   120         {
       
   121         ESimpleStateNone=0,
       
   122         ESimpleStatePending,
       
   123         ESimpleStateActive,
       
   124         ESimpleStateTerminated
       
   125         };                    
       
   126 
       
   127 
       
   128     /**
       
   129      * Destructor
       
   130      * @since S60 3.2
       
   131      */
       
   132     virtual void Destroy() = 0;
       
   133 
       
   134     /**
       
   135      * Request type accessor
       
   136      * @since S60 3.2
       
   137      * @return request type
       
   138      */
       
   139     virtual TSimpleRequest RequestType() = 0;
       
   140 
       
   141     /**
       
   142      * Request type accessor
       
   143      * @since S60 3.2
       
   144      * @param aType request type
       
   145      */
       
   146     virtual void ModifyType( TSimpleRequest aType ) = 0;
       
   147 
       
   148     /**
       
   149      * Complete the open request
       
   150      * @since S60 3.2
       
   151      * @param aStatus result status
       
   152      */
       
   153     virtual void Complete( TInt aStatus ) = 0;
       
   154 
       
   155     /**
       
   156      * Request data type accessor
       
   157      * @since S60 3.2
       
   158      * @return request data content type
       
   159      */
       
   160     virtual TPtrC8 RequestContentType() = 0;
       
   161 
       
   162     /**
       
   163      * Request data accessor
       
   164      * @since S60 3.2
       
   165      * @return request data payload
       
   166      */
       
   167     virtual TPtrC8 RequestData() = 0;
       
   168 
       
   169     /**
       
   170      * Response data type setter.
       
   171      * @since S60 3.2
       
   172      * @param aData content that is NOT copied, ownership is transferred
       
   173      */ 
       
   174     virtual void SetResponseContentType( HBufC8* aData ) = 0;
       
   175     
       
   176     /**
       
   177      * Response data MIME multipart boundary setter.
       
   178      * @since S60 3.2
       
   179      * @param aData boundary
       
   180      */ 
       
   181     virtual void SetResponseBoundaryL( const TDesC8& aData ) = 0;
       
   182     
       
   183     /**
       
   184      * Response data MIME multipart start content-id setter
       
   185      * @since S60 3.2
       
   186      * @param aData content-id
       
   187      */ 
       
   188     virtual void SetResponseStartL( const TDesC8& aData ) = 0;        
       
   189 
       
   190     /**
       
   191      * Response data setter.
       
   192      * @since S60 3.2
       
   193      * @param aData content that is to be copied.
       
   194      */
       
   195     virtual void SetResponseDataL( const TDesC8& aData ) = 0;
       
   196 
       
   197     /**
       
   198      * Response method setter.
       
   199      * @since S60 3.2
       
   200      * @param aMethod a method
       
   201      */
       
   202     virtual void SetResponseMethod( TSimpleSIPResponse aMethod ) = 0;
       
   203     
       
   204     /**    
       
   205      * Aux data setter.
       
   206      * @since S60 3.2       
       
   207      * @param aData data 
       
   208      */
       
   209     virtual void SetAux( TInt aData ) = 0;      
       
   210 
       
   211     /**
       
   212      * Server response/request method accessor
       
   213      * @return SIP method
       
   214      */
       
   215     virtual TSimpleSIPResponse ResponseMethod() = 0;
       
   216 
       
   217     /**
       
   218      * Response data type accessor
       
   219      * @since S60 3.2
       
   220      * @return content type
       
   221      */
       
   222     virtual TPtrC8 ResponseContentType() = 0;
       
   223     
       
   224     /**
       
   225      * Response data MIME multipart boundary getter.
       
   226      * @since S60 3.2
       
   227      * @return data boundary
       
   228      */ 
       
   229     virtual TPtrC8 ResponseBoundary( ) = 0;
       
   230     
       
   231     /**
       
   232      * Response data MIME multipart start content-id getter
       
   233      * @since S60 3.2
       
   234      * @return start content-id
       
   235      */ 
       
   236     virtual TPtrC8 ResponseStart( ) = 0;     
       
   237 
       
   238     /**
       
   239      * Response data accessor
       
   240      * @since S60 3.2
       
   241      * @return response data payload
       
   242      */
       
   243     virtual TPtrC8 ResponseData() = 0;
       
   244 
       
   245     /**
       
   246      * Refresh time accessor
       
   247      * @since S60 3.2
       
   248      * @return refresh time in seconds, 0 means query once
       
   249      */
       
   250     virtual TUint RefreshTime() = 0;
       
   251 
       
   252     /**
       
   253      * Refresh time setter
       
   254      * @since S60 3.2
       
   255      * @param aTime time in seconds, 0 means query once
       
   256      */
       
   257     virtual void SetRefreshTime( TUint aTime) = 0;
       
   258 
       
   259     /**
       
   260      * Remote URI accessor
       
   261      * @since S60 3.2
       
   262      * @return remote URI
       
   263      */
       
   264     virtual TPtrC8 RemoteURI() = 0;
       
   265     
       
   266     /**
       
   267      * Remote URI setter
       
   268      * @since S60 3.2     
       
   269      * @param aURI remote URI
       
   270      */
       
   271     virtual void SetRemoteURIL( const TDesC8& aURI ) = 0;
       
   272 
       
   273     /**
       
   274      * Get refresh parameter
       
   275      * @since S60 3.2
       
   276      * return ETrue if refresh     
       
   277      */
       
   278     virtual TBool IsRefresh() = 0;
       
   279 
       
   280     /**
       
   281      * Refresh parameter setter
       
   282      * @since S60 3.2     
       
   283      * @param aRefresh refresh boolean value
       
   284      */
       
   285     virtual void SetRefresh( TBool aRefresh ) = 0;
       
   286 
       
   287     /**
       
   288      * Operation id getter
       
   289      * @since S60 3.2     
       
   290      * @return operation id
       
   291      */
       
   292     virtual TInt OpId( ) = 0;
       
   293     
       
   294     /**
       
   295      * auxiliary parameter needed sometimes
       
   296      * @since S60 3.2     
       
   297      * @return aux number
       
   298      */   
       
   299     virtual TInt Aux() = 0;
       
   300              
       
   301     /**
       
   302      * SIP Response reason setter
       
   303      * @since S60 3.2     
       
   304      * @param aReason reason
       
   305      */    
       
   306     virtual void SetResponseReason( TSimpleResponseReason aReason ) = 0;
       
   307     
       
   308     /**
       
   309      * SIP Response reason getter
       
   310      * @since S60 3.2     
       
   311      * @return aReason reason
       
   312      */   
       
   313     virtual TSimpleResponseReason ResponseReason() = 0;  
       
   314     
       
   315     /**
       
   316      * Set SIP-ETag value
       
   317      *
       
   318      * @since S60 3.2     
       
   319      * @param aTag tag
       
   320      */
       
   321     virtual void SetETagL( const TDesC8& aTag ) = 0;
       
   322 
       
   323     /**
       
   324      * get SIP-ETag value
       
   325      *
       
   326      * @since S60 3.2     
       
   327      * @return SIP-ETag value.
       
   328      */
       
   329     virtual TPtrC8 ETag() = 0;                    
       
   330 
       
   331     /**
       
   332      * IM message recipient setter
       
   333      *
       
   334      * @since S60 5.0
       
   335      * @param aRecipientId recipient ID
       
   336      */
       
   337     virtual void SetRecipientL( const TDesC8& aRecipientId ) = 0;
       
   338 
       
   339     /**
       
   340      * IM message recipient getter
       
   341      *
       
   342      * @since S60 5.0
       
   343      * @return recipient ID
       
   344      */
       
   345     virtual TPtrC8 Recipient() = 0;
       
   346 
       
   347     };
       
   348 
       
   349 #endif
       
   350 
       
   351 // End of File