44 class CBTPinRequester; |
44 class CBTPinRequester; |
45 class CACLLink; |
45 class CACLLink; |
46 class CRoleSwitcher; |
46 class CRoleSwitcher; |
47 class CBTNumericComparator; |
47 class CBTNumericComparator; |
48 class CBTPasskeyEntry; |
48 class CBTPasskeyEntry; |
|
49 class CEncryptionKeyRefresher; |
49 |
50 |
50 enum TPhysicalLinkSimplePairingMode |
51 enum TPhysicalLinkSimplePairingMode |
51 { |
52 { |
52 EPhySimplePairingUndefined, |
53 EPhySimplePairingUndefined, |
53 EPhySimplePairingDisabled, |
54 EPhySimplePairingDisabled, |
340 |
341 |
341 void ReadNewPhysicalLinkMetricValue(TUint aIoctlName, CBTProxySAP& aSAP, TInt aCurrentValue); |
342 void ReadNewPhysicalLinkMetricValue(TUint aIoctlName, CBTProxySAP& aSAP, TInt aCurrentValue); |
342 |
343 |
343 TInt OverridePark(); |
344 TInt OverridePark(); |
344 TInt UndoOverridePark(); |
345 TInt UndoOverridePark(); |
345 TInt OverrideLPMWithTimeout(TUint aTimeout); |
|
346 TInt OverrideLPM(); |
346 TInt OverrideLPM(); |
347 TInt UndoOverrideLPM(); |
347 TInt UndoOverrideLPM(); |
348 inline TBool IsParked() const; |
348 inline TBool IsParked() const; |
349 |
349 |
350 TBool ACLConnectPending() const; |
350 TBool ACLConnectPending() const; |
373 virtual void ModeChange(THCIErrorCode aErr, THCIConnHandle aConnH, TBTLinkMode aMode, TBasebandTime aInterval); |
373 virtual void ModeChange(THCIErrorCode aErr, THCIConnHandle aConnH, TBTLinkMode aMode, TBasebandTime aInterval); |
374 virtual void WriteLinkPolicySettingsCompleteEvent(THCIErrorCode aErr, THCIConnHandle aConnH); |
374 virtual void WriteLinkPolicySettingsCompleteEvent(THCIErrorCode aErr, THCIConnHandle aConnH); |
375 virtual void RoleChange(THCIErrorCode aErr, const TBTDevAddr& aAddr, TBTBasebandRole aRole); |
375 virtual void RoleChange(THCIErrorCode aErr, const TBTDevAddr& aAddr, TBTBasebandRole aRole); |
376 virtual void ClockOffset(THCIErrorCode aErr, THCIConnHandle aConnH, TBasebandTime aClockOffset); |
376 virtual void ClockOffset(THCIErrorCode aErr, THCIConnHandle aConnH, TBasebandTime aClockOffset); |
377 virtual void RemoteName(THCIErrorCode aErr, const TBTDevAddr& aAddr, const TBTDeviceName8& aName); |
377 virtual void RemoteName(THCIErrorCode aErr, const TBTDevAddr& aAddr, const TBTDeviceName8& aName); |
378 |
378 virtual void EncryptionKeyRefreshComplete(THCIErrorCode aErr, THCIConnHandle aConnH); |
|
379 |
379 void ConnectionComplete(TInt aResult, const TBTConnect& aConn); |
380 void ConnectionComplete(TInt aResult, const TBTConnect& aConn); |
380 |
381 |
381 TBool LinkKeyRequestPending(); |
382 TBool LinkKeyRequestPending(); |
382 void SetAuthenticationPending(TUint8 aFlag); |
383 void SetAuthenticationPending(TUint8 aFlag); |
383 virtual void AuthenticationComplete(TUint8 aFlag); |
384 virtual void AuthenticationComplete(TUint8 aFlag); |
410 TBool HasSyncLink() const; |
411 TBool HasSyncLink() const; |
411 void GetDeviceFromRegistryL(); |
412 void GetDeviceFromRegistryL(); |
412 TBTLinkMode LinkMode() const; |
413 TBTLinkMode LinkMode() const; |
413 |
414 |
414 void AsyncDeleteRoleSwitcher(); |
415 void AsyncDeleteRoleSwitcher(); |
|
416 void AsyncDeleteKeyRefresher(); |
415 |
417 |
416 inline const TLinkPolicy& LinkPolicy() const; |
418 inline const TLinkPolicy& LinkPolicy() const; |
417 inline const TBTFeatures& RemoteFeatures() const; |
419 inline const TBTFeatures& RemoteFeatures() const; |
418 inline const TBTDeviceClass& DeviceClass() const; |
420 inline const TBTDeviceClass& DeviceClass() const; |
419 TInt GetConnectionHandles(RHCIConnHandleArray& aConnectionHandles, |
421 TInt GetConnectionHandles(RHCIConnHandleArray& aConnectionHandles, |
483 void SetLinkKey(const TBTLinkKey& aLinkKey, TBTLinkKeyType aLinkKeyType); |
485 void SetLinkKey(const TBTLinkKey& aLinkKey, TBTLinkKeyType aLinkKeyType); |
484 |
486 |
485 void QueueIdleTimer(TInt aTime); |
487 void QueueIdleTimer(TInt aTime); |
486 void RemoveIdleTimer(); |
488 void RemoveIdleTimer(); |
487 |
489 |
488 void QueueLPMOverrideTimer(TInt aTimeout); |
|
489 void NotifyStateChange(TBTBasebandEventNotification & aEvent); |
490 void NotifyStateChange(TBTBasebandEventNotification & aEvent); |
490 |
491 |
491 TBool IsPhysicalLinkIdle() const; |
492 TBool IsPhysicalLinkIdle() const; |
492 TBasebandTime CalculatePageTimeout(TBasebandPageTimePolicy aPolicy, TUint8 aRepMode, TBool aValidClockOffset); |
493 TBasebandTime CalculatePageTimeout(TBasebandPageTimePolicy aPolicy, TUint8 aRepMode, TBool aValidClockOffset); |
493 TBool IsPasskeyMinLengthOK(); |
494 TBool IsPasskeyMinLengthOK(); |
494 TBool PeerSupportsLinkKeyRegeneration() const; |
495 TBool PeerSupportsLinkKeyRegeneration() const; |
495 |
496 |
496 void DeleteRoleSwitcher(); |
497 void DeleteRoleSwitcher(); |
497 static TInt RoleSwitchCompleteCallBack(TAny* CPhysicalLink); |
498 static TInt RoleSwitchCompleteCallBack(TAny* CPhysicalLink); |
498 TInt ManageEncryptionEnforcement(THCIEncryptModeFlag aEnable); |
499 TInt ManageEncryptionEnforcement(THCIEncryptModeFlag aEnable); |
|
500 |
|
501 void DeleteKeyRefresher(); |
|
502 static TInt KeyRefreshCompleteCallBack(TAny* CPhysicalLink); |
499 |
503 |
500 void HandlePrefetch(); |
504 void HandlePrefetch(); |
501 void PINCodeRequestReply(const TBTDevAddr& aDevAddr,const TDesC8& aPin); |
505 void PINCodeRequestReply(const TBTDevAddr& aDevAddr,const TDesC8& aPin); |
502 void PINCodeRequestNegativeReply(const TBTDevAddr& aDevAddr); |
506 void PINCodeRequestNegativeReply(const TBTDevAddr& aDevAddr); |
503 |
507 |
550 TBTConnect iLastPendingConnection; // for if we have to wait for Registry to decide whether to rject or accept a connection |
554 TBTConnect iLastPendingConnection; // for if we have to wait for Registry to decide whether to rject or accept a connection |
551 TBool iPendingConnection; // is a connection request waiting for a reply |
555 TBool iPendingConnection; // is a connection request waiting for a reply |
552 TSglQue<CBTProxySAP> iProxySAPs; // the proxies bound to us |
556 TSglQue<CBTProxySAP> iProxySAPs; // the proxies bound to us |
553 TDeltaTimerEntry iIdleTimerEntry; |
557 TDeltaTimerEntry iIdleTimerEntry; |
554 TBool iIdleTimerQueued; |
558 TBool iIdleTimerQueued; |
555 TDeltaTimerEntry iOverrideLPMTimerEntry; |
|
556 |
559 |
557 TLinkPolicy iLinkPolicy; |
560 TLinkPolicy iLinkPolicy; |
558 TUint16 iPreviousRequestedModeMask; |
561 TUint16 iPreviousRequestedModeMask; |
559 TBool iOverrideParkRequests; //for maybe temporary unpark |
562 TBool iOverrideParkRequests; //for maybe temporary unpark |
560 TBool iOverrideLPMRequests; //for maybe temporary force active |
563 TBool iOverrideLPMRequests; //for maybe temporary force active |
561 TBool iLPMOverrideTimerQueued; |
|
562 TBool iConnectionPacketTypeChanged; //for triggering h/w |
564 TBool iConnectionPacketTypeChanged; //for triggering h/w |
563 |
565 |
564 TBool iPreventLinkKeyUpdateReg; //for case e.g. user has called unpair when there is a paired logical channel |
566 TBool iPreventLinkKeyUpdateReg; //for case e.g. user has called unpair when there is a paired logical channel |
565 TUint8 iAuthStateMask; // Authentication state mask to keep track of the authentication process |
567 TUint8 iAuthStateMask; // Authentication state mask to keep track of the authentication process |
566 TBool iLinkKeyPending; //PIN has been sent, awaiting a link key. |
568 TBool iLinkKeyPending; //PIN has been sent, awaiting a link key. |
568 TBool iPeerInSecurityMode3; |
570 TBool iPeerInSecurityMode3; |
569 TBasebandTime iSniffInterval; |
571 TBasebandTime iSniffInterval; |
570 CArbitrationDelayTimer* iArbitrationDelay; //for lower power modes |
572 CArbitrationDelayTimer* iArbitrationDelay; //for lower power modes |
571 CRoleSwitcher* iRoleSwitcher; //class handles role switch, prevents LPM, removes encryption |
573 CRoleSwitcher* iRoleSwitcher; //class handles role switch, prevents LPM, removes encryption |
572 CAsyncCallBack* iRoleSwitchCompleteCallBack;// Async Callback to delete role swticher class. |
574 CAsyncCallBack* iRoleSwitchCompleteCallBack;// Async Callback to delete role swticher class. |
|
575 CEncryptionKeyRefresher* iKeyRefresher; //class handles key refresh |
|
576 CAsyncCallBack* iKeyRefreshCompleteCallBack;// Async Callback to delete key refresher class. |
573 |
577 |
574 TLowPowModeCmdController iLowPowModeCtrl; |
578 TLowPowModeCmdController iLowPowModeCtrl; |
575 CPhysicalLinkMetrics* iPhysicalLinkMetrics; |
579 CPhysicalLinkMetrics* iPhysicalLinkMetrics; |
576 TDisconnectCmdController iDisconnectCtrl; |
580 TDisconnectCmdController iDisconnectCtrl; |
577 TAuthenticationCmdController iAuthenticationCtrl; |
581 TAuthenticationCmdController iAuthenticationCtrl; |