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 } |
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 ); |