hotspotfw/hsserver/inc/hssscanlistiterator.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 17 Dec 2009 09:20:28 +0200
changeset 0 56b72877c1cb
permissions -rw-r--r--
Revision: 200949 Kit: 200951

/*
* Copyright (c) 2002-2006 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:   Declaration of the ScanListIterator class
*
*/



#ifndef HSSSCANLISTITERATOR_H
#define HSSSCANLISTITERATOR_H

#include "hssscanlist.h"

class HssScanList;

/**
*  Iterator for TScanList.
*/
class HssScanListIterator
{
public:

    /**
    * Return the size of the scan info. The size includes Status Info,
    * MAC header and Frame Body.
    * @return The size of the scan info in bytes.
    */
    inline TUint16 Size() const;

    /**
    * Find the data of the first access point.
    * @return Pointer at the beginning of the first access point stored 
    *         in the scan list. NULL if not any.
    */
    const HssScanFrame* First();

    /**
    * Find the data of the next access point.
    * @return Pointer at the beginning of the next access point stored
    *         in the scan list. NULL if not any.
    */
    const HssScanFrame* Next();

    /**
    * Find the data of the current access point.
    * @return Pointer at the beginning of the current access point stored 
    *         in the scan list. NULL if not any.
    */
    const HssScanFrame* Current() const;

    /**
    * Find is there any more unhandled access points.
    * @return False if there is access points in the list left, 
    *         True if not.
    */
    TBool IsDone() const;
    
protected: // Methods

    /**
    * C++ default constructor.
    *
    * Constructor is protected, so, class has to be inherited before use.
    */
    explicit HssScanListIterator( const HssScanList& scan_list );


private: //Methods

    // Prohibit copy constructor if not deriving from CBase.
    HssScanListIterator( const HssScanListIterator& );
    // Prohibit assigment operator if not deriving from CBase.
    HssScanListIterator& operator= ( const HssScanListIterator& );

protected: // Data
    /** Pointer to the beginning of the current item. */
    const HssScanFrame* current_m;

private:   // Data
    /** Information about scanned WLAN networks. */
    const HssScanList& scan_list_m;
};

#include "hssscanlistiterator.inl"

#endif      // HssSCANLISTITERATOR_H