epoc32/include/btdefcommport.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
child 4 837f303aceeb
permissions -rw-r--r--
Final list of Symbian^2 public API header files
     1 // Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     4 // 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
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 //
    15 
    16 #ifndef BTDEFCOMMPORT_H__
    17 #define BTDEFCOMMPORT_H__
    18 
    19 #include <e32std.h>
    20 #include <e32base.h>
    21 #include <bttypes.h>
    22 #include <s32mem.h>
    23 #include <btmanclient.h>
    24 
    25 /**
    26 KBTDefaultServiceSecurityNone
    27 Security setting for virtual serial port - in this case no security
    28 @publishedAll
    29 @released
    30 */
    31 static const TUint8 KBTDefaultServiceSecurityNone                   = 0;
    32 
    33 /**
    34 KBTDefaultServiceSecurityAuthenticateOnly
    35 Security setting for virtual serial port
    36 The virtual serial connection will apply Bluetooth authentication
    37 @publishedAll
    38 @released
    39 */
    40 static const TUint8 KBTDefaultServiceSecurityAuthenticateOnly       = 1;
    41 
    42 /**
    43 KBTDefaultServiceSecurityAuthenticateAndEncrypt
    44 Security setting for virtual serial port
    45 The virtual serial connection will apply Bluetooth authentication and encryption
    46 @publishedAll
    47 @released
    48 */
    49 static const TUint8 KBTDefaultServiceSecurityAuthenticateAndEncrypt = 2;
    50 
    51 /**
    52 KCommHighUnit
    53 The maximum virtual serial port number supported
    54 ie. BTCOMM::KCommHighUnit is the maximum Bluetooth serial port that can be opened
    55 @publishedAll
    56 @released
    57 */
    58 static const TUint8 KCommHighUnit=63;
    59 
    60 NONSHARABLE_CLASS(TBTCommPortSettings)
    61 /**
    62 Used to configure a virtual serial port.  The very least that is needed to configure a virtual serial port
    63 is the Bluetooth device address of the remote, and the SDP UUID to use on that device.
    64 
    65 This info can then be saved by the registry and retrieved when needed.
    66 @publishedAll
    67 @released
    68 */
    69 	{
    70 public:
    71 	IMPORT_C TBTCommPortSettings(const TDesC& aName, TUUID aUUID,TUint32 aBTCommPort, TUint8 aSecurityLevel, TBTDevAddr aBDAddr);
    72 	IMPORT_C TBTCommPortSettings();
    73 	IMPORT_C const TDesC& Name() const;	///< Returns the name of the service.
    74 	IMPORT_C TUUID UUID() const;			///< Returns the unique id of the service.
    75 	IMPORT_C TBTDevAddr BDAddr() const;		///< Returns the address of the default device associated with the service.
    76 	IMPORT_C TUint32 Port() const;
    77 	IMPORT_C TBool IsSecuritySet() const;
    78 	IMPORT_C TBool IsEncryptionSet() const;
    79 	IMPORT_C TBool IsAuthenticationOnlySet() const;
    80 	IMPORT_C void SetName(const TDesC& aName);	///< Sets the name of the service.
    81 	IMPORT_C void SetUUID(TUUID aUUID);			///< Sets the unique id of the service.
    82 	IMPORT_C void SetPort(TUint32 aBTCommPort);
    83 	IMPORT_C void SetAuthentication();
    84 	IMPORT_C void SetAuthenticationAndEncryption(); // enforces authentication as well
    85 	IMPORT_C void SetNoSecurity(); // resets the above two
    86 	IMPORT_C void SetBTAddr(TBTDevAddr aBDAddr);	///< Sets the address of the default device associated with the service.
    87 
    88 	IMPORT_C TUint8 SecurityLevel() const;
    89 	IMPORT_C void SetSecurityLevel(TUint8 aLevel);
    90 private:
    91 	TBuf<32>	iName;		    // The name of the service 
    92 	TUUID		iUUID;			// The UUID of the service
    93 	TUint32		iPort;          // The port no of the virtual serial port opened by the legacy app
    94 	TUint8		iSecurityLevel; // for that default service (i.e 0,1,2 = none,auth,encrypt+auth)
    95 	TBTDevAddr	iBDAddr;	    // The address of the default device
    96 	
    97     // This data padding has been added to help prevent future binary compatibility breaks	
    98     // Neither iPadding1 nor iPadding2 have been zero'd because they are currently not used
    99 	TUint32     iPadding1;
   100 	TUint32     iPadding2;
   101 	};
   102 
   103 
   104 typedef TPckgBuf<TBTCommPortSettings> TBTCommPortSettingsPckg; /*!< Handy package to send TBTCommPortSettings over IPC*/
   105 
   106 
   107 
   108 /**
   109 A subsession on the Bluetooth Registry server
   110 This subsession allows the virtual serial ports to be updated, modified, examined etc.
   111 
   112 @publishedAll
   113 @released
   114 */
   115 NONSHARABLE_CLASS(RBTCommPortSettings) : public RBTManSubSession
   116 	{
   117 public:
   118 	IMPORT_C RBTCommPortSettings();
   119 	IMPORT_C TInt Open(RBTRegServ& aSession);	// creates the subsession server side
   120 	IMPORT_C TInt Get(TBTCommPortSettings& aSettings);	//synchronous
   121 	IMPORT_C void Modify(const TBTCommPortSettings& aSettings, TRequestStatus& aStatus); // may add if not present
   122 	IMPORT_C void Delete(const TBTCommPortSettings& aSettings, TRequestStatus& aStatus);
   123 	IMPORT_C void Close();
   124 private:
   125 	TPckgBuf<TBTCommPortSettings>	iPortPckg;
   126 	
   127 	// This data padding has been added to help prevent future binary compatibility breaks	
   128 	// Neither iPadding1 nor iPadding2 have been zero'd because they are currently not used
   129 	TUint32     iPadding1; 
   130 	TUint32     iPadding2; 
   131 	};
   132 
   133 
   134 #endif