ipcm_plat/access_point_engine_misc_api/inc/VpnAPItem.h
author hgs
Wed, 27 Oct 2010 17:43:56 +0300
changeset 70 ac5daea24fb0
permissions -rw-r--r--
201038
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
70
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2002 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: 
hgs
parents:
diff changeset
    15
*     Declares the main handler, CVpnAPItem and the API for 
hgs
parents:
diff changeset
    16
*     the Vpn Access Point Engine.
hgs
parents:
diff changeset
    17
*
hgs
parents:
diff changeset
    18
*/
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
#ifndef VPN_AP_ITEM_H
hgs
parents:
diff changeset
    22
#define VPN_AP_ITEM_H
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
// Deprecation warning
hgs
parents:
diff changeset
    25
#warning This header file has been deprecated and will be fully removed between weeks 12 and 18 of 2010. See Polonium CR #153 for details.
hgs
parents:
diff changeset
    26
 
hgs
parents:
diff changeset
    27
 
hgs
parents:
diff changeset
    28
// INCLUDES
hgs
parents:
diff changeset
    29
#include    <e32base.h>
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
// CONSTANTS
hgs
parents:
diff changeset
    32
enum TVpnApMember
hgs
parents:
diff changeset
    33
    {
hgs
parents:
diff changeset
    34
    // WAP Access Point Table
hgs
parents:
diff changeset
    35
    EApVpnWapAccessPointID,         ///< The Uid of the VPN access point.
hgs
parents:
diff changeset
    36
                                    ///< READ ONLY, assigned by the database.
hgs
parents:
diff changeset
    37
                                    ///< TUint32
hgs
parents:
diff changeset
    38
    EApVpnWapAccessPointName,       ///< The name of the access point, TDesC16
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
    EApVpnRealWapID,                ///< WAP ID of the real IAP ap, TUint32
hgs
parents:
diff changeset
    41
    EApVpnIapID,                    ///< IAP ID of the VPN IAP record, TUint32
hgs
parents:
diff changeset
    42
    EApVpnRealIapID,                ///< IAP ID of the real IAP record used
hgs
parents:
diff changeset
    43
                                    ///< to create connection, TUint32
hgs
parents:
diff changeset
    44
    EApVpnRealIapName,              ///< IAP name of the real IAP record used
hgs
parents:
diff changeset
    45
                                    ///< to create connection, Text
hgs
parents:
diff changeset
    46
    EApVpnPolicy,                   ///< The VPN policy to be used, TDesC16
hgs
parents:
diff changeset
    47
    EApVpnPolicyId,                 ///< The VPN policy to be used, TDesC16
hgs
parents:
diff changeset
    48
    EApVpnProxyServerAddress,       ///< Proxy server address, long text
hgs
parents:
diff changeset
    49
    EApVpnProxyPortNumber,          ///< Proxy port number,  TUint32
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
    EApVpnHomeNetworkID,            ///< The ID of the home netwokr, TUint32
hgs
parents:
diff changeset
    52
    EApVpnIapNetworkID,             ///< The ID of the home netwokr, TUint32
hgs
parents:
diff changeset
    53
    EApVpnIapNetworkName,           ///< The name of the home netwokr, TDesC16
hgs
parents:
diff changeset
    54
    };
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
    61
class CCommsDatabase;
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
// CLASS DECLARATION
hgs
parents:
diff changeset
    64
/**
hgs
parents:
diff changeset
    65
* This class encapsulates VPN related data in addition to a 'normal' 
hgs
parents:
diff changeset
    66
* access point. It provides Get/Set methods for every member.
hgs
parents:
diff changeset
    67
* Member set is not limited by the API.
hgs
parents:
diff changeset
    68
* It is used to read-write VPN data to and form CommsDb.
hgs
parents:
diff changeset
    69
* Main user is CVpnApEngine class but also UI might use this one.
hgs
parents:
diff changeset
    70
*/
hgs
parents:
diff changeset
    71
