--- a/remotemgmt_plat/fota_engine_api/inc/FotaEngine.h Tue Jul 13 09:37:43 2010 +0530
+++ b/remotemgmt_plat/fota_engine_api/inc/FotaEngine.h Tue Jul 13 09:51:41 2010 +0530
@@ -11,70 +11,47 @@
*
* Contributors:
*
-* Description: Fotaengine hdr
+ * Description: Fotaengine api
*
*/
-
-
#ifndef __FOTAENGINE_H__
#define __FOTAENGINE_H__
// INCLUDES
#include <e32std.h>
#include <e32def.h>
-#include <badesca.h>
-#include <AknServerApp.h>
#include <SyncMLDef.h>
-#include <apacmdln.h>
-#include <apgtask.h>
-#include <coemain.h>
-#include <s32file.h>
-#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <uikon.hrh>
-#else
-#include <uikon.hrh>
-#include <uiklaf/private/pluginuid.hrh>
-#endif
-
-#include "fotaengstream.h"
#include "fotaConst.h"
+#include <s32strm.h>
// CONSTANTS
/** FOTA Server commands */
enum TFotaIPCCmds
- {
- EFotaFirstCommand = RApaAppServiceBase::KServiceCmdBase,
- EDeletePackage,
- EFotaDownload,
- EFotaDownloadAndUpdate,
- EGetResult,
- EGetState,
- EIsPackageStoreSizeAvailable,
- EFotaOpenUpdatePackageStore,
- // Command for getting the downloaded & full size of the update package
- EFotaGetDownloadUpdatePackageSize,
- // Command to attempt resuming of the download session for downloading the remaining parts of the update package.
- // This service is restriced to DM UI and FMS Server.
- EFotaTryResumeDownload,
- EFotaUpdate,
- EUpdatePackageDownloadComplete,
- EFotaSendChunk,
- EFotaReleaseChunkHandle,
- EGetUpdatePackageIds,
- EGetUpdateTimestamp,
- EGenericAlertSentForPackage,
- EScheduledUpdate
- };
+ {
+ EFotaDownload, // The download command
+ EFotaDownloadAndUpdate, // The download and update command
+ EFotaUpdate, // The update command
+ EPauseDownload, // The download pause command
+ EFotaTryResumeDownload, // The download resume command
+ EGetState, // The get state command
+ EGetResult, // The get result command
+ EDeletePackage, // The package delete command
+ EGetUpdateTimestamp, // The get command for updated timestamp
+ EGetUpdatePackageIds, // The get command for all package ids
+ EGenericAlertSentForPackage, // The generic alert sent notification command
+ EScheduledUpdate, // The schedule update command
+ EGetCurrFwDetails // The get command for reading current firmware package details
+ };
-
+/** Fota start up action states */
enum TFotaUpdateStates
{
- EFotaDefault,
- EFotaPendingGenAlert,
- EFotaDownloadInterrupted,
- EFotaUpdateInterrupted
+ EFotaDefault, // No action
+ EFotaPendingGenAlert, // Send pending generic alert
+ EFotaDownloadInterrupted, // Try to resume download
+ EFotaUpdateInterrupted // Try to resume update
};
class TFotaScheduledUpdate;
@@ -82,436 +59,376 @@
// CLASS DECLARATION
/**
-* A client handle to a FOTA engine session.
-* @lib fotaengine.lib
-* @since Series 60 3.1
-*/
-class RFotaEngineSession : public RAknAppServiceBase
- {
+ * A client handle to a FOTA engine session.
+ * @lib fotaengine.lib
+ * @since SF4
+ */
+//class RFotaEngineSession : public RAknAppServiceBase // 10.1 changes
+class RFotaEngineSession : public RSessionBase
+ {
- friend class TDP2StreamBuf; // TDP2StreamBuf will use iChunk
-
-public: // enums
+public:
+ // enums
/**
- * An enumeration of the firmware update progress state codes as specified
- * in FUMO spec.
- */
+ * An enumeration of the firmware update progress state codes as specified
+ * in FUMO spec.
+ */
enum TState
- {
- /** No firmware update has been started */
- EIdle = 10,
- /** Client has sent a client initiated request */
- EClientRequest = 5,
- /** There is no data available and download is about to start */
- EStartingDownload = 15,
- /** Download failed and there is no data received */
- EDownloadFailed = 20,
- /** Download is progressing with resume support. This is an internal state and is not a valid FUMO state.
- * Only DM UI and Fota Server can get this state; others get state 30 instead.*/
- EDownloadProgressingWithResume = 25,
- /** Download is progressing without resume support. */
- EDownloadProgressing = 30,
- /** Have data and download has been completed successfully */
- EDownloadComplete = 40,
- /** Have data and about to start update */
- EStartingUpdate = 50,
- /** Denotes that the update is currently running, but has not yet
- completed */
- EUpdateProgressing = 60,
- /** Have data but update failed */
- EUpdateFailed = 70,
- /** Update failed and data deleted or removed */
- EUpdateFailedNoData = 80,
- /** Update complete and data still available */
- EUpdateSuccessful = 90,
- /** Data deleted or removed after a successful update */
- EUpdateSuccessfulNoData = 100,
- };
+ {
+ /** No firmware update has been started */
+ EIdle = 10,
+ /** Client has sent a client initiated request */
+ EClientRequest = 5,
+ /** There is no data available and download is about to start */
+ EStartingDownload = 15,
+ /** Download failed and there is no data received */
+ EDownloadFailed = 20,
+ /** Download is progressing without resume support. */
+ EDownloadProgressing = 30,
+ /** Have data and download has been completed successfully */
+ EDownloadComplete = 40,
+ /** Have data and about to start update */
+ EStartingUpdate = 50,
+ /** Denotes that the update is currently running, but has not yet
+ completed */
+ EUpdateProgressing = 60,
+ /** Have data but update failed */
+ EUpdateFailed = 70,
+ /** Update failed and data deleted or removed */
+ EUpdateFailedNoData = 80,
+ /** Update complete and data still available */
+ EUpdateSuccessful = 90,
+ /** Data deleted or removed after a successful update */
+ EUpdateSuccessfulNoData = 100,
+ };
- /**
- * An enumeration of the firmware update result codes as specified
- * in the OMA Firmware Update Management Oobject specification.
- */
-
+ /**
+ * An enumeration of the firmware update result codes as specified
+ * in the OMA Firmware Update Management Oobject specification.
+ */
enum TResult
{
- EResSuccessful = 200,
- EResUserCancelled = 401,
- EResCorruptedFWUPD = 402,
- EResPackageMismatch = 403,
- EResFailedSignatureAuthentication = 404,
- EResUndefinedError = 409,
- EResUpdateFailed = 410,
- EResMalformedOrBadURL = 411,
- EResAlternateDLServerUnavailable = 412,
- EResDLFailDueToDeviceOOM = 501,
- EResDLFailDueToNWIssues = 503
- };
-
-public: // Constructors
+ /** Requested operation is successful */
+ EResSuccessful = 200,
+ /** Requested operation is cancelled by user */
+ EResUserCancelled = 401,
+ /** Firmware update is corrupt */
+ EResCorruptedFWUPD = 402,
+ /** Firmware update mismatches with the device */
+ EResPackageMismatch = 403,
+ /** Not used */
+ EResFailedSignatureAuthentication = 404,
+ /** Undefined error occured during the operation */
+ EResUndefinedError = 409,
+ /** Update has failed */
+ EResUpdateFailed = 410,
+ /** Download failed due to malformed or bad url */
+ EResMalformedOrBadURL = 411,
+ /** The OMA DL server is unavailable */
+ EResAlternateDLServerUnavailable = 412,
+ /** Download paused due to out of memory */
+ EResDLFailDueToDeviceOOM = 501,
+ /** Download paused due to network error */
+ EResDLFailDueToNWIssues = 503,
- IMPORT_C RFotaEngineSession();
-
-public: // new functions
- /**
- * Opens session to Fota Engine
- *
- * @since Series 60 3.1
- * @param None
- * @return None
- */
- IMPORT_C void OpenL();
-
- /**
- * Closes session to Fota Engine
- *
- * @since Series 60 3.1
- * @param None
- * @return None
- */
- IMPORT_C void Close();
-
-
- /**
- * Called when DM server calls execute command to
- * Firmware update object URI ./FUMO/<x>/Download
- * Initiates a firmware download for the specified update package.
- *
- * @since Series 60 3.1
- * @param aPkgId Unique identifier of the update package.
- * Mapped to Mgmt URI ./FUMO/<x> in DM Framework
- * @param aPkgURL Contains the URL where the firmware update package
- * or download
- * descriptor is located. This URL is used for
- * alternative download
- * mechanism such as Descriptor Based Download.
- * Mgmt URI ./FUMO/<x>/Download/PkgURL
- * @param aProfileId ProfileId of the DM server that send the execute
- * command
- * @param aPkgName Name associated with the firmware update package,
- * may be empty
- * Mgmt URI ./FUMO/<x>/PkgName
- * @param aPkgVersion Version information for the firmware update
- * package,
- * may be empty.
- * Mgmt URI./FUMO/<x>/PkgVersion
- * @return Immediate result of the command
- * KErrNotFound: url doesn't exist
- */
- IMPORT_C TInt Download(
- const TInt aPkgId
- ,const TDesC8& aPkgURL
- ,const TSmlProfileId aProfileId
- ,const TDesC8& aPkgName
- ,const TDesC8& aPkgVersion);
-
-
- /**
- * Called when DM server calls execute command to
- * Firmware update object URI ./FUMO/<x>/DownloadAndUpdate
- * Initiates a firmware download and an immediate update for the specified
- * update package.
- *
- * @since Series 60 3.1
- * @param aPkgId Unique identifier of the update package.
- * Mapped to Mgmt URI ./FUMO/<x> in DM Framework
- * @param aPkgURL Contains the URL where the firmware update package or
- * download descriptor is located. This URL is used for
- * alternative download mechanism such as Descriptor
- * Based Download.
- * Mgmt URI ./FUMO/<x>/DownloadAndUpdate/PkgURL
- * @param aProfileId ProfileId of the DM server that send the execute
- * command
- * @param aPkgName Name associated with the firmware update package,
- * may be empty.
- * Mgmt URI ./FUMO/<x>/PkgName
- * @param aPkgVersion Version information for the firmware update
- * package, may be empty.
- * Mgmt URI./FUMO/<x>/PkgVersion
- * @return Immediate result of the command
- */
- IMPORT_C TInt DownloadAndUpdate(
- const TInt aPkgId
- ,const TDesC8& aPkgURL
- ,const TSmlProfileId aProfileId
- ,const TDesC8& aPkgName
- ,const TDesC8& aPkgVersion);
-
+ //Vendor specific errors
+ /** Download failed due to content type mismatch */
+ EResContentMisMatch = 600,
+ /** Download failed due to invalid OMA DL1.0 descriptor */
+ EResInvalidDownloadDescriptor = 601,
+ /** Update suspended due to low battery */
+ EResLowBattery = 602
+ };
+
+public:
+ // Constructors
+
+ IMPORT_C RFotaEngineSession();
+
+public:
+ // new functions
+ /**
+ * Opens session to Fota Engine
+ *
+ * @since SF4
+ * @param None
+ * @return None
+ */
+ IMPORT_C void OpenL();
+
+ /**
+ * Closes session to Fota Engine
+ *
+ * @since SF4
+ * @param None
+ * @return None
+ */
+ IMPORT_C void Close();
- /**
- * Called when DM server calls execute command to
- * Firmware update object URI ./FUMO/<x>/Update
- * Initiates a firmware update for the specified update package.
- * Firmware Update Package should be already downloaded to the device
- * either using DM Large Object or OMA OTA download mechanisms.
- *
- * @since Series 60 3.1
- * @param aPkgId Unique identifier of the update package.
- * @param aProfileId ProfileId of the DM server that send the execute
- * command
- * @param aPkgName Name associated with the firmware update package, may
- * be empty.
- * Mgmt URI ./FUMO/<x>/PkgName
- * @param aPkgVersion Version information for the firmware update
- * package, may be empty.
- * Mgmt URI./FUMO/<x>/PkgVersion
- * @return Immediate result of the command
- */
- IMPORT_C TInt Update(
- const TInt aPkgId
- ,const TSmlProfileId aProfileId
- ,const TDesC8& aPkgName
- ,const TDesC8& aPkgVersion);
-
-
- /**
- * Called when DM server is about to start sending
- * new firmware update package using DM Large Object download.
- * This function is used to enquire if there is enough space available
- * for the firmware update package.
- * e.g when DM server is about to start sending new firmware update package using
- * DM Large Object download.
-
- *
- * @since Series 60 3.1
- * @param aSize Size of the firmware update package. Since
- * continuation of interrupted downloads is not supported
- * , this means new update package.
- * @return ETrue if there is enough space available, EFalse
- * otherwise
- */
- IMPORT_C TBool IsPackageStoreSizeAvailable( const TInt aSize );
-
-
- /**
- * Opens stream to update package storage.
- * Call UpdatePackageDownloadComplete when package is completely written.
- *
- * @since Series 60 3.1
- * @param aPkgId Unique identifier of the update package. Download mgr
- * may use value -1.
- * @param aPkgStore On return, open stream in which file may be written
- * to.
- * @return Immediate result of the command. KErrInUse store is
- * already opened
- */
- IMPORT_C TInt OpenUpdatePackageStore( const TInt aPkgId
- , RWriteStream*& aPkgStore );
+ /**
+ * Called when DM server calls execute command to
+ * Firmware update object URI ./FUMO/<x>/Download
+ * Initiates a firmware download for the specified update package.
+ *
+ * @since SF4
+ * @param aPkgId Unique identifier of the update package.
+ * Mapped to Mgmt URI ./FUMO/<x> in DM Framework
+ * @param aPkgURL Contains the URL where the firmware update package
+ * or download
+ * descriptor is located. This URL is used for
+ * alternative download
+ * mechanism such as Descriptor Based Download.
+ * Mgmt URI ./FUMO/<x>/Download/PkgURL
+ * @param aProfileId ProfileId of the DM server that send the execute
+ * command
+ * @param aPkgName Name associated with the firmware update package,
+ * may be empty
+ * Mgmt URI ./FUMO/<x>/PkgName
+ * @param aPkgVersion Version information for the firmware update
+ * package,
+ * may be empty.
+ * Mgmt URI./FUMO/<x>/PkgVersion
+ * @param aSilent Decides whether the download has to be silent or not
+ * @return Immediate result of the command
+ * KErrNotFound: url doesn't exist
+ */
+ IMPORT_C TInt Download(const TInt aPkgId, const TDesC8& aPkgURL,
+ const TSmlProfileId aProfileId, const TDesC8& aPkgName,
+ const TDesC8& aPkgVersion, TBool aSilentDownload = EFalse);
- /**
- * Gets the downloaded and full size of the update package.
- * Called by Download Manager during resume operation to know the size of partially downloaded package.
- * @since Series 60 3.2.2
- * @param aPkgId Unique identifier of the update package.
- * @param aDownloadedSize On return, size of the downloaded package in bytes
- * @param aTotalSize On return, full size of the download package in bytes
- *
- * @return KErrNone when successful, else System wide errors
- *
- */
-
- IMPORT_C TInt GetDownloadUpdatePackageSize( const TInt aPkgId, TInt& aDownloadedSize, TInt& aTotalSize );
-
- /**
- * Requests to resume the suspended download of the update package.
- * Called by Fota Monitory Service. for ex, when network is available again.
- * @since Series 60 3.2.2
- * @param None
- *
- * @return KErrNone when successful, else System wide errors
- *
- */
-
- IMPORT_C TInt TryResumeDownload();
+ /**
+ * Called when DM server calls execute command to
+ * Firmware update object URI ./FUMO/<x>/DownloadAndUpdate
+ * Initiates a firmware download and an immediate update for the specified
+ * update package.
+ *
+ * @since SF4
+ * @param aPkgId Unique identifier of the update package.
+ * Mapped to Mgmt URI ./FUMO/<x> in DM Framework
+ * @param aPkgURL Contains the URL where the firmware update package or
+ * download descriptor is located. This URL is used for
+ * alternative download mechanism such as Descriptor
+ * Based Download.
+ * Mgmt URI ./FUMO/<x>/DownloadAndUpdate/PkgURL
+ * @param aProfileId ProfileId of the DM server that send the execute
+ * command
+ * @param aPkgName Name associated with the firmware update package,
+ * may be empty.
+ * Mgmt URI ./FUMO/<x>/PkgName
+ * @param aPkgVersion Version information for the firmware update
+ * package, may be empty.
+ * Mgmt URI./FUMO/<x>/PkgVersion
+ * @param aSilent Decides whether the download has to be silent or not
+ * @return Immediate result of the command
+ */
+ IMPORT_C TInt DownloadAndUpdate(const TInt aPkgId, const TDesC8& aPkgURL,
+ const TSmlProfileId aProfileId, const TDesC8& aPkgName,
+ const TDesC8& aPkgVersion, TBool aSilentDownload = EFalse);
-
- /**
- * Call this when download of update package is completed. In case of
- * software error or network interruption, this is not called and package
- * store is left empty. When this is called, fotaengine closes the stream
- * and associated storage.
- *
- * @since Series 60 3.1
- * @param aPkgId Unique identifier of the update package. Download
- * mgr may use value -1.
- * @return None
- */
- IMPORT_C void UpdatePackageDownloadComplete( const TInt aPkgId );
-
-
- /**
- * Called when caller wants to enquire State of specified
- * firmware update. If the State is unknown to FOTA Engine, then it should
- * return EIdle.
- *
- * @since Series 60 3.1
- * @param aPkgId Unique identifier of the update package.
- * @return State reached by specified firmware update package
- */
- IMPORT_C TState GetState( const TInt aPkgId );
-
-
- /**
- * Called when caller wants to enquire Final Result Code of specified
- * firmware update operation. If the update operation is not yet reached
- * final stage, then -1 should be returned to the caller. Possible Final
- * Result Codes are specified in OMA FUMO Specification. Note that Download
- * operation also ends to final result code e.g. 202 - Successful Download.
- *
- * @since Series 60 3.1
- * @param aPkgId Unique identifier of the update package.
- * @return Result code as specified in FUMO specification, -1 if
- * not yet reached final result.
- */
- IMPORT_C TInt GetResult( const TInt aPkgId );
-
-
- /**
- * Called when DM server deletes firmware update management object
- * from device's management tree. I.e. Delete to mgmt URI ./FUMO/<x>.
- * If FOTA Engine has not yet deleted specified update package, then it
- * should do so.
- *
- * @since Series 60 3.1
- * @param aPkgId Unique identifier of the update package.
- * @return Result code
- */
- IMPORT_C TInt DeleteUpdatePackage( const TInt aPkgId );
-
+ /**
+ * Called when DM server calls execute command to
+ * Firmware update object URI ./FUMO/<x>/Update
+ * Initiates a firmware update for the specified update package.
+ * Firmware Update Package should be already downloaded to the device
+ * either using DM Large Object or OMA OTA download mechanisms.
+ *
+ * @since SF4
+ * @param aPkgId Unique identifier of the update package.
+ * @param aProfileId ProfileId of the DM server that send the execute
+ * command
+ * @param aPkgName Name associated with the firmware update package, may
+ * be empty.
+ * Mgmt URI ./FUMO/<x>/PkgName
+ * @param aPkgVersion Version information for the firmware update
+ * package, may be empty.
+ * Mgmt URI./FUMO/<x>/PkgVersion
+ * @return Immediate result of the command
+ */
+ IMPORT_C TInt Update(const TInt aPkgId, const TSmlProfileId aProfileId,
+ const TDesC8& aPkgName, const TDesC8& aPkgVersion);
+
+ /**
+ * Requests to pause the ongoing download.
+ *
+ * @since Symbian 4
+ * @param None
+ * @return KErrNone if pause is successful, or any system-wide error.
+ */
+ IMPORT_C TInt PauseDownload();
/**
- * Retrieves the timestamp of last succesful update.
- *
- * @since Series 60 3.1
- * @param aUpdate On return, contains time of last succesfull update
- * @return Error code. KErrUnknown if device has never been
- * updated.
- */
- IMPORT_C TInt LastUpdate( TTime& aUpdate );
+ * Requests to resume the suspended download of the update package.
+ * Called by Fota Monitory Service. for ex, when network is available again.
+ * @since 3.2.2
+ * @param aSilent Decides whether the download has to be silent or not
+ *
+ * @return KErrNone when successful, else System wide errors
+ *
+ */
+
+ IMPORT_C TInt TryResumeDownload(TBool aSilentDownload = EFalse);
+
+ /**
+ * Called when caller wants to enquire State of specified
+ * firmware update. If the State is unknown to FOTA Engine, then it should
+ * return EIdle.
+ *
+ * @since SF4
+ * @param aPkgId Unique identifier of the update package.
+ * @return State reached by specified firmware update package
+ */
+ IMPORT_C TState GetState(const TInt aPkgId);
+
+ /**
+ * Called when caller wants to enquire Final Result Code of specified
+ * firmware update operation. If the update operation is not yet reached
+ * final stage, then -1 should be returned to the caller. Possible Final
+ * Result Codes are specified in OMA FUMO Specification. Note that Download
+ * operation also ends to final result code e.g. 202 - Successful Download.
+ *
+ * @since SF4
+ * @param aPkgId Unique identifier of the update package.
+ * @return Result code as specified in FUMO specification, -1 if
+ * not yet reached final result.
+ */
+ IMPORT_C TInt GetResult(const TInt aPkgId);
+
+ /**
+ * Called when DM server deletes firmware update management object
+ * from device's management tree. I.e. Delete to mgmt URI ./FUMO/<x>.
+ * If FOTA Engine has not yet deleted specified update package, then it
+ * should do so.
+ *
+ * @since SF4
+ * @param aPkgId Unique identifier of the update package.
+ * @return Result code
+ */
+ IMPORT_C TInt DeleteUpdatePackage(const TInt aPkgId);
+
+ /**
+ * Retrieves the timestamp of last succesful update.
+ *
+ * @since SF4
+ * @param aUpdate On return, contains time of last succesfull update
+ * @return Error code. KErrUnknown if device has never been
+ * updated.
+ */
+ IMPORT_C TInt LastUpdate(TTime& aUpdate);
+
+ /**
+ * Tells device FW version
+ *
+ * @since SF4
+ * @param aSWVersion On return, contains FW version of device.
+ * @return Error code
+ */
+ IMPORT_C TInt CurrentVersion(TDes& aSWVersion);
- /**
- * Tells device FW version
- *
- * @since Series 60 3.1
- * @param aSWVersion On return, contains FW version of device.
- * @return Error code
- */
- IMPORT_C TInt CurrentVersion( TDes& aSWVersion );
+ /**
+ * Gets IDs of the present update packages.
+ *
+ * @since SF4
+ * @param aPackageIdList On return, contains array of pkg ids
+ * @return Error code
+ */
+ IMPORT_C TInt GetUpdatePackageIds(TDes16& aPackageIdList);
+
+ /**
+ * Version of the fota server
+ *
+ * @since SF4
+ * @return version
+ */
+ IMPORT_C TVersion Version() const;
+
+ /**
+ * Tells fotaserver that generic alert for package is sent.
+ * When fotaengine session is closed, cleanup for package
+ * is done.
+ *
+ * @since SF4
+ * @param aPackageId
+ * @return Error code
+ */
+ IMPORT_C void GenericAlertSentL(const TInt aPackageID);
- /**
- * Gets IDs of the present update packages.
- *
- * @since Series 60 3.1
- * @param aPackageIdList On return, contains array of pkg ids
- * @return Error code
- */
- IMPORT_C TInt GetUpdatePackageIds( TDes16& aPackageIdList );
+ /**
+ * Like Update, but called by scheduler mechanism.
+ * Needed package details (profile id etc are already known)
+ *
+ * @since 3.2
+ * @param aSchedule Schedule data
+ * @return Error code
+ */
+ IMPORT_C TInt ScheduledUpdateL(TFotaScheduledUpdate aSchedule);
- IMPORT_C TVersion Version() const;
+ /**
+ * Gets the details for current/last firmware update.
+ *
+ * @since SF4
+ * @param aName - name of the firmware
+ * @param aVersion - version of the firmware
+ * @param aSize - size of the firmware in bytes
+ * @return, on return all the params would be filled. Can leave with system wide error.
+ */
+ IMPORT_C void GetCurrentFirmwareDetailsL(TDes8& aName, TDes8& aVersion,
+ TInt& aSize);
+
+ IMPORT_C TBool IsPackageStoreSizeAvailable(const TInt aSize);
+
+
+ IMPORT_C TInt OpenUpdatePackageStore(const TInt aPkgId
+ ,RWriteStream*& aPkgStore);
+
+ IMPORT_C TInt GetDownloadUpdatePackageSize(const TInt aPkgId, TInt& aDownloadedSize, TInt& aTotalSize);
+
+ IMPORT_C void UpdatePackageDownloadComplete(
+ const TInt aPkgId);
+
+private:
+
+ /** Returns the UID of the service that this session provides an
+ * interface for. Client side service implementations must implement this
+ * function to return the UID for the service that they implement.
+ *
+ * @since SF4
+ * @param None
+ * @return The UID of the service implemented by the derived class.
+ */
+ TUid ServiceUid() const;
- /**
- * Tells fotaserver that generic alert for package is sent.
- * When fotaengine session is closed, cleanup for package
- * is done.
- *
- * @since Series 60 3.1
- * @param aPackageId
- * @return Error code
- */
- IMPORT_C void GenericAlertSentL( const TInt aPackageID ) ;
-
-
- /**
- * Like Update, but called by scheduler mechanism.
- * Needed package details (profile id etc are already known)
- *
- * @since Series 60 3.2
- * @param aSchedule Schedule data
- * @return Error code
- */
- IMPORT_C TInt ScheduledUpdateL( TFotaScheduledUpdate aSchedule );
-
-
-private: // From RApaAppServiceBase
-
- /** Returns the UID of the service that this session provides an
- * interface for. Client side service implementations must implement this
- * function to return the UID for the service that they implement.
- *
- * @since Series 60 3.1
- * @param None
- * @return The UID of the service implemented by the derived class.
- */
- TUid ServiceUid() const;
-
- IMPORT_C virtual void ExtensionInterface(
- TUid aInterfaceId
- ,TAny*& aImplementation );
-
-private: // New methods
+private:
/**
- * Signals the server to read chunk contents
- *
- * @since Series 60 3.1
- * @param aP1 Pointer to beginning of content
- * @param aP2 Pointer to end of content
- * @return
- **/
- void SendChunkL(const TUint8* aP1, const TUint8* aP2);
+ * Starts fotaserver server application.
+ *
+ * @since SF4
+ * @param aNameUid Differentiator.
+ * @param aAppServerUid FotaServer app uid
+ * @return None
+ **/
+ void StartApplicationL(const TUid& aNameUid, const TUid& aAppServerUid);
/**
- * Signals the server to release chunk handle
- *
- * @since Series 60 3.1
- * @param None
- * @return
- **/
- TInt ReleaseChunkHandle();
-
- /**
- * Starts fotaserver server application.
- *
- * @since Series 60 3.1
- * @param aNameUid Differentiator.
- * @param aAppServerUid FotaServer app uid
- * @return None
- **/
- void StartApplicationL( const TUid& aNameUid,const TUid& aAppServerUid );
-
-
- /**
- * Connects to running fotaserver instance
- *
- * @since Series 60 3.1
- * @param aNameUid Differentiator.
- * @param aAppServerUid FotaServer app uid
- * @return None
- **/
- void ConnectToServerL( const TUid& aNameUid,const TUid& aAppServerUid );
+ * Connects to the server
+ *
+ * @since SF4
+ * @return KErrNone if successful, otherwise system wide errors
+ **/
+
+ TBool connectToHbServer();
private: // Data
- /**
- * Stream for writing swupd file to chunk
- */
- RFotaWriteStream* iStream;
/**
- * Chunk for sending swupd contents to fotaserver
- */
- RChunk iChunk;
-
-
- /**
* If not -1 , indicates that generic alert has been sent for this package
*/
TInt iGenericAlertSentPkgID;
- };
-
+ };
#endif // __FOTAENGINE_H__