2 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
14 * Description: Geographical hybrid area declaration.
18 #ifndef LBTGEOHYBRID_H
19 #define LBTGEOHYBRID_H
21 #include <lbtgeoareabase.h>
25 * Geographical hybrid area class.
27 * Geographical hybrid area is defined by collection of similar or different
28 * geographical area objects.
29 * These triggers are fired when any of the geographical area info matches the
30 * information obtained by LBT server.
36 class CLbtGeoHybrid : public CLbtGeoAreaBase
40 * Allocates and constructs a new geographical hybrid area object.
42 * @return Pointer to the new geographical hybrid area object.
43 * @leave Other standard Symbian error code, such as KErrNoMemory
45 IMPORT_C static CLbtGeoHybrid* NewL();
48 * Allocates and constructs a new geographical hybrid area object and
49 * pushes it onto cleanup stack.
51 * @return Pointer to the new geographical hybrid area object.
52 * @leave Other standard Symbian error code, such as KErrNoMemory
54 IMPORT_C static CLbtGeoHybrid* NewLC();
57 * Allocates and constructs a new geographical hybrid area object.
59 * @panic ELbtErrArgument If array count is less than two or if one
60 * the input trigger area is other than cellular area.
62 * @param[in] aHybridArea An array of pointers to geographical
64 * @return Pointer to the new geographical hybrid area object.
65 * @leave Other standard Symbian error code, such as KErrNoMemory
67 IMPORT_C static CLbtGeoHybrid* NewL( RPointerArray<CLbtGeoAreaBase>&
71 * Allocates and constructs a new geographical hybrid area object and
72 * pushes it onto cleanup stack.
74 * @panic ELbtErrArgument If array count is less than two or if one
75 * the input trigger area is other than cellular area.
77 * @param[in] aHybridArea An array of pointers to geographical
79 * @return Pointer to the new geographical hybrid area object.
80 * @leave Other standard Symbian error code, such as KErrNoMemory
82 IMPORT_C static CLbtGeoHybrid* NewLC( RPointerArray<CLbtGeoAreaBase>&
88 IMPORT_C virtual ~CLbtGeoHybrid();
91 * Returns the type of geographical area, CLbtGeoAreaBase::ECellArray
93 * @return CLbtGeoAreaBase::EHybrid.
95 virtual TGeoAreaType Type() const;
98 * Sets array of pointers to geographical area.
100 * @panic ELbtErrArgument If array count is less than two or if one
101 * the input trigger area is other than cellular area.
103 * @param[in] aHybridArea An array of pointers to geographical
106 IMPORT_C void SetHybridArea( const RPointerArray<CLbtGeoAreaBase>&
110 * Returns An array of pointers to geographical.
112 * @return An array of pointers to geographical
115 IMPORT_C const RPointerArray<CLbtGeoAreaBase>& HybridArea();
118 * Validates hybrid area information
120 * @leave KErrArgument if If array count is less than two or
121 * any of the mandatory parameters have not been specified.
123 void ValidateHybridInformationL();
127 * default constructor
132 * By default, prohibit copy constructor
134 CLbtGeoHybrid( const CLbtGeoHybrid& );
137 * Prohibit assigment operator
139 CLbtGeoHybrid& operator= ( const CLbtGeoHybrid& );
142 * Symbian 2nd phase constructor.
147 * Symbian 2nd phase constructor.
149 void ConstructL( RPointerArray<CLbtGeoAreaBase>&
153 * Externalize method that subclass must implement.
154 * @param[in] aStream Stream to which the object should be externalized.
156 virtual void DoExternalizeL(RWriteStream& aStream) const;
159 * Internalize method that subclass must implement.
160 * @param[in] aStream Stream from which the object should be internalized.
162 virtual void DoInternalizeL(RReadStream& aStream);
167 * Array of cell global identifier
169 RPointerArray<CLbtGeoAreaBase> iHybridArea;
172 #endif /*LBTGEOHYBRID_H*/