alwayson_net_plugin/pdpcontextmanager2/inc/caoconnection.h
author Simon Howkins <simonh@symbian.org>
Thu, 18 Nov 2010 15:05:52 +0000
branchRCL_3
changeset 76 40780c2f3a6b
parent 0 5a93021fdf25
permissions -rw-r--r--
Adjusted to avoid exports, etc, from a top-level bld.inf

/*
* Copyright (c) 2004,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:  Class CAOConnection declaratation.
*
*/


#ifndef CAOCONNECTION_H
#define CAOCONNECTION_H

// INCLUDE FILES
#include <e32base.h>
#include <es_sock.h>

// FORWARD DECLARATIONS
class CAOConnectionImpl;
class MAOConnectionObserver;
class MAOSettings;

/**
 *  CAOConnection is responsible for creating a new connection
 *  if requested. Also it is possible to attach to an existing
 *  connection via connection ID.
 *  Events like succesfull connection, disconnection, connection failures
 *  are notified through MAOConnectionObserver interface.
 *  
 *  @lib PDPContextManager.lib
 *  @since S60 v3.1
 */
NONSHARABLE_CLASS( CAOConnection ): public CBase
    {
public: // Constructors & destructors

    /**
     * Two-phased constructor.
     *
     * @since S60 v3.1
     * @param aObserver ?
     * @param aSettings ?
     * @param aSocketServ ?
     * @return ?
     */
    static CAOConnection* NewL( MAOConnectionObserver& aObserver,
                                MAOSettings&           aSettings,
                                RSocketServ*           aSocketServ );

    /**
     * Default destructor
     *
     * @since S60 v3.1
     */
    virtual ~CAOConnection();
    
    /**
     * Starts a new connection if none exists.
     *
     * @since S60 v3.1
     */
    void ActivateConnection();
    
    /**
     * Cancels any outstanding connections.
     *
     * @since S60 v3.1
     */
    void CancelConnection();
    
     /**
     * Closes connection without stopping it.
     *
     * @since S60 v3.2
     */
    void CloseConnection();
    
    /**
     * Checks if there is already a connection ongoing.
     *
     * @since S60 v3.1
     * @return ETrue if there is connection
     */
    TBool IsConnectedToDefaultIAP();
    
    /**
     * Returns number of ongoing connections.
     *
     * @since 3.0
     * @return TInt
     */
    TInt NumberOfConnections();
        
private: // New methods

    /**
     * Default constructor.
     *
     * @since S60 v3.1
     */
    CAOConnection();

    /**
     * Default Symbian constructor
     *
     * @since S60 v3.1
     * @param aObserver ?
     * @param aSettings ?
     * @param aSocketServ ?
     */
    void ConstructL( MAOConnectionObserver& aObserver,
                     MAOSettings&           aSettings,
                     RSocketServ*           aSocketServ );

private: // Data

    /**
     * Own: Connection implementation
     */
    CAOConnectionImpl* iConnectionImpl;
    
    };
    
#endif /* CAOCONNECTION_H */