diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/panprog.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/epoc32/include/panprog.h Tue Mar 16 16:12:26 2010 +0000 @@ -0,0 +1,175 @@ +// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#ifndef PANPROG_H +#define PANPROG_H + +#include + +/** +@file +@note Constant definitions for clients using PAN agent. +Includes constants for controlling the state of the PAN network +*/ + +/** +Base value for constants for use with Control() call +@publishedPartner +@released +@see RConnection::Control +@note KCO* values for use with PAN agent +*/ +const TInt KCOAgentPanBase = 0x1000; + + +/** +@publishedPartner +@released +@see RConnection::Control + +Bring a new device into the PAN network. The Control() call will complete as +soon as the PAN agent has started the process, so it may be several seconds +before the device is addressable. It is also possible for the connection +attempt to fail even if the Control() method returns KErrNone, due to the +actual processing occuring asynchronously. + +@code +RConnection connection; +TBTDevAddr remoteDeviceToAdd; +... + +... +TPtr8 ptr = remoteDeviceToAdd.Des(); +User::LeaveIfError(connection.Control(KCOLAgent, KCOAgentPanConnectDevice, ptr)); +@endcode + +The use of a temporary TPtr is safe, as the Control method is synchronous. + +@note KCO* value for use with PAN agent +*/ +const TInt KCOAgentPanConnectDevice = KCOAgentPanBase | KConnReadUserDataBit; + + +/** +@publishedPartner +@released +@see RConnection::Control + +Attempt to remove a connected device from the PAN network. + +@code +RConnection connection; +TBTDevAddr remoteDeviceToRemove; +... + +... +TPtr8 ptr = remoteDeviceToRemove.Des(); +User::LeaveIfError(connection.Control(KCOLAgent, KCOAgentPanDisconnectDevice, ptr)); +@endcode + +The use of a temporary TPtr is safe, as the Control method is synchronous. + +@note KCO* value for use with PAN agent +*/ +const TInt KCOAgentPanDisconnectDevice = KCOAgentPanBase + 1 | KConnReadUserDataBit; + + + +/** +@publishedPartner +@released +@see RConnection::Control + +Return a list of connected devices. If the buffer supplied is too small to +hold all of the device addresses, as many as will fit will be returned. The +descriptor length will be adjusted to reflect the total connected device count. + +@note Devices which are still in the process of connecting to the PAN network +will not be included. + +@code +RConnection connection; +... + +... +TBuf8<7 * sizeof(TBTDevAddr)> buffer; +User::LeaveIfError(connection.Control(KCOLAgent, KCOAgentPanEnumerateDevices, buffer)); + +// For a c-style array: +TInt connectedDevices = buffer.Length() / sizeof(TBTDevAddr); +const TBTDevAddr* devices = reinterpret_cast(buffer.Ptr()); +const TBTDevAddr device2 = devices[2]; + +// Or to iterate through the list: +TInt start = 0; +while (start < buffer.Length()) + { + const TBTDevAddr* thisDevice = reinterpret_cast(buffer.Ptr() + start); + start += sizeof(TBTDevAddr); + } +@endcode + +@note KCO* value for use with PAN agent +*/ +const TInt KCOAgentPanEnumerateDevices = KCOAgentPanBase + 2 | KConnWriteUserDataBit; + +enum TPANAgentProgress +/** +PAN agent progress values +@publishedAll +@released +*/ + { + EPanAgtInitialising = KMinAgtProgress, + EPanAgtConnected = KConnectionOpen, ///< Agent is up and running + EPanAgtIdle, ///< Agent is idle + EPanAgtListening, ///< Listening for incoming connections + EPanAgtURole, ///< In U role + EPanAgtGnRole, ///< In GN role + EPanAgtNapRole, ///< In NAP role + EPanAgtConnectedNewDevice, ///< A device has connected + EPanAgtDisconnectedDevice, ///< A device has disconnected + EPanAgtReconfiguringPiconet, ///< Role change is in progress + EPanAgtUplinkRequired, ///< A connection authorised to use the uplink exists + EPanAgtUplinkNotRequired, ///< A connection authorised to use the uplink does not exists + EPanAgtDisconnecting = KConnectionStartingClose, + EPanAgtDisconnected = KConnectionClosed + }; + +enum TPanNapNetworkType +/** +Type of network provided by the NAP gateway +@publishedAll +@released +*/ + { + EPstn = 0x0000, + EIsdn = 0x0001, + EDsl = 0x0002, + ECableModem = 0x0003, + E10MbEthernet = 0x0004, + E100MbEthernet = 0x0005, + E4MbTokenRing = 0x0006, + E16MbTokenRing = 0x0007, + E100MbTokenRing = 0x0008, + EFddi = 0x0009, + EGsm = 0x000A, + ECdma = 0x000B, + EGprs = 0x000C, + E3GCellular = 0x000D, + EOther = 0xFFFE + }; + +#endif // PANPROG_H