NONSHARABLE_CLASS( CVpnApItem ) : public CBase
hgs
parents:
diff changeset
    72
    { // holds VPN specific data
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
    public:  // Constructors and destructor
hgs
parents:
diff changeset
    75
        /**
hgs
parents:
diff changeset
    76
        * Two-phased constructor. Leaves on failure, places instance
hgs
parents:
diff changeset
    77
        * on cleanup stack. Instance is initialised to default values.
hgs
parents:
diff changeset
    78
        * @return The constructed CApAccessPointItem.
hgs
parents:
diff changeset
    79
        *
hgs
parents:
diff changeset
    80
        * @deprecated
hgs
parents:
diff changeset
    81
        */
hgs
parents:
diff changeset
    82
        IMPORT_C static CVpnApItem* NewLC();
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
        /**
hgs
parents:
diff changeset
    86
        * Destructor.
hgs
parents:
diff changeset
    87
        *
hgs
parents:
diff changeset
    88
        * @deprecated
hgs
parents:
diff changeset
    89
        */
hgs
parents:
diff changeset
    90
        IMPORT_C virtual ~CVpnApItem();
hgs
parents:
diff changeset
    91
hgs
parents:
diff changeset
    92
        
hgs
parents:
diff changeset
    93
    protected:      // Constructors
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
        /**
hgs
parents:
diff changeset
    96
        * Second-phase constructor.
hgs
parents:
diff changeset
    97
        *
hgs
parents:
diff changeset
    98
        * @deprecated
hgs
parents:
diff changeset
    99
        */
hgs
parents:
diff changeset
   100
        IMPORT_C void ConstructL();
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
    private:    // Data
hgs
parents:
diff changeset
   104
        /**
hgs
parents:
diff changeset
   105
        * C++ default constructor.
hgs
parents:
diff changeset
   106
        *
hgs
parents:
diff changeset
   107
        * @deprecated
hgs
parents:
diff changeset
   108
        */
hgs
parents:
diff changeset
   109
        IMPORT_C CVpnApItem();
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
    public:  // other public, exported functions
hgs
parents:
diff changeset
   114
        /**
hgs
parents:
diff changeset
   115
        * Copies the data from another CVpnApItem.
hgs
parents:
diff changeset
   116
        * Substitute for the "assignment operator". It requires allocation
hgs
parents:
diff changeset
   117
        * thus can leave.
hgs
parents:
diff changeset
   118
        * Wap Access Point Uid is not copied.
hgs
parents:
diff changeset
   119
        *
hgs
parents:
diff changeset
   120
        * @deprecated
hgs
parents:
diff changeset
   121
        */
hgs
parents:
diff changeset
   122
        IMPORT_C void CopyFromL( const CVpnApItem& aCopyFrom  );
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
        /**
hgs
parents:
diff changeset
   126
        * Equality operator. Wap Access Point Uid is not counted.
hgs
parents:
diff changeset
   127
        *
hgs
parents:
diff changeset
   128
        * @deprecated
hgs
parents:
diff changeset
   129
        */
hgs
parents:
diff changeset
   130
        IMPORT_C TBool operator==( const CVpnApItem& aitem ) const;
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
hgs
parents:
diff changeset
   133
        /**
hgs
parents:
diff changeset
   134
        * Inequality operator. Wap Access Point Uid is not counted.
hgs
parents:
diff changeset
   135
        *
hgs
parents:
diff changeset
   136
        * @deprecated
hgs
parents:
diff changeset
   137
        */
hgs
parents:
diff changeset
   138
        IMPORT_C TBool operator!=( const CVpnApItem& aitem ) const;
hgs
parents:
diff changeset
   139
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
hgs
parents:
diff changeset
   142
        /**
hgs
parents:
diff changeset
   143
        * This function reads up a 16-bit text value from the specified column.
hgs
parents:
diff changeset
   144
        * @param aColumn Enum value indicating the column to read.
hgs
parents:
diff changeset
   145
        * @param aValue Reference to a 16-bit descriptor to hold the value
hgs
parents:
diff changeset
   146
        * @return no return value
hgs
parents:
diff changeset
   147
        *
hgs
parents:
diff changeset
   148
        * @deprecated
hgs
parents:
diff changeset
   149
        */
hgs
parents:
diff changeset
   150
        IMPORT_C void ReadTextL( const TVpnApMember aColumn, TDes16& aValue );
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
hgs
parents:
diff changeset
   153
        /**
hgs
parents:
diff changeset
   154
        * This function reads up a long text value from the specified column.
hgs
parents:
diff changeset
   155
        * The ownership is not passed to the caller. It means that the caller
hgs
parents:
diff changeset
   156
        * should not delete the received value.
hgs
parents:
diff changeset
   157
        * If the caller must take the ownership for any reason, must make a
hgs
parents:
diff changeset
   158
        * copy and use that and delete the copy when no longer needed.
hgs
parents:
diff changeset
   159
        * @param aColumn Enum value indicating the column to read.
hgs
parents:
diff changeset
   160
        * @return A const HBufC* to the value.
hgs
parents:
diff changeset
   161
        *
hgs
parents:
diff changeset
   162
        * @deprecated
hgs
parents:
diff changeset
   163
        */
hgs
parents:
diff changeset
   164
        IMPORT_C const HBufC* ReadConstLongTextL( const TVpnApMember aColumn );
hgs
parents:
diff changeset
   165
hgs
parents:
diff changeset
   166
hgs
parents:
diff changeset
   167
        /**
hgs
parents:
diff changeset
   168
        * This function reads up a TUint32 value from the specified column.
hgs
parents:
diff changeset
   169
        * If the specified column does not exist (that is, not part of the
hgs
parents:
diff changeset
   170
        * database structure), it will Panic in debug builds and it will
hgs
parents:
diff changeset
   171
        * return KErrInvalidColumn in release builds without Panicking.
hgs
parents:
diff changeset
   172
        * Panic is used in debug builds because it indicates a programming
hgs
parents:
diff changeset
   173
        * error. In release, it 'notifies' the caller about the error through
hgs
parents:
diff changeset
   174
        * the return value but enables system to continue operation.
hgs
parents:
diff changeset
   175
        * @param aColumn Enum value indicating the column to read.
hgs
parents:
diff changeset
   176
        * @param aValue A reference to a TUint32 to hold the value
hgs
parents:
diff changeset
   177
        * @return Error code.
hgs
parents:
diff changeset
   178
        *
hgs
parents:
diff changeset
   179
        * @deprecated
hgs
parents:
diff changeset
   180
        */
hgs
parents:
diff changeset
   181
        IMPORT_C TInt ReadUint( const TVpnApMember aColumn, TUint32& aValue );
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
        /**
hgs
parents:
diff changeset
   184
        * This function reads up a boolean value from the specified column.
hgs
parents:
diff changeset
   185
        * If the specified column does not exist (that is, not part of the
hgs
parents:
diff changeset
   186
        * database structure), it will Panic in debug builds and it will
hgs
parents:
diff changeset
   187
        * return KErrInvalidColumn in release builds without Panicking.
hgs
parents:
diff changeset
   188
        * Panic is used in debug builds because it indicates a programming
hgs
parents:
diff changeset
   189
        * error. In release, it 'notifies' the caller about the error through
hgs
parents:
diff changeset
   190
        * the return value but enables system to continue operation.
hgs
parents:
diff changeset
   191
        * @param aColumn Enum value indicating the column to read.
hgs
parents:
diff changeset
   192
        * @param aValue A reference to a boolean to hold the value
hgs
parents:
diff changeset
   193
        * @return Error code.
hgs
parents:
diff changeset
   194
        *
hgs
parents:
diff changeset
   195
        * @deprecated
hgs
parents:
diff changeset
   196
        */
hgs
parents:
diff changeset
   197
        IMPORT_C TInt ReadBool( const TVpnApMember aColumn, TBool& aValue );
hgs
parents:
diff changeset
   198
hgs
parents:
diff changeset
   199
hgs
parents:
diff changeset
   200
hgs
parents:
diff changeset
   201
        /**
hgs
parents:
diff changeset
   202
        * This function writes a 16-bit text value to the specified column.
hgs
parents:
diff changeset
   203
        * If the specified column does not exist (that is, not part of the
hgs
parents:
diff changeset
   204
        * database structure), it will Panic in debug builds and it will
hgs
parents:
diff changeset
   205
        * return KErrInvalidColumn in release builds without Panicking.
hgs
parents:
diff changeset
   206
        * Panic is used in debug builds because it indicates a programming
hgs
parents:
diff changeset
   207
        * error. In release, it 'notifies' the caller about the error through
hgs
parents:
diff changeset
   208
        * the return value but enables system to continue operation.
hgs
parents:
diff changeset
   209
        * This function can Leave if the copying of the text does not succeed.
hgs
parents:
diff changeset
   210
        * @param aColumn Enum value indicating the column to write.
hgs
parents:
diff changeset
   211
        * @param aValue Reference to a 16-bit text descriptor to the value
hgs
parents:
diff changeset
   212
        * @return Error code.
hgs
parents:
diff changeset
   213
        *
hgs
parents:
diff changeset
   214
        * @deprecated
hgs
parents:
diff changeset
   215
        */
hgs
parents:
diff changeset
   216
        IMPORT_C TInt WriteTextL( const TVpnApMember aColumn,
hgs
parents:
diff changeset
   217
                                  const TDesC16& aValue );
hgs
parents:
diff changeset
   218
hgs
parents:
diff changeset
   219
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
        /**
hgs
parents:
diff changeset
   222
        * This function writes a long text value to the specified column.
hgs
parents:
diff changeset
   223
        * If the specified column does not exist (that is, not part of the
hgs
parents:
diff changeset
   224
        * database structure), it will Panic in debug builds and it will
hgs
parents:
diff changeset
   225
        * return KErrInvalidColumn in release builds without Panicking.
hgs
parents:
diff changeset
   226
        * Panic is used in debug builds because it indicates a programming
hgs
parents:
diff changeset
   227
        * error. In release, it 'notifies' the caller about the error through
hgs
parents:
diff changeset
   228
        * the return value but enables system to continue operation.
hgs
parents:
diff changeset
   229
        * This function can Leave if the copying of the text does not succeed.
hgs
parents:
diff changeset
   230
        * @param aColumn Enum value indicating the column to write.
hgs
parents:
diff changeset
   231
        * @param aValue Reference to a 16-bit text descriptor to the value
hgs
parents:
diff changeset
   232
        * @return Error code.
hgs
parents:
diff changeset
   233
        *
hgs
parents:
diff changeset
   234
        * @deprecated
hgs
parents:
diff changeset
   235
        */
hgs
parents:
diff changeset
   236
        IMPORT_C TInt WriteLongTextL( const TVpnApMember aColumn,
hgs
parents:
diff changeset
   237
                                      const TDesC& aValue );
hgs
parents:
diff changeset
   238
hgs
parents:
diff changeset
   239
hgs
parents:
diff changeset
   240
        /**
hgs
parents:
diff changeset
   241
        * This function writes a TUint32 value to the specified column.
hgs
parents:
diff changeset
   242
        * If the specified column does not exist (that is, not part of the
hgs
parents:
diff changeset
   243
        * database structure), it will Panic in debug builds and it will
hgs
parents:
diff changeset
   244
        * return KErrInvalidColumn in release builds without Panicking.
hgs
parents:
diff changeset
   245
        * Panic is used in debug builds because it indicates a programming
hgs
parents:
diff changeset
   246
        * error. In release, it 'notifies' the caller about the error through
hgs
parents:
diff changeset
   247
        * the return value but enables system to continue operation.
hgs
parents:
diff changeset
   248
        * @param aColumn Enum value indicating the column to write.
hgs
parents:
diff changeset
   249
        * @param aValue A const reference to a TUint32 value
hgs
parents:
diff changeset
   250
        * @return Error code.
hgs
parents:
diff changeset
   251
        *
hgs
parents:
diff changeset
   252
        * @deprecated
hgs
parents:
diff changeset
   253
        */
hgs
parents:
diff changeset
   254
        IMPORT_C TInt WriteUint( const TVpnApMember aColumn,
hgs
parents:
diff changeset
   255
                                 const TUint32& aValue );
hgs
parents:
diff changeset
   256
hgs
parents:
diff changeset
   257
        /**
hgs
parents:
diff changeset
   258
        * This function writes a boolean value to the specified column.
hgs
parents:
diff changeset
   259
        * If the specified column does not exist (that is, not part of the
hgs
parents:
diff changeset
   260
        * database structure), it will Panic in debug builds and it will
hgs
parents:
diff changeset
   261
        * return KErrInvalidColumn in release builds without Panicking.
hgs
parents:
diff changeset
   262
        * Panic is used in debug builds because it indicates a programming
hgs
parents:
diff changeset
   263
        * error. In release, it 'notifies' the caller about the error through
hgs
parents:
diff changeset
   264
        * the return value but enables system to continue operation.
hgs
parents:
diff changeset
   265
        * @param aColumn Enum value indicating the column to write.
hgs
parents:
diff changeset
   266
        * @param aValue A const reference to a boolean value
hgs
parents:
diff changeset
   267
        * @return Error code.
hgs
parents:
diff changeset
   268
        *
hgs
parents:
diff changeset
   269
        * @deprecated
hgs
parents:
diff changeset
   270
        */
hgs
parents:
diff changeset
   271
        IMPORT_C TInt WriteBool( const TVpnApMember aColumn,
hgs
parents:
diff changeset
   272
                                 const TBool& aValue );
hgs
parents:
diff changeset
   273
hgs
parents:
diff changeset
   274
hgs
parents:
diff changeset
   275
hgs
parents:
diff changeset
   276
        // Query
hgs
parents:
diff changeset
   277
        // COMMON
hgs
parents:
diff changeset
   278
        /**
hgs
parents:
diff changeset
   279
        * This function returns the ID of the access point
hgs
parents:
diff changeset
   280
        * @return The ID of this access point
hgs
parents:
diff changeset
   281
        *
hgs
parents:
diff changeset
   282
        * @deprecated
hgs
parents:
diff changeset
   283
        */
hgs
parents:
diff changeset
   284
        IMPORT_C TUint32 WapUid() const;
hgs
parents:
diff changeset
   285
hgs
parents:
diff changeset
   286
hgs
parents:
diff changeset
   287
        /**
hgs
parents:
diff changeset
   288
        * This function returns the name of the connection
hgs
parents:
diff changeset
   289
        * Ownership is not passed.
hgs
parents:
diff changeset
   290
        * @return The name of the connection
hgs
parents:
diff changeset
   291
        *
hgs
parents:
diff changeset
   292
        * @deprecated
hgs
parents:
diff changeset
   293
        */
hgs
parents:
diff changeset
   294
        IMPORT_C const TDesC& Name() const;
hgs
parents:
diff changeset
   295
hgs
parents:
diff changeset
   296
protected:
hgs
parents:
diff changeset
   297
        /**
hgs
parents:
diff changeset
   298
        * Reallocates a passed 16-bit descriptor. Passed descriptor is deleted,
hgs
parents:
diff changeset
   299
        * new one is AllocL-ed
hgs
parents:
diff changeset
   300
        * Passed descriptor MUST NOT BE on the CleanupStack
hgs
parents:
diff changeset
   301
        */
hgs
parents:
diff changeset
   302
        void ReAllocL(HBufC*& aDes, const TDesC16& aValue);
hgs
parents:
diff changeset
   303
hgs
parents:
diff changeset
   304
        
hgs
parents:
diff changeset
   305
        /**
hgs
parents:
diff changeset
   306
        * Removes invalid chars from the passed text
hgs
parents:
diff changeset
   307
        * Invalid chars are: TAB
hgs
parents:
diff changeset
   308
        * @return a HBufC16 holding the new text
hgs
parents:
diff changeset
   309
        */
hgs
parents:
diff changeset
   310
        HBufC* RemoveInvalidCharsLC( const TDesC16& aInText );
hgs
parents:
diff changeset
   311
hgs
parents:
diff changeset
   312
hgs
parents:
diff changeset
   313
        /**
hgs
parents:
diff changeset
   314
        * Returns whether this VPN access point has proxy data or not.
hgs
parents:
diff changeset
   315
        * 
hgs
parents:
diff changeset
   316
        */
hgs
parents:
diff changeset
   317
        TBool HasProxy() const;
hgs
parents:
diff changeset
   318
hgs
parents:
diff changeset
   319
private:    // Data
hgs
parents:
diff changeset
   320
hgs
parents:
diff changeset
   321
hgs
parents:
diff changeset
   322
        HBufC*      iName;
hgs
parents:
diff changeset
   323
        TUint32     iVpnTableId;
hgs
parents:
diff changeset
   324
        TUint32     iVpnIapId;
hgs
parents:
diff changeset
   325
        TUint32     iRealIapId;
hgs
parents:
diff changeset
   326
hgs
parents:
diff changeset
   327
        TUint32     iVpnRealWapId;
hgs
parents:
diff changeset
   328
        TUint32     iVpnWapId;
hgs
parents:
diff changeset
   329
hgs
parents:
diff changeset
   330
        TUint32     iVirtualBearerID;
hgs
parents:
diff changeset
   331
hgs
parents:
diff changeset
   332
        HBufC*      iPolicyId;
hgs
parents:
diff changeset
   333
hgs
parents:
diff changeset
   334
        HBufC*      iPolicy;
hgs
parents:
diff changeset
   335
        HBufC*      iProxyServerAddress;
hgs
parents:
diff changeset
   336
        HBufC*      iRealIapName;
hgs
parents:
diff changeset
   337
        TUint32     iProxyPort;
hgs
parents:
diff changeset
   338
        TUint32     iHomeNetwork;
hgs
parents:
diff changeset
   339
        TUint32     iVpnIapNetwork;
hgs
parents:
diff changeset
   340
        HBufC*      iVpnIapNetworkName;
hgs
parents:
diff changeset
   341
hgs
parents:
diff changeset
   342
hgs
parents:
diff changeset
   343
    protected:  // Friend classes
hgs
parents:
diff changeset
   344
        friend class CVpnApEngine;
hgs
parents:
diff changeset
   345
hgs
parents:
diff changeset
   346
    };
hgs
parents:
diff changeset
   347
hgs
parents:
diff changeset
   348
hgs
parents:
diff changeset
   349
hgs
parents:
diff changeset
   350
#endif 
hgs
parents:
diff changeset
   351
hgs
parents:
diff changeset
   352
// End of File