satengine/satserver/inc/MSatBIPDataChannel.h
author hgs
Fri, 15 Oct 2010 13:21:28 +0300
changeset 53 25b8d29b7c59
parent 33 8d5d7fcf9b59
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  Interface for BIP Data channel.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#ifndef MSATBIPDATACHANNEL_H
hgs
parents:
diff changeset
    21
#define MSATBIPDATACHANNEL_H
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
//  INCLUDES
hgs
parents:
diff changeset
    24
#include <e32std.h>
hgs
parents:
diff changeset
    25
#include <etelsat.h>
hgs
parents:
diff changeset
    26
#include <extendedconnpref.h> // TExtendedConnPref
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
// CLASS DECLARATION
hgs
parents:
diff changeset
    29
class MSatSendDataObserver;
hgs
parents:
diff changeset
    30
class MSatConnectionObserver;
hgs
parents:
diff changeset
    31
/**
hgs
parents:
diff changeset
    32
*  Interface for BIP Data channel.
hgs
parents:
diff changeset
    33
*
hgs
parents:
diff changeset
    34
*  @lib SatEngine
hgs
parents:
diff changeset
    35
*  @since Series 60 3.0
hgs
parents:
diff changeset
    36
*/
hgs
parents:
diff changeset
    37
class MSatBIPDataChannel
hgs
parents:
diff changeset
    38
    {
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
    public: // Structs
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
        // Contains all the information needed to establish connection.
hgs
parents:
diff changeset
    43
        // Parameters are common to all bearers
hgs
parents:
diff changeset
    44
        struct TSatBipConnectionInfo
hgs
parents:
diff changeset
    45
            {
hgs
parents:
diff changeset
    46
            RSat::TSimMeInterface iProtocol;     // TCP or UDP, port number
hgs
parents:
diff changeset
    47
            RSat::TOtherAddress   iDestination;  // Dest. address, IPv4 or IPv6
hgs
parents:
diff changeset
    48
            TUint16               iBufferSize;   // Size of the receive buffer
hgs
parents:
diff changeset
    49
            TExtendedConnPref*    iOverrideSet;  // extended connection
hgs
parents:
diff changeset
    50
            RSat::TBearerParams   iBearerParams; // QoS parameters
hgs
parents:
diff changeset
    51
            RSat::TOtherAddress   iSource;       // Local addr, IPv4 or IPv6
hgs
parents:
diff changeset
    52
            TUint32               iCreatedApnId; // ID of the created APN
hgs
parents:
diff changeset
    53
            };
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
    public: // New functions
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
        /**
hgs
parents:
diff changeset
    58
        * Sets up connection. Does not activate it yet.
hgs
parents:
diff changeset
    59
        * @param aConnParams includes all needed information to
hgs
parents:
diff changeset
    60
        *        open the connection.
hgs
parents:
diff changeset
    61
        */
hgs
parents:
diff changeset
    62
        virtual void SetupConnectionL(
hgs
parents:
diff changeset
    63
            const TSatBipConnectionInfo& aConnParams ) = 0;
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
        /**
hgs
parents:
diff changeset
    66
        * Activates connection. Connection information must be set before
hgs
parents:
diff changeset
    67
        * activating connection
hgs
parents:
diff changeset
    68
        * @param aObserver Observer of the connection
hgs
parents:
diff changeset
    69
        */
hgs
parents:
diff changeset
    70
        virtual void ActivateConnectionL( 
hgs
parents:
diff changeset
    71
            MSatConnectionObserver* aObserver ) = 0;
hgs
parents:
diff changeset
    72
        
hgs
parents:
diff changeset
    73
        /**
hgs
parents:
diff changeset
    74
        * From MSatBIPDataChannel Returns Negotiated bearer parameters
hgs
parents:
diff changeset
    75
        * @param aResult Output Negotiated bearer parameters
hgs
parents:
diff changeset
    76
        */
hgs
parents:
diff changeset
    77
        virtual void GetNegotiatedQoSParams( 
hgs
parents:
diff changeset
    78
            RSat::TBearerParams& aResult ) const = 0;
hgs
parents:
diff changeset
    79
        
hgs
parents:
diff changeset
    80
        /**
hgs
parents:
diff changeset
    81
        * Sends the data or stores it into a buffer for later send.
hgs
parents:
diff changeset
    82
        * @param aData Data to be send.
hgs
parents:
diff changeset
    83
        * @param aSendImmedeately Indicates whether to send immediately or
hgs
parents:
diff changeset
    84
        *        store data to buffer for later send.
hgs
parents:
diff changeset
    85
        * @param aFreeBufferSize The number of bytes of empty size in the buffer
hgs
parents:
diff changeset
    86
        * @param aObserver Observer of the completion of data send.
hgs
parents:
diff changeset
    87
        * @return Error code indicating the status of the command execution.
hgs
parents:
diff changeset
    88
        */
hgs
parents:
diff changeset
    89
        virtual TInt SendDataL( const TDes8& aData,
hgs
parents:
diff changeset
    90
                                const TBool aSendImmediately,
hgs
parents:
diff changeset
    91
                                TInt& aFreeBufferSize,
hgs
parents:
diff changeset
    92
                                MSatSendDataObserver* aObserver ) = 0;
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
        /**
hgs
parents:
diff changeset
    95
        * Receives the data from the buffer.
hgs
parents:
diff changeset
    96
        * @param aData Data to receive.
hgs
parents:
diff changeset
    97
        * @param aBytesToRead The number of requested bytes to return
hgs
parents:
diff changeset
    98
        * @param aAvailableBytes Number of unread bytes left in the buffer.
hgs
parents:
diff changeset
    99
        * @return Error code indicating the status of the command execution.
hgs
parents:
diff changeset
   100
        */
hgs
parents:
diff changeset
   101
        virtual TInt ReceiveDataL( TDes8& aData,
hgs
parents:
diff changeset
   102
                                   const TInt aBytesToRead,
hgs
parents:
diff changeset
   103
                                   TInt& aAvailableBytes ) = 0;
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
        /**
hgs
parents:
diff changeset
   106
        * Returns the ID of this data channel.
hgs
parents:
diff changeset
   107
        * @return ID of this channel.
hgs
parents:
diff changeset
   108
        */
hgs
parents:
diff changeset
   109
        virtual TInt ChannelId() const = 0;
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
        /**
hgs
parents:
diff changeset
   112
        * Returns the ID of this data channel to ChannelStatus
hgs
parents:
diff changeset
   113
        * @return ID that can be placed to ChannelStatus
hgs
parents:
diff changeset
   114
        */
hgs
parents:
diff changeset
   115
        virtual TUint8 ChannelStatusChannelId() const = 0;
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
        /**
hgs
parents:
diff changeset
   118
        * Returns the status of this channel.
hgs
parents:
diff changeset
   119
        * @return Status of this data channel
hgs
parents:
diff changeset
   120
        */
hgs
parents:
diff changeset
   121
        virtual TInt Status() const = 0;
hgs
parents:
diff changeset
   122
hgs
parents:
diff changeset
   123
        /**
hgs
parents:
diff changeset
   124
        * Closes the connection and empties the buffers.
hgs
parents:
diff changeset
   125
        */
hgs
parents:
diff changeset
   126
        virtual void CloseChannel() = 0;
hgs
parents:
diff changeset
   127
hgs
parents:
diff changeset
   128
        /**
hgs
parents:
diff changeset
   129
        * Cancels all actions.
hgs
parents:
diff changeset
   130
        */
hgs
parents:
diff changeset
   131
        virtual void CancelAll() = 0;
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
        /**
hgs
parents:
diff changeset
   134
        * Indicates whether PDP contex is active or not.
hgs
parents:
diff changeset
   135
        * @return TBool indicating context activation.
hgs
parents:
diff changeset
   136
        */
hgs
parents:
diff changeset
   137
        virtual TBool IsContextActive() const = 0;
hgs
parents:
diff changeset
   138
        
hgs
parents:
diff changeset
   139
        /**
hgs
parents:
diff changeset
   140
        * Returns connection information
hgs
parents:
diff changeset
   141
        * @return Connection information
hgs
parents:
diff changeset
   142
        */
hgs
parents:
diff changeset
   143
        virtual const TSatBipConnectionInfo& ConnInfo() const = 0;
hgs
parents:
diff changeset
   144
       
hgs
parents:
diff changeset
   145
        /**
hgs
parents:
diff changeset
   146
        * Close udp socket.
hgs
parents:
diff changeset
   147
        */
hgs
parents:
diff changeset
   148
        virtual void StopUdpSocket() = 0;
hgs
parents:
diff changeset
   149
hgs
parents:
diff changeset
   150
        /**
hgs
parents:
diff changeset
   151
        * Destructor.
hgs
parents:
diff changeset
   152
        */
hgs
parents:
diff changeset
   153
        virtual ~MSatBIPDataChannel() {};
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
    protected:  // Constructors and destructor
hgs
parents:
diff changeset
   156
hgs
parents:
diff changeset
   157
        /**
hgs
parents:
diff changeset
   158
        * Constructor.
hgs
parents:
diff changeset
   159
        */
hgs
parents:
diff changeset
   160
        MSatBIPDataChannel() {};
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
    private:
hgs
parents:
diff changeset
   163
hgs
parents:
diff changeset
   164
        // Assign operator
hgs
parents:
diff changeset
   165
        MSatBIPDataChannel& operator=( const MSatBIPDataChannel& );
hgs
parents:
diff changeset
   166
hgs
parents:
diff changeset
   167
        // Prohibit copy constructor if not deriving from CBase.
hgs
parents:
diff changeset
   168
        MSatBIPDataChannel( const MSatBIPDataChannel& );
hgs
parents:
diff changeset
   169
    };
hgs
parents:
diff changeset
   170
hgs
parents:
diff changeset
   171
#endif      // MSATBIPDATACHANNEL_H
hgs
parents:
diff changeset
   172
hgs
parents:
diff changeset
   173
// End of File