meetingrequest/mrpolicy/inc/cesmrpolicy.h
changeset 0 8466d47a6819
child 16 4ce476e64c59
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/meetingrequest/mrpolicy/inc/cesmrpolicy.h	Thu Dec 17 08:39:21 2009 +0200
@@ -0,0 +1,188 @@
+/*
+* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  ESMR service policy
+*
+*/
+
+
+#ifndef CESMRPOLICY_H
+#define CESMRPOLICY_H
+
+#include <e32base.h>
+#include <babitflags.h>
+//<cmail>
+#include "esmrdef.h"
+
+class RResourceFile;
+class TResourceReader;
+class TESMREntryField;
+
+/**
+ *  CESMRPolicy defines ESMR policy.
+ *  ES MR policies are relates to different roles and task scenarions.
+ *  Policies are used by user interface views and tasks.
+ *
+ *  Policies can be defined in resource file with STRUCT ESMR_POLICY
+ *  resource structure.
+ *
+ *  @see esmrservices.rh
+ *  @lib esmrpolicy.lib
+ */
+NONSHARABLE_CLASS(CESMRPolicy) :
+        public CBase
+    {
+public: // Construction and destruction
+    /**
+     * Two-phased constructor. Creates new CESMRPolicy object. Ownership is
+     * tranferred to caller.
+     *
+     * @return Pointer to created and initialized esmr policy object.
+     */
+    IMPORT_C static CESMRPolicy* NewL();
+
+    /**
+     * Two-phased constructor. Reads esmr policy definition from
+     * resource. Caller is responsible for filling the resource reader with
+     * correct information.
+     *
+     * @param aRFile Resource file object.
+     * @param aReader Resource reader object.
+     * @return Pointer to created and initialized esmr policy object.
+     */
+    IMPORT_C static CESMRPolicy* NewL(
+            RResourceFile& aRFile,
+            TResourceReader& aReader );
+
+    /**
+     * C++ destructor.
+     */
+    IMPORT_C ~CESMRPolicy();
+
+public: // Interface
+    /**
+     * Reads policy definition from resource file. Caller is
+     * responsible for filling the resource reader with
+     * correct information.
+     *
+     * @param aRFile Resource file object.
+     * @param aReader Resource reader object.
+     */
+    IMPORT_C void ReadFromResourceL(
+            RResourceFile& aRFile,
+            TResourceReader& aReader );
+
+    /**
+     * Checks, if field is included in policy.
+     * @return ETrue if field is included in policy.
+     * @param aFieldId Field id.
+     */
+    IMPORT_C TBool IsFieldIncluded(
+            TESMREntryFieldId aFieldId ) const;
+
+    /**
+     * Fetches field matching field if from policy.
+     * @param aFieldId Field id.
+     * @return Reference to field id.
+     * @error KErrNotFound Field cannot be found.
+     */
+    IMPORT_C const TESMREntryField& FieldL(
+            TESMREntryFieldId aFieldId ) const;
+
+    /**
+     * Checks if <aCommand> belongs to default command list
+     * @param aCommand Command id
+     * @return ETrue if belongs to default commands
+     */
+    IMPORT_C TBool IsDefaultCommand(
+            TInt aCommand ) const;
+
+    /**
+     * Checks if command belongs to additional commands
+     * @param aCommand Command id
+     * @return ETrue if belongs to additional commands
+     */
+    IMPORT_C TBool IsAdditionalCommand(
+            TInt aCommand ) const;
+
+    /**
+     * Tests, if specific ES MR role is included in policy.
+     * @param aRole Role of user
+     * @return ETrue, if role is included in policy
+     */
+    IMPORT_C TBool IsRoleIncluded(
+            TESMRRole aRole ) const;
+
+    /**
+    * Returns the event type
+    * @return TESMRCalendarEventType
+    */
+    IMPORT_C TESMRCalendarEventType EventType() const;
+
+    /**
+     * Fetches policy id.
+     * @return policy id.
+     * @see TESMRPolicyID
+     */
+    inline TESMRPolicyID PolicyId() const;
+
+    /**
+     * Fetches policy view mode.
+     * @return policy view mode.
+     * @see TESMRViewMode
+     */
+    inline TESMRViewMode ViewMode() const;
+
+    /**
+     * Fetches default fields.
+     * @return Default fields
+     */
+    inline const RArray<TESMREntryField>& Fields() const;
+
+    /**
+     * Fetches the allowed applicatio for this policy
+     * @return TESMRUsingApp Parent application
+     */
+    inline TESMRUsingApp AllowedApp() const;
+
+private: // Implementation
+    CESMRPolicy();
+    void ConstructL(
+            RResourceFile& aRFile,
+            TResourceReader& aReader );
+
+private: // data
+    /// Own Event type
+    TESMRCalendarEventType iEventType;
+    /// Own: Policy id
+    TESMRPolicyID iPolicyId;
+    /// Own: Policy MR view mode
+    TESMRViewMode iViewMode;
+    /// Own: Defines role flags
+    TBitFlags16 iRoleFlags;
+    /// Own: Application allowed in this policy
+    TESMRUsingApp iAllowedApp;
+    /// Own: Default MR fields
+    RArray<TESMREntryField> iMRFields;
+    /// Own: Additional MR fields
+    RArray<TESMRCommand> iDefaultCommands;
+    /// Own: Additional commands
+    RArray<TESMRCommand> iAdditionalCommands;
+    };
+
+#include "cesmrpolicy.inl"
+//</cmail>
+
+#endif // CESMRPOLICY_H
+
+// EOF