williamr@4: /* williamr@4: * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). williamr@4: * All rights reserved. williamr@4: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@4: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@4: * williamr@4: * Initial Contributors: williamr@4: * Nokia Corporation - initial contribution. williamr@4: * williamr@4: * Contributors: williamr@4: * williamr@4: * Description: Geographical hybrid area declaration. williamr@4: * williamr@4: */ williamr@4: williamr@4: #ifndef LBTGEOHYBRID_H williamr@4: #define LBTGEOHYBRID_H williamr@4: williamr@4: #include williamr@4: williamr@4: williamr@4: /** williamr@4: * Geographical hybrid area class. williamr@4: * williamr@4: * Geographical hybrid area is defined by collection of similar or different williamr@4: * geographical area objects. williamr@4: * These triggers are fired when any of the geographical area info matches the williamr@4: * information obtained by LBT server. williamr@4: * williamr@4: * @lib lbt.lib williamr@4: * williamr@4: * @since S60 5.2 williamr@4: */ williamr@4: class CLbtGeoHybrid : public CLbtGeoAreaBase williamr@4: { williamr@4: public: williamr@4: /** williamr@4: * Allocates and constructs a new geographical hybrid area object. williamr@4: * williamr@4: * @return Pointer to the new geographical hybrid area object. williamr@4: * @leave Other standard Symbian error code, such as KErrNoMemory williamr@4: */ williamr@4: IMPORT_C static CLbtGeoHybrid* NewL(); williamr@4: williamr@4: /** williamr@4: * Allocates and constructs a new geographical hybrid area object and williamr@4: * pushes it onto cleanup stack. williamr@4: * williamr@4: * @return Pointer to the new geographical hybrid area object. williamr@4: * @leave Other standard Symbian error code, such as KErrNoMemory williamr@4: */ williamr@4: IMPORT_C static CLbtGeoHybrid* NewLC(); williamr@4: williamr@4: /** williamr@4: * Allocates and constructs a new geographical hybrid area object. williamr@4: * williamr@4: * @panic ELbtErrArgument If array count is less than two or if one williamr@4: * the input trigger area is other than cellular area. williamr@4: * williamr@4: * @param[in] aHybridArea An array of pointers to geographical williamr@4: * area. williamr@4: * @return Pointer to the new geographical hybrid area object. williamr@4: * @leave Other standard Symbian error code, such as KErrNoMemory williamr@4: */ williamr@4: IMPORT_C static CLbtGeoHybrid* NewL( RPointerArray& williamr@4: aHybridArea ); williamr@4: williamr@4: /** williamr@4: * Allocates and constructs a new geographical hybrid area object and williamr@4: * pushes it onto cleanup stack. williamr@4: * williamr@4: * @panic ELbtErrArgument If array count is less than two or if one williamr@4: * the input trigger area is other than cellular area. williamr@4: * williamr@4: * @param[in] aHybridArea An array of pointers to geographical williamr@4: * area. williamr@4: * @return Pointer to the new geographical hybrid area object. williamr@4: * @leave Other standard Symbian error code, such as KErrNoMemory williamr@4: */ williamr@4: IMPORT_C static CLbtGeoHybrid* NewLC( RPointerArray& williamr@4: aHybridArea ); williamr@4: williamr@4: /** williamr@4: * Destructor williamr@4: */ williamr@4: IMPORT_C virtual ~CLbtGeoHybrid(); williamr@4: williamr@4: /** williamr@4: * Returns the type of geographical area, CLbtGeoAreaBase::ECellArray williamr@4: * williamr@4: * @return CLbtGeoAreaBase::EHybrid. williamr@4: */ williamr@4: virtual TGeoAreaType Type() const; williamr@4: williamr@4: /** williamr@4: * Sets array of pointers to geographical area. williamr@4: * williamr@4: * @panic ELbtErrArgument If array count is less than two or if one williamr@4: * the input trigger area is other than cellular area. williamr@4: * williamr@4: * @param[in] aHybridArea An array of pointers to geographical williamr@4: * area. williamr@4: */ williamr@4: IMPORT_C void SetHybridArea( const RPointerArray& williamr@4: aHybridArea ); williamr@4: williamr@4: /** williamr@4: * Returns An array of pointers to geographical. williamr@4: * williamr@4: * @return An array of pointers to geographical williamr@4: * area. williamr@4: */ williamr@4: IMPORT_C const RPointerArray& HybridArea(); williamr@4: williamr@4: /** williamr@4: * Validates hybrid area information williamr@4: * williamr@4: * @leave KErrArgument if If array count is less than two or williamr@4: * any of the mandatory parameters have not been specified. williamr@4: */ williamr@4: void ValidateHybridInformationL(); williamr@4: williamr@4: private: williamr@4: /** williamr@4: * default constructor williamr@4: */ williamr@4: CLbtGeoHybrid(); williamr@4: williamr@4: /** williamr@4: * By default, prohibit copy constructor williamr@4: */ williamr@4: CLbtGeoHybrid( const CLbtGeoHybrid& ); williamr@4: williamr@4: /** williamr@4: * Prohibit assigment operator williamr@4: */ williamr@4: CLbtGeoHybrid& operator= ( const CLbtGeoHybrid& ); williamr@4: williamr@4: /** williamr@4: * Symbian 2nd phase constructor. williamr@4: */ williamr@4: void ConstructL(); williamr@4: williamr@4: /** williamr@4: * Symbian 2nd phase constructor. williamr@4: */ williamr@4: void ConstructL( RPointerArray& williamr@4: aHybridArea ); williamr@4: williamr@4: /** williamr@4: * Externalize method that subclass must implement. williamr@4: * @param[in] aStream Stream to which the object should be externalized. williamr@4: */ williamr@4: virtual void DoExternalizeL(RWriteStream& aStream) const; williamr@4: williamr@4: /** williamr@4: * Internalize method that subclass must implement. williamr@4: * @param[in] aStream Stream from which the object should be internalized. williamr@4: */ williamr@4: virtual void DoInternalizeL(RReadStream& aStream); williamr@4: williamr@4: williamr@4: private://data williamr@4: /** williamr@4: * Array of cell global identifier williamr@4: */ williamr@4: RPointerArray iHybridArea; williamr@4: }; williamr@4: williamr@4: #endif /*LBTGEOHYBRID_H*/