idlefw/plugins/wrtdataplugin/src/wrtdataobserver.cpp
branchRCL_3
changeset 74 edd621764147
parent 64 b276298d5729
equal deleted inserted replaced
64:b276298d5729 74:edd621764147
    23 #include <liwgenericparam.h>
    23 #include <liwgenericparam.h>
    24 #include <s32mem.h>
    24 #include <s32mem.h>
    25 #include "wrtdata.h"
    25 #include "wrtdata.h"
    26 #include "wrtdataobserver.h"
    26 #include "wrtdataobserver.h"
    27 #include "wrtdatapluginconst.h"
    27 #include "wrtdatapluginconst.h"
       
    28 
       
    29 _LIT8( KErrorCode, "ErrorCode" );
       
    30 _LIT8( KTransactionId, "TransactionID" );
    28 
    31 
    29 // ---------------------------------------------------------------------------
    32 // ---------------------------------------------------------------------------
    30 // Factory method construction
    33 // Factory method construction
    31 // ---------------------------------------------------------------------------
    34 // ---------------------------------------------------------------------------
    32 //
    35 //
   165 //
   168 //
   166 void CWrtDataObserver::RegisterL( CLiwDefaultMap* aFilter )
   169 void CWrtDataObserver::RegisterL( CLiwDefaultMap* aFilter )
   167     {
   170     {
   168     CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL();
   171     CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL();
   169     CleanupStack::PushL( inParamList );
   172     CleanupStack::PushL( inParamList );
       
   173     
   170     CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL();
   174     CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL();
   171     CleanupStack::PushL( outParamList );
   175     CleanupStack::PushL( outParamList );
   172         
   176         
   173     // Fill in input list for RequestNotification command
   177     // Fill in input list for RequestNotification command
   174     inParamList->AppendL(TLiwGenericParam(KType,TLiwVariant(KCpData_PubData)));
   178     inParamList->AppendL(
   175     inParamList->AppendL(TLiwGenericParam(KFilter ,TLiwVariant(aFilter)));
   179         TLiwGenericParam( KType, TLiwVariant( KCpData_PubData ) ) );
       
   180     
       
   181     inParamList->AppendL(
       
   182         TLiwGenericParam( KFilter, TLiwVariant( aFilter ) ) );
   176         
   183         
   177     iError = KErrNone;
   184     iError = KErrNone;
   178     TRAP( iError, iInterface->ExecuteCmdL( 
   185     TRAP( iError, iInterface->ExecuteCmdL( 
   179                 KRequestNotification,
   186                 KRequestNotification,
   180                 *inParamList,
   187                 *inParamList,
   181                 *outParamList,
   188                 *outParamList,
   182                 0,
   189                 0,
   183                 this ) );
   190                 this ) );
   184     
   191            
   185     CleanupStack::PopAndDestroy( outParamList );
   192     TInt pos( 0 );
   186     CleanupStack::PopAndDestroy( inParamList ); 
   193     
       
   194     const TLiwGenericParam* outParam( 
       
   195         outParamList->FindFirst( pos, KErrorCode ) );
       
   196     
       
   197     if ( outParam )
       
   198         {
       
   199         TInt retval( outParam->Value().AsTInt32() );
       
   200         
       
   201         if( retval == KErrNone )
       
   202             {
       
   203             pos = 0;
       
   204             outParam = outParamList->FindFirst( pos, KTransactionId );
       
   205                     
       
   206             if ( outParam )
       
   207                 {
       
   208                 iTransactionId = outParam->Value().AsTInt32();            
       
   209                 }            
       
   210             }                
       
   211         }
       
   212                
       
   213     CleanupStack::PopAndDestroy( 2, inParamList ); 
   187     }
   214     }
   188 
   215 
   189 // ---------------------------------------------------------------------------
   216 // ---------------------------------------------------------------------------
   190 // CWrtDataObserver ::ReleaseL
   217 // CWrtDataObserver ::ReleaseL
   191 // Sing off to notification
   218 // Sing off to notification
   192 // ---------------------------------------------------------------------------
   219 // ---------------------------------------------------------------------------
   193 //
   220 //
   194 void CWrtDataObserver::ReleaseL()
   221 void CWrtDataObserver::ReleaseL()
   195     {
   222     {
   196     if( iInterface )
   223     if( !iInterface )
   197         {
   224         {
   198         CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL();
   225         return;
   199         CleanupStack::PushL( inParamList );
       
   200         CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL();
       
   201         CleanupStack::PushL( outParamList );
       
   202         
       
   203         TInt err(KErrNone);
       
   204         TRAP(err, iInterface->ExecuteCmdL( 
       
   205                 KRequestNotification,
       
   206                 *inParamList,
       
   207                 *outParamList,
       
   208                 KLiwOptCancel,
       
   209                 this ));
       
   210         
       
   211         CleanupStack::PopAndDestroy( outParamList );
       
   212         CleanupStack::PopAndDestroy( inParamList );
       
   213         }
   226         }
       
   227     
       
   228     CLiwGenericParamList* inParamList = CLiwGenericParamList::NewL();
       
   229     CleanupStack::PushL( inParamList );
       
   230     
       
   231     CLiwGenericParamList* outParamList = CLiwGenericParamList::NewL();
       
   232     CleanupStack::PushL( outParamList );
       
   233        
       
   234     inParamList->AppendL( TLiwGenericParam( KTransactionId,
       
   235         TLiwVariant( iTransactionId ) ) ); 
       
   236             
       
   237     TRAP_IGNORE( iInterface->ExecuteCmdL( 
       
   238             KRequestNotification,
       
   239             *inParamList,
       
   240             *outParamList,
       
   241             KLiwOptCancel,
       
   242             this ) );
       
   243             
       
   244     CleanupStack::PopAndDestroy( 2, inParamList );
   214     }
   245     }
   215 
   246 
   216 // End of file
   247 // End of file