williamr@2: /* williamr@2: * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: Information about an alert notification. williamr@2: * williamr@2: */ williamr@2: /////////////////////////////////////////////////////////////////////////////// williamr@2: // SyncMLAlertInfo.h williamr@2: // williamr@2: // v09 williamr@2: // williamr@2: /////////////////////////////////////////////////////////////////////////////// williamr@2: #ifndef __SYNCMLALERTINFO_H__ williamr@2: #define __SYNCMLALERTINFO_H__ williamr@2: // williamr@2: #include williamr@4: #include williamr@2: // williamr@2: class RReadStream; williamr@2: class RWriteStream; williamr@2: // williamr@2: williamr@2: class CSmlAlertInfo : public CBase williamr@2: /** williamr@2: @publishedAll williamr@2: @released williamr@2: williamr@2: Information about an alert notification. williamr@2: williamr@2: Push message parsers are responsible for generating one (or more) of these objects williamr@2: as a result of parsing a message, whether the parse is successful or not. williamr@2: williamr@2: Not all details will be applicable to all alerts. williamr@2: williamr@2: If parsing is successful, and a profile ID is specified, the Agent uses williamr@2: this information to generate a job (based upon the 'job control' value specified), williamr@2: prompting the user first if neccessary williamr@2: . williamr@2: If parsing fails, parsers should try to fill in as much information williamr@2: as they can. williamr@2: williamr@2: @see KUidSyncMLPushMsgConfirmNotifier williamr@2: @see KUidSyncMLPushMsgInformNotifier williamr@2: */ williamr@2: { williamr@2: public: williamr@2: enum TJobControl williamr@2: /** williamr@2: Specifies whether a job should be created for an alert. williamr@2: */ williamr@2: { williamr@2: /** Do not create a job. */ williamr@2: EDoNotCreateJob, williamr@2: /** Create a job. */ williamr@2: ECreateJob, williamr@2: /** Inform the user that a job is being created. */ williamr@2: EInformJob, williamr@2: /** Get confirmation from the user that a job should be created. */ williamr@2: EConfirmJob williamr@2: }; williamr@2: public: williamr@2: IMPORT_C static CSmlAlertInfo* NewLC(); williamr@2: IMPORT_C CSmlAlertInfo(); williamr@2: IMPORT_C virtual ~CSmlAlertInfo(); williamr@2: IMPORT_C void InternalizeL(RReadStream&); williamr@2: IMPORT_C void ExternalizeL(RWriteStream&) const; williamr@2: public: williamr@2: IMPORT_C TInt ErrorCode() const; williamr@2: IMPORT_C TJobControl JobControl() const; williamr@2: IMPORT_C TSmlUsageType Protocol() const; williamr@2: IMPORT_C TInt SessionId() const; williamr@2: IMPORT_C TSmlProfileId Profile() const; williamr@2: IMPORT_C TSmlTransportId Transport() const; williamr@2: IMPORT_C TSmlConnectionId Connection() const; williamr@2: IMPORT_C const RArray& TaskIds() const; williamr@2: IMPORT_C const RArray& TaskSyncTypes() const; williamr@2: IMPORT_C const TDesC8& VendorSpecificInfo() const; williamr@2: IMPORT_C TBool CreateSession() const; williamr@2: public: williamr@2: IMPORT_C void Reset(); williamr@2: IMPORT_C void SetErrorCode(TInt aError); williamr@2: IMPORT_C void SetJobControl(TJobControl); williamr@2: IMPORT_C void SetProtocolType(TSmlUsageType); williamr@2: IMPORT_C void SetSessionId(TInt aId); williamr@2: IMPORT_C void SetProfileId(TSmlProfileId); williamr@2: IMPORT_C void SetTransportId(TSmlTransportId); williamr@2: IMPORT_C void SetConnectionId(TSmlConnectionId); williamr@2: IMPORT_C RArray& TaskIds(); williamr@2: IMPORT_C RArray& TaskSyncTypes(); williamr@2: IMPORT_C void SetVendorSpecificInfoL(const TDesC8&); williamr@2: IMPORT_C void SetConfirmation(TBool); williamr@2: IMPORT_C void SetUimode(TInt aUimode); williamr@2: IMPORT_C TInt GetUimode(); williamr@2: private: williamr@2: TInt iErrorCode; williamr@2: TJobControl iJobControl; williamr@2: TSmlUsageType iProtocol; williamr@2: TInt iSessionId; williamr@2: TSmlProfileId iProfile; williamr@2: TSmlTransportId iTransport; williamr@2: TSmlConnectionId iConnection; williamr@2: RArray iTaskIds; williamr@2: RArray iTaskSyncTypes; williamr@2: HBufC8* iVendorSpecificInfo; williamr@2: TUint iFlags; williamr@2: TInt iUimode; williamr@2: }; williamr@2: williamr@2: /////////////////////////////////////////////////////////////////////////////// williamr@2: /////////////////////////////////////////////////////////////////////////////// williamr@2: /////////////////////////////////////////////////////////////////////////////// williamr@2: #endif