diff -r e1b950c65cb4 -r 837f303aceeb epoc32/include/mw/lbtgeohybrid.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/epoc32/include/mw/lbtgeohybrid.h Wed Mar 31 12:33:34 2010 +0100 @@ -0,0 +1,172 @@ +/* +* Copyright (c) 2008 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: Geographical hybrid area declaration. +* +*/ + +#ifndef LBTGEOHYBRID_H +#define LBTGEOHYBRID_H + +#include + + +/** + * Geographical hybrid area class. + * + * Geographical hybrid area is defined by collection of similar or different + * geographical area objects. + * These triggers are fired when any of the geographical area info matches the + * information obtained by LBT server. + * + * @lib lbt.lib + * + * @since S60 5.2 + */ +class CLbtGeoHybrid : public CLbtGeoAreaBase + { +public: + /** + * Allocates and constructs a new geographical hybrid area object. + * + * @return Pointer to the new geographical hybrid area object. + * @leave Other standard Symbian error code, such as KErrNoMemory + */ + IMPORT_C static CLbtGeoHybrid* NewL(); + + /** + * Allocates and constructs a new geographical hybrid area object and + * pushes it onto cleanup stack. + * + * @return Pointer to the new geographical hybrid area object. + * @leave Other standard Symbian error code, such as KErrNoMemory + */ + IMPORT_C static CLbtGeoHybrid* NewLC(); + + /** + * Allocates and constructs a new geographical hybrid area object. + * + * @panic ELbtErrArgument If array count is less than two or if one + * the input trigger area is other than cellular area. + * + * @param[in] aHybridArea An array of pointers to geographical + * area. + * @return Pointer to the new geographical hybrid area object. + * @leave Other standard Symbian error code, such as KErrNoMemory + */ + IMPORT_C static CLbtGeoHybrid* NewL( RPointerArray& + aHybridArea ); + + /** + * Allocates and constructs a new geographical hybrid area object and + * pushes it onto cleanup stack. + * + * @panic ELbtErrArgument If array count is less than two or if one + * the input trigger area is other than cellular area. + * + * @param[in] aHybridArea An array of pointers to geographical + * area. + * @return Pointer to the new geographical hybrid area object. + * @leave Other standard Symbian error code, such as KErrNoMemory + */ + IMPORT_C static CLbtGeoHybrid* NewLC( RPointerArray& + aHybridArea ); + + /** + * Destructor + */ + IMPORT_C virtual ~CLbtGeoHybrid(); + + /** + * Returns the type of geographical area, CLbtGeoAreaBase::ECellArray + * + * @return CLbtGeoAreaBase::EHybrid. + */ + virtual TGeoAreaType Type() const; + + /** + * Sets array of pointers to geographical area. + * + * @panic ELbtErrArgument If array count is less than two or if one + * the input trigger area is other than cellular area. + * + * @param[in] aHybridArea An array of pointers to geographical + * area. + */ + IMPORT_C void SetHybridArea( const RPointerArray& + aHybridArea ); + + /** + * Returns An array of pointers to geographical. + * + * @return An array of pointers to geographical + * area. + */ + IMPORT_C const RPointerArray& HybridArea(); + + /** + * Validates hybrid area information + * + * @leave KErrArgument if If array count is less than two or + * any of the mandatory parameters have not been specified. + */ + void ValidateHybridInformationL(); + +private: + /** + * default constructor + */ + CLbtGeoHybrid(); + + /** + * By default, prohibit copy constructor + */ + CLbtGeoHybrid( const CLbtGeoHybrid& ); + + /** + * Prohibit assigment operator + */ + CLbtGeoHybrid& operator= ( const CLbtGeoHybrid& ); + + /** + * Symbian 2nd phase constructor. + */ + void ConstructL(); + + /** + * Symbian 2nd phase constructor. + */ + void ConstructL( RPointerArray& + aHybridArea ); + + /** + * Externalize method that subclass must implement. + * @param[in] aStream Stream to which the object should be externalized. + */ + virtual void DoExternalizeL(RWriteStream& aStream) const; + + /** + * Internalize method that subclass must implement. + * @param[in] aStream Stream from which the object should be internalized. + */ + virtual void DoInternalizeL(RReadStream& aStream); + + +private://data + /** + * Array of cell global identifier + */ + RPointerArray iHybridArea; + }; + +#endif /*LBTGEOHYBRID_H*/