locationtriggering/ltcontainer/inc/lbtcontainerutilities.h
author hgs
Wed, 03 Nov 2010 23:28:39 +0530
changeset 56 4e949f03ecc5
permissions -rw-r--r--
201044
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
56
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  Utility class for location triggering container
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
#ifndef LBT_CONTAINER_UTILITIES_H
hgs
parents:
diff changeset
    20
#define LBT_CONTAINER_UTILITIES_H
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
// INCLUDE FILES
hgs
parents:
diff changeset
    23
#include <e32cmn.h>
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    26
class CLbtContainerFilterBase;
hgs
parents:
diff changeset
    27
class CLbtContainerListOptions;
hgs
parents:
diff changeset
    28
class CLbtContainerUpdateFilter;
hgs
parents:
diff changeset
    29
class CLbtContainerTriggerEntry;
hgs
parents:
diff changeset
    30
class CLbtGeoAreaBase;
hgs
parents:
diff changeset
    31
class CLbtTriggerFilterBase;
hgs
parents:
diff changeset
    32
class TLbtSecurityPolicy;
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
class LbtContainerUtilities
hgs
parents:
diff changeset
    35
	{
hgs
parents:
diff changeset
    36
	public:
hgs
parents:
diff changeset
    37
		/**
hgs
parents:
diff changeset
    38
		 * From the provided Container list options this method extracts the container filter and makes a clone of it.
hgs
parents:
diff changeset
    39
		 * The owner ship of the copy is transferred to the client which invokes this method. The filter could be 
hgs
parents:
diff changeset
    40
		 * any of the following filters derived from CLbtContainerFilterBase :-
hgs
parents:
diff changeset
    41
		 *
hgs
parents:
diff changeset
    42
		 *			1) CLbtContainerAttrFilter
hgs
parents:
diff changeset
    43
		 *			2) CLbtContainerAreaFilter
hgs
parents:
diff changeset
    44
		 *			3) CLbtContainerCompFilter
hgs
parents:
diff changeset
    45
		 *
hgs
parents:
diff changeset
    46
		 * For any other type of filter this function will leave with KErrNotSupported. Support should be added for any 
hgs
parents:
diff changeset
    47
		 * further filters that are derived from CLbtContainerFilterBase.
hgs
parents:
diff changeset
    48
		 * 
hgs
parents:
diff changeset
    49
		 * @param aFilter the filter that needs to be cloned
hgs
parents:
diff changeset
    50
		 *
hgs
parents:
diff changeset
    51
		 * @return pointer to the cloned filter. The client which invokes this method will have to take ownership
hgs
parents:
diff changeset
    52
		 *         of the returned filter. The returned filter is pushed onto the cleanup stack and left in it.
hgs
parents:
diff changeset
    53
		 *		   The client will have to remove the pointer from the cleanup stack.
hgs
parents:
diff changeset
    54
		 */
hgs
parents:
diff changeset
    55
		static CLbtContainerFilterBase* GetContainerFilterFromListOptionsLC( CLbtContainerListOptions* aListOptions );
hgs
parents:
diff changeset
    56
		
hgs
parents:
diff changeset
    57
		/**
hgs
parents:
diff changeset
    58
		 * Makes a copy of the provided trigger filter and returns the pointer to the copy. The filter is based on the 
hgs
parents:
diff changeset
    59
		 * type of filter supplied. The owner ship of the copy is transferred to the client which invokes this method. 
hgs
parents:
diff changeset
    60
		 * The filter could be any of the following filters derived from CLbtTriggerFilterBase :-
hgs
parents:
diff changeset
    61
		 *
hgs
parents:
diff changeset
    62
		 *		1) CLbtTriggerFilterByAttribute
hgs
parents:
diff changeset
    63
		 *		2) CLbtTriggerFilterByArea
hgs
parents:
diff changeset
    64
		 *		3) CLbtTriggerFilterComposite
hgs
parents:
diff changeset
    65
		 *
hgs
parents:
diff changeset
    66
		 * For any other type of filter this function will leave with KErrNotSupported. Support should be added for any 
hgs
parents:
diff changeset
    67
		 * further filters that are derived from CLbtTriggerFilterBase.
hgs
parents:
diff changeset
    68
		 *
hgs
parents:
diff changeset
    69
		 * @param aFilter the filter that needs to be cloned
hgs
parents:
diff changeset
    70
		 *
hgs
parents:
diff changeset
    71
		 * @return pointer to the cloned filter. The client which invokes this method will have to take ownership
hgs
parents:
diff changeset
    72
		 *         of the returned filter
hgs
parents:
diff changeset
    73
		 */
hgs
parents:
diff changeset
    74
		static CLbtTriggerFilterBase* CloneFilterL(CLbtTriggerFilterBase* aFilter);
hgs
parents:
diff changeset
    75
		
hgs
parents:
diff changeset
    76
		/**
hgs
parents:
diff changeset
    77
		 * From the provided Container update filter this method extracts the container filter and makes a clone of it.
hgs
parents:
diff changeset
    78
		 * The owner ship of the copy is transferred to the client which invokes this method. The filter could be 
hgs
parents:
diff changeset
    79
		 * any of the following filters derived from CLbtContainerFilterBase :-
hgs
parents:
diff changeset
    80
		 *
hgs
parents:
diff changeset
    81
		 *			1) CLbtContainerAttrFilter
hgs
parents:
diff changeset
    82
		 *			2) CLbtContainerAreaFilter
hgs
parents:
diff changeset
    83
		 *			3) CLbtContainerCompFilter
hgs
parents:
diff changeset
    84
		 *
hgs
parents:
diff changeset
    85
		 * For any other type of filter this function will leave with KErrNotSupported. Support should be added for any 
hgs
parents:
diff changeset
    86
		 * further filters that are derived from CLbtContainerFilterBase.
hgs
parents:
diff changeset
    87
		 * 
hgs
parents:
diff changeset
    88
		 * @param aFilter the filter that needs to be cloned
hgs
parents:
diff changeset
    89
		 *
hgs
parents:
diff changeset
    90
		 * @return pointer to the cloned filter. The client which invokes this method will have to take ownership
hgs
parents:
diff changeset
    91
		 *         of the returned filter. The returned filter is pushed onto the cleanup stack and left in it.
hgs
parents:
diff changeset
    92
		 *		   The client will have to remove the pointer from the cleanup stack.
hgs
parents:
diff changeset
    93
		 */
hgs
parents:
diff changeset
    94
		static CLbtContainerFilterBase* GetContainerFilterFromUpdateFilterLC( CLbtContainerUpdateFilter* aListOptions );
hgs
parents:
diff changeset
    95
		
hgs
parents:
diff changeset
    96
		/**
hgs
parents:
diff changeset
    97
		 * Copies the provided geo area type and returns a copy of the provided object.
hgs
parents:
diff changeset
    98
		 * 
hgs
parents:
diff changeset
    99
		 * @param aGeoAreaBase the area object that has to be copied
hgs
parents:
diff changeset
   100
		 * @return the copies area object 
hgs
parents:
diff changeset
   101
		 */
hgs
parents:
diff changeset
   102
		static CLbtGeoAreaBase* CopyGeoAreaL( CLbtGeoAreaBase* aGeoAreaBase ); 
hgs
parents:
diff changeset
   103
		
hgs
parents:
diff changeset
   104
		/**
hgs
parents:
diff changeset
   105
		 * Applies the security policy on the supplied trigger and checks if the trigger suffices
hgs
parents:
diff changeset
   106
		 * the security policy 
hgs
parents:
diff changeset
   107
		 * 
hgs
parents:
diff changeset
   108
		 * @return ETrue if the trigger suffices the security polity, EFalse otherwise
hgs
parents:
diff changeset
   109
		 */
hgs
parents:
diff changeset
   110
		static TBool RunSecurityPolicy(CLbtContainerTriggerEntry* aTriggerEntry, TLbtSecurityPolicy& aSecurityPolicy);
hgs
parents:
diff changeset
   111
		
hgs
parents:
diff changeset
   112
		
hgs
parents:
diff changeset
   113
		/**
hgs
parents:
diff changeset
   114
		 * Applies the security policy on the supplied UID values and checks if it suffices
hgs
parents:
diff changeset
   115
		 * the security policy 
hgs
parents:
diff changeset
   116
		 * 
hgs
parents:
diff changeset
   117
		 * @return ETrue if the UIDs suffices the security polity, EFalse otherwise
hgs
parents:
diff changeset
   118
		 */
hgs
parents:
diff changeset
   119
		static TBool RunSecurityPolicy( TUid& aOwnerUid,
hgs
parents:
diff changeset
   120
															   TUid& aManagerUid,
hgs
parents:
diff changeset
   121
															   TSecureId& aStartupProcessUid,
hgs
parents:
diff changeset
   122
															   TLbtSecurityPolicy& aSecurityPolicy );
hgs
parents:
diff changeset
   123
	};
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
#endif // LBT_CONTAINER_UTILITIES_H