harvester/client/src/harvesterrequestactive.cpp
changeset 43 c5e73110f733
parent 40 910a23996aa0
child 48 1389872e7c51
equal deleted inserted replaced
40:910a23996aa0 43:c5e73110f733
    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;
    43     iAlbumIds = NULL;
    40     iAlbumIds = NULL;
    47 // CHarvesterRequestActive::NewL
    44 // CHarvesterRequestActive::NewL
    48 // Two-phased constructor.
    45 // Two-phased constructor.
    49 // --------------------------------------------------------------------------- 
    46 // --------------------------------------------------------------------------- 
    50 //
    47 //
    51 CHarvesterRequestActive* CHarvesterRequestActive::NewL(
    48 CHarvesterRequestActive* CHarvesterRequestActive::NewL(
    52         RHarvesterClient& aClient, MHarvestObserver* aObserver,
    49         RHarvesterClient& aClient,
    53         TInt aService, const TDesC& aUri, 
    50         TInt aService, const TDesC& aUri, 
    54         HBufC8* aAlbumIds, TBool aAddLocation,
    51         HBufC8* aAlbumIds, TBool aAddLocation,
    55         CHarvesterRequestQueue* aQueue )
    52         CHarvesterRequestQueue* aQueue )
    56     {
    53     {
    57     CHarvesterRequestActive* self = new( ELeave )CHarvesterRequestActive( aClient, aObserver,
    54     CHarvesterRequestActive* self = new( ELeave )CHarvesterRequestActive( aClient,
    58             aService, aUri, aAlbumIds, aAddLocation, aQueue );
    55             aService, aUri, aAlbumIds, aAddLocation, aQueue );
    59     return self;
    56     return self;
    60     }
    57     }
    61 
    58 
    62 // ---------------------------------------------------------------------------
    59 // ---------------------------------------------------------------------------
    63 // CHarvesterRequestActive::CHarvesterRequestActive()
    60 // CHarvesterRequestActive::CHarvesterRequestActive()
    64 // C++ default constructor can NOT contain any code, that might leave.
    61 // C++ default constructor can NOT contain any code, that might leave.
    65 // ---------------------------------------------------------------------------
    62 // ---------------------------------------------------------------------------
    66 //
    63 //
    67 CHarvesterRequestActive::CHarvesterRequestActive( RHarvesterClient& aClient,
    64 CHarvesterRequestActive::CHarvesterRequestActive( RHarvesterClient& aClient, 
    68     MHarvestObserver* aObserver, TInt aService, const TDesC& aUri, 
    65     TInt aService, const TDesC& aUri, 
    69     HBufC8* aAlbumIds, TBool aAddLocation, CHarvesterRequestQueue* aQueue )
    66     HBufC8* aAlbumIds, TBool aAddLocation, CHarvesterRequestQueue* aQueue )
    70     : CActive( CActive::EPriorityStandard ), iClient( aClient ), iObserver( aObserver ), 
    67     : CActive( CActive::EPriorityStandard ), iClient( aClient ), 
    71     iService( aService ), iUri( aUri ), iAlbumIds( aAlbumIds ), iAddLocation( aAddLocation ),
    68     iService( aService ), iUri( aUri ), iAlbumIds( aAlbumIds ), iAddLocation( aAddLocation ),
    72     iRequestQueue( aQueue ), iLocation( EFalse ), iCancelled( EFalse )
    69     iRequestQueue( aQueue ), iLocation( EFalse ), iCancelled( EFalse )
    73     {
    70     {
    74     CActiveScheduler::Add( this );
    71     CActiveScheduler::Add( this );
    75     }
    72     }
    78 // CHarvesterRequestActive::RunL()
    75 // CHarvesterRequestActive::RunL()
    79 // ---------------------------------------------------------------------------
    76 // ---------------------------------------------------------------------------
    80 //
    77 //
    81 void CHarvesterRequestActive::RunL()
    78 void CHarvesterRequestActive::RunL()
    82     {
    79     {
    83     if( iStatus.Int() && iObserver )
       
    84         {
       
    85         iObserver->HarvestingComplete( iUri, iStatus.Int() );
       
    86         }       
       
    87     iRequestCompleted = ETrue;
    80     iRequestCompleted = ETrue;
    88     if( iRequestQueue )
    81     if( iRequestQueue )
    89         {
    82         {
    90         iRequestQueue->RequestComplete();
    83         iRequestQueue->RequestComplete();
    91         }
    84         }
   100     if( aError == KErrCancel )
    93     if( aError == KErrCancel )
   101         {
    94         {
   102         return KErrNone;
    95         return KErrNone;
   103         }
    96         }
   104     
    97     
   105     if( iObserver )
       
   106         {
       
   107         iObserver->HarvestingComplete( iUri, aError );
       
   108         }    
       
   109     iRequestCompleted = ETrue;
    98     iRequestCompleted = ETrue;
   110     return KErrNone;
    99     return KErrNone;
   111     }
   100     }
   112 
   101 
   113 // ---------------------------------------------------------------------------
   102 // ---------------------------------------------------------------------------
   131     TIpcArgs ipcArgs( &iUri, iAlbumIds, &iLocation );
   120     TIpcArgs ipcArgs( &iUri, iAlbumIds, &iLocation );
   132     iPersistentArgs = ipcArgs;
   121     iPersistentArgs = ipcArgs;
   133     
   122     
   134     if( !iCancelled )
   123     if( !iCancelled )
   135         {
   124         {
   136         iClient.HarvestFile( iService, iPersistentArgs, iStatus );
   125         iClient.HarvestFile( iService, iPersistentArgs, iStatus, iUri );
   137         SetActive();
   126         SetActive();
   138         }
   127         }
   139     }
   128     }
   140 
   129 
   141 // ---------------------------------------------------------------------------
   130 // ---------------------------------------------------------------------------
   142 // CHarvesterRequestActive::ForceHarvest()
   131 // CHarvesterRequestActive::ForceHarvest()
   143 // ---------------------------------------------------------------------------
   132 // ---------------------------------------------------------------------------
   144 //
   133 //
   145 void CHarvesterRequestActive::ForceHarvest()
   134 void CHarvesterRequestActive::ForceHarvest()
   146     {
   135     {
   147     iObserver = NULL;
   136     WRITELOG( "CHarvesterRequestActive::ForceHarvest()");
   148     
   137     
   149     TPckg<TBool> location( iAddLocation );
   138     TPckg<TBool> location( iAddLocation );
   150     iLocation.Set( location );
   139     iLocation.Set( location );
   151     
   140     
   152     TIpcArgs ipcArgs( &iUri, iAlbumIds, &iLocation );
   141     TIpcArgs ipcArgs( &iUri, iAlbumIds, &iLocation );