harvester/client/src/harvesterrequestactive.cpp
changeset 45 a93990e5815e
parent 20 6dfc5f825351
child 52 40db28bb26b8
equal deleted inserted replaced
36:aa5a574040a4 45:a93990e5815e
    17 
    17 
    18 #include <e32base.h>
    18 #include <e32base.h>
    19 
    19 
    20 #include "harvesterrequestactive.h"
    20 #include "harvesterrequestactive.h"
    21 #include "harvesterrequestqueue.h"
    21 #include "harvesterrequestqueue.h"
       
    22 #include "harvesterlog.h"
    22 
    23 
    23 // ======== MEMBER FUNCTIONS ========
    24 // ======== MEMBER FUNCTIONS ========
    24 
    25 
    25 // ---------------------------------------------------------------------------
    26 // ---------------------------------------------------------------------------
    26 // CHarvesterRequestActive::~CHarvesterRequestActive()
    27 // CHarvesterRequestActive::~CHarvesterRequestActive()
    30 CHarvesterRequestActive::~CHarvesterRequestActive()
    31 CHarvesterRequestActive::~CHarvesterRequestActive()
    31     {
    32     {
    32     if( IsActive() )
    33     if( IsActive() )
    33         {
    34         {
    34         Cancel();
    35         Cancel();
    35         if( iObserver )
       
    36             {
       
    37             iObserver->HarvestingComplete( iUri, KErrCancel );
       
    38             }    
       
    39         iRequestCompleted = ETrue;
    36         iRequestCompleted = ETrue;
    40         }
    37         }
    41     
    38     
    42     delete iAlbumIds;
    39     delete iAlbumIds;
       
    40     iAlbumIds = NULL;
    43     }
    41     }
    44 
    42 
    45 // ---------------------------------------------------------------------------
    43 // ---------------------------------------------------------------------------
    46 // CHarvesterRequestActive::NewL
    44 // CHarvesterRequestActive::NewL
    47 // Two-phased constructor.
    45 // Two-phased constructor.
    48 // --------------------------------------------------------------------------- 
    46 // --------------------------------------------------------------------------- 
    49 //
    47 //
    50 CHarvesterRequestActive* CHarvesterRequestActive::NewL(
    48 CHarvesterRequestActive* CHarvesterRequestActive::NewL(
    51         RHarvesterClient& aClient, MHarvestObserver* aObserver,
    49         RHarvesterClient& aClient,
    52         TInt aService, const TDesC& aUri, 
    50         TInt aService, const TDesC& aUri, 
    53         HBufC8* aAlbumIds, TBool aAddLocation,
    51         HBufC8* aAlbumIds, TBool aAddLocation,
    54         CHarvesterRequestQueue* aQueue )
    52         CHarvesterRequestQueue* aQueue )
    55     {
    53     {
    56     CHarvesterRequestActive* self = new( ELeave )CHarvesterRequestActive( aClient, aObserver,
    54     CHarvesterRequestActive* self = new( ELeave )CHarvesterRequestActive( aClient,
    57             aService, aUri, aAlbumIds, aAddLocation, aQueue );
    55             aService, aUri, aAlbumIds, aAddLocation, aQueue );
    58     return self;
    56     return self;
    59     }
    57     }
    60 
    58 
    61 // ---------------------------------------------------------------------------
    59 // ---------------------------------------------------------------------------
    62 // CHarvesterRequestActive::CHarvesterRequestActive()
    60 // CHarvesterRequestActive::CHarvesterRequestActive()
    63 // C++ default constructor can NOT contain any code, that might leave.
    61 // C++ default constructor can NOT contain any code, that might leave.
    64 // ---------------------------------------------------------------------------
    62 // ---------------------------------------------------------------------------
    65 //
    63 //
    66 CHarvesterRequestActive::CHarvesterRequestActive( RHarvesterClient& aClient,
    64 CHarvesterRequestActive::CHarvesterRequestActive( RHarvesterClient& aClient, 
    67     MHarvestObserver* aObserver, TInt aService, const TDesC& aUri, 
    65     TInt aService, const TDesC& aUri, 
    68     HBufC8* aAlbumIds, TBool aAddLocation, CHarvesterRequestQueue* aQueue )
    66     HBufC8* aAlbumIds, TBool aAddLocation, CHarvesterRequestQueue* aQueue )
    69     : CActive( CActive::EPriorityStandard ), iClient( aClient ), iObserver( aObserver ), 
    67     : CActive( CActive::EPriorityStandard ), iClient( aClient ), 
    70     iService( aService ), iUri( aUri ), iAlbumIds( aAlbumIds ), iAddLocation( aAddLocation ),
    68     iService( aService ), iUri( aUri ), iAlbumIds( aAlbumIds ), iAddLocation( aAddLocation ),
    71     iRequestQueue( aQueue ), iLocation( EFalse ), iCancelled( EFalse )
    69     iRequestQueue( aQueue ), iLocation( EFalse ), iCancelled( EFalse )
    72     {
    70     {
    73     CActiveScheduler::Add( this );
    71     CActiveScheduler::Add( this );
    74     }
    72     }
    77 // CHarvesterRequestActive::RunL()
    75 // CHarvesterRequestActive::RunL()
    78 // ---------------------------------------------------------------------------
    76 // ---------------------------------------------------------------------------
    79 //
    77 //
    80 void CHarvesterRequestActive::RunL()
    78 void CHarvesterRequestActive::RunL()
    81     {
    79     {
    82     if( iStatus.Int() && iObserver )
       
    83         {
       
    84         iObserver->HarvestingComplete( iUri, iStatus.Int() );
       
    85         }       
       
    86     iRequestCompleted = ETrue;
    80     iRequestCompleted = ETrue;
    87     if( iRequestQueue )
    81     if( iRequestQueue )
    88         {
    82         {
    89         iRequestQueue->RequestComplete();
    83         iRequestQueue->RequestComplete();
    90         }
    84         }
    99     if( aError == KErrCancel )
    93     if( aError == KErrCancel )
   100         {
    94         {
   101         return KErrNone;
    95         return KErrNone;
   102         }
    96         }
   103     
    97     
   104     if( iObserver )
       
   105         {
       
   106         iObserver->HarvestingComplete( iUri, aError );
       
   107         }    
       
   108     iRequestCompleted = ETrue;
    98     iRequestCompleted = ETrue;
   109     return KErrNone;
    99     return KErrNone;
   110     }
   100     }
   111 
   101 
   112 // ---------------------------------------------------------------------------
   102 // ---------------------------------------------------------------------------
   130     TIpcArgs ipcArgs( &iUri, iAlbumIds, &iLocation );
   120     TIpcArgs ipcArgs( &iUri, iAlbumIds, &iLocation );
   131     iPersistentArgs = ipcArgs;
   121     iPersistentArgs = ipcArgs;
   132     
   122     
   133     if( !iCancelled )
   123     if( !iCancelled )
   134         {
   124         {
   135         iClient.HarvestFile( iService, iPersistentArgs, iStatus );
   125         iClient.HarvestFile( iService, iPersistentArgs, iStatus, iUri );
   136         SetActive();
   126         SetActive();
   137         }
   127         }
   138     }
   128     }
   139 
   129 
   140 // ---------------------------------------------------------------------------
   130 // ---------------------------------------------------------------------------
   141 // CHarvesterRequestActive::ForceHarvest()
   131 // CHarvesterRequestActive::ForceHarvest()
   142 // ---------------------------------------------------------------------------
   132 // ---------------------------------------------------------------------------
   143 //
   133 //
   144 void CHarvesterRequestActive::ForceHarvest()
   134 void CHarvesterRequestActive::ForceHarvest()
   145     {
   135     {
   146     iObserver = NULL;
   136     WRITELOG( "CHarvesterRequestActive::ForceHarvest()");
   147     
   137     
   148     TPckg<TBool> location( iAddLocation );
   138     TPckg<TBool> location( iAddLocation );
   149     iLocation.Set( location );
   139     iLocation.Set( location );
   150     
   140     
   151     TIpcArgs ipcArgs( &iUri, iAlbumIds, &iLocation );
   141     TIpcArgs ipcArgs( &iUri, iAlbumIds, &iLocation );