idlefw/plugins/sapidataplugin/src/sapidataobserver.cpp
branchRCL_3
changeset 19 edd621764147
parent 16 b276298d5729
equal deleted inserted replaced
16:b276298d5729 19:edd621764147
    21 #include <liwgenericparam.h>
    21 #include <liwgenericparam.h>
    22 #include <s32mem.h>
    22 #include <s32mem.h>
    23 #include "sapidata.h"
    23 #include "sapidata.h"
    24 #include "sapidataobserver.h"
    24 #include "sapidataobserver.h"
    25 #include "sapidatapluginconst.h"
    25 #include "sapidatapluginconst.h"
       
    26 
       
    27 // Constants
       
    28 _LIT8( KErrorCode, "ErrorCode" );
       
    29 _LIT8( KTransactionId, "TransactionID" );
       
    30 
    26 // ---------------------------------------------------------------------------
    31 // ---------------------------------------------------------------------------
    27 // Constructor
    32 // Constructor
    28 // ---------------------------------------------------------------------------
    33 // ---------------------------------------------------------------------------
    29 //
    34 //
    30 CSapiDataObserver::CSapiDataObserver ()
    35 CSapiDataObserver::CSapiDataObserver ()
    45 
    50 
    46 // ---------------------------------------------------------------------------
    51 // ---------------------------------------------------------------------------
    47 // Register for notifications
    52 // Register for notifications
    48 // ---------------------------------------------------------------------------
    53 // ---------------------------------------------------------------------------
    49 //
    54 //
    50 void CSapiDataObserver::RegisterL( CLiwDefaultMap* aFilter, const TDesC& aRegistry )
    55 void CSapiDataObserver::RegisterL( CLiwDefaultMap* aFilter, 
       
    56                                    const TDesC& aRegistry,
       
    57                                    TUint aOptions )
    51     {
    58     {
    52     CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL();
    59     CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL();
    53     CleanupStack::PushL( inParamList );
    60     CleanupStack::PushL( inParamList );
       
    61     
    54     CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL();
    62     CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL();
    55     CleanupStack::PushL( outParamList );
    63     CleanupStack::PushL( outParamList );
    56         
    64         
    57     // Fill in input list for RequestNotification command
    65     // Fill in input list for RequestNotification command
    58     inParamList->AppendL(TLiwGenericParam(KType,TLiwVariant(aRegistry)));
    66     inParamList->AppendL(
    59     inParamList->AppendL(TLiwGenericParam(KFilter ,TLiwVariant(aFilter)));
    67         TLiwGenericParam( KType, TLiwVariant( aRegistry ) ) );
    60         
    68     
    61     TRAP_IGNORE( iInterface->ExecuteCmdL(KRequestNotification,
    69     inParamList->AppendL(
       
    70         TLiwGenericParam( KFilter ,TLiwVariant( aFilter ) ) );
       
    71         
       
    72     TRAP_IGNORE( iInterface->ExecuteCmdL(
       
    73                 KRequestNotification,
    62                 *inParamList,
    74                 *inParamList,
    63                 *outParamList,
    75                 *outParamList,
    64                 0,
    76                 aOptions,
    65                 this ) );
    77                 this ) );
    66     
    78       
    67     CleanupStack::PopAndDestroy( outParamList );
    79     TInt pos( 0 );
    68     CleanupStack::PopAndDestroy( inParamList ); 
    80     
       
    81     const TLiwGenericParam* outParam( 
       
    82         outParamList->FindFirst( pos, KErrorCode ) );
       
    83     
       
    84     if ( outParam )
       
    85         {
       
    86         TInt retval( outParam->Value().AsTInt32() );
       
    87         
       
    88         if( retval == KErrNone )
       
    89             {
       
    90             pos = 0;
       
    91             outParam = outParamList->FindFirst( pos, KTransactionId );
       
    92                     
       
    93             if ( outParam )
       
    94                 {
       
    95                 iTransactionId = outParam->Value().AsTInt32();            
       
    96                 }            
       
    97             }                
       
    98         }
       
    99     
       
   100     CleanupStack::PopAndDestroy( 2, inParamList ); 
    69     }
   101     }
    70 
   102 
    71 // ---------------------------------------------------------------------------
   103 // ---------------------------------------------------------------------------
    72 // Sing off to notification
   104 // Sing off to notification
    73 // ---------------------------------------------------------------------------
   105 // ---------------------------------------------------------------------------
    74 //
   106 //
    75 void CSapiDataObserver::ReleaseL()
   107 void CSapiDataObserver::ReleaseL()
    76     {
   108     {
    77     if( iInterface )
   109     if( !iInterface )
    78         {
   110         {
    79         CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL();
   111         return;
    80         CleanupStack::PushL( inParamList );
       
    81         CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL();
       
    82         CleanupStack::PushL( outParamList );
       
    83         
       
    84         TRAP_IGNORE( iInterface->ExecuteCmdL( KRequestNotification,
       
    85                 *inParamList,
       
    86                 *outParamList,
       
    87                 KLiwOptCancel,
       
    88                 this ));
       
    89         
       
    90         CleanupStack::PopAndDestroy( outParamList );
       
    91         CleanupStack::PopAndDestroy( inParamList );
       
    92         }
   112         }
       
   113     
       
   114     CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL();
       
   115     CleanupStack::PushL( inParamList );
       
   116     
       
   117     CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL();
       
   118     CleanupStack::PushL( outParamList );
       
   119     
       
   120     inParamList->AppendL( TLiwGenericParam( KTransactionId,
       
   121         TLiwVariant( iTransactionId ) ) ); 
       
   122     
       
   123     TRAP_IGNORE( iInterface->ExecuteCmdL( 
       
   124             KRequestNotification,
       
   125             *inParamList,
       
   126             *outParamList,
       
   127             KLiwOptCancel,
       
   128             this ));
       
   129     
       
   130     
       
   131     CleanupStack::PopAndDestroy( 2, inParamList );
    93     }
   132     }
    94 
   133 
    95 // ---------------------------------------------------------------------------
   134 // ---------------------------------------------------------------------------
    96 // Factory method construction
   135 // Factory method construction
    97 // ---------------------------------------------------------------------------
   136 // ---------------------------------------------------------------------------