bluetooth/btstack/l2cap/L2CapFecNegotiator.h
branchRCL_3
changeset 10 8a27654f7b62
parent 0 29b1cd4cb562
child 22 786b94c6f0a4
equal deleted inserted replaced
8:2b6718f05bdb 10:8a27654f7b62
    44 	// on the timers and MPS]
    44 	// on the timers and MPS]
    45 	virtual TBool BuildPositiveResponse(TRetransmissionAndFlowControlOption& aPreferred,
    45 	virtual TBool BuildPositiveResponse(TRetransmissionAndFlowControlOption& aPreferred,
    46 			   							const TRetransmissionAndFlowControlOption& aPeer) const;
    46 			   							const TRetransmissionAndFlowControlOption& aPeer) const;
    47 	virtual void BuildNegativeResponse(TRetransmissionAndFlowControlOption& aPreferred,
    47 	virtual void BuildNegativeResponse(TRetransmissionAndFlowControlOption& aPreferred,
    48 									   const TRetransmissionAndFlowControlOption& aPeer) const;
    48 									   const TRetransmissionAndFlowControlOption& aPeer) const;
       
    49 
       
    50 	virtual void BuildRequestBasedOnUnacceptableParamsResponse(
       
    51 					TRetransmissionAndFlowControlOption& aPreferred,
       
    52 					const TRetransmissionAndFlowControlOption& aPeer,
       
    53 					const TL2CapFecNegotiator& aFecNegotiator) const;
       
    54 
    49 	// In general configuration procedure (spec chapter 7 General Procedures) if the remote accepts
    55 	// In general configuration procedure (spec chapter 7 General Procedures) if the remote accepts
    50 	// an option from our ConfigReq, it doesn't have to include it in the response. So before
    56 	// an option from our ConfigReq, it doesn't have to include it in the response. So before
    51 	// processing the options from a ConfigRsp we've received, we go through the preferred values
    57 	// processing the options from a ConfigRsp we've received, we go through the preferred values
    52 	// we've sent in ConfigReq and pretend that the remote has accepted them without a hitch. Then
    58 	// we've sent in ConfigReq and pretend that the remote has accepted them without a hitch. Then
    53 	// options included in the received ConfigRsp are processed. This works well with plain-vanilla
    59 	// options included in the received ConfigRsp are processed. This works well with plain-vanilla
   102 	{
   108 	{
   103 public:
   109 public:
   104 	virtual TBool IsOptionValid(const TRetransmissionAndFlowControlOption& aFecOption) const;
   110 	virtual TBool IsOptionValid(const TRetransmissionAndFlowControlOption& aFecOption) const;
   105 	virtual TBool IsPeerResponseAcceptable(const TRetransmissionAndFlowControlOption& aPreferred,
   111 	virtual TBool IsPeerResponseAcceptable(const TRetransmissionAndFlowControlOption& aPreferred,
   106 										   const TRetransmissionAndFlowControlOption& aPeer) const;
   112 										   const TRetransmissionAndFlowControlOption& aPeer) const;
       
   113 	virtual void BuildRequestBasedOnUnacceptableParamsResponse(
       
   114                         TRetransmissionAndFlowControlOption& aPreferred,
       
   115                         const TRetransmissionAndFlowControlOption& aPeer,
       
   116                         const TL2CapFecNegotiator& aFecNegotiator) const;
       
   117 
   107 	virtual void SetMaxTransmit(TRetransmissionAndFlowControlOption& aFecOption, TUint8 aMaxTransmit) const;
   118 	virtual void SetMaxTransmit(TRetransmissionAndFlowControlOption& aFecOption, TUint8 aMaxTransmit) const;
   108 	};
   119 	};
   109 
   120 
   110 NONSHARABLE_CLASS(TBasicFecHandler) : public TModeSpecificFecOptionHandlerBase
   121 NONSHARABLE_CLASS(TBasicFecHandler) : public TModeSpecificFecOptionHandlerBase
   111 	{
   122 	{
   130 										  const TRetransmissionAndFlowControlOption& aPeer) const;
   141 										  const TRetransmissionAndFlowControlOption& aPeer) const;
   131 	inline TBool BuildPositiveResponse(TRetransmissionAndFlowControlOption& aPreferred,
   142 	inline TBool BuildPositiveResponse(TRetransmissionAndFlowControlOption& aPreferred,
   132 									   const TRetransmissionAndFlowControlOption& aPeer) const;
   143 									   const TRetransmissionAndFlowControlOption& aPeer) const;
   133 	inline void BuildNegativeResponse(TRetransmissionAndFlowControlOption& aPreferred,
   144 	inline void BuildNegativeResponse(TRetransmissionAndFlowControlOption& aPreferred,
   134 									  const TRetransmissionAndFlowControlOption& aPeer) const;
   145 									  const TRetransmissionAndFlowControlOption& aPeer) const;
       
   146 	inline void BuildRequestBasedOnUnacceptableParamsResponse(TRetransmissionAndFlowControlOption& aPreferred,
       
   147 															  const TRetransmissionAndFlowControlOption& aPeer,
       
   148 															  const TL2CapFecNegotiator& aFecNegotiator) const;
   135 	inline void PrepareImplicitPeerResponse(TRetransmissionAndFlowControlOption& aImplicitResponse,
   149 	inline void PrepareImplicitPeerResponse(TRetransmissionAndFlowControlOption& aImplicitResponse,
   136 											const TRetransmissionAndFlowControlOption& aPreferred) const;
   150 											const TRetransmissionAndFlowControlOption& aPreferred) const;
   137 	inline void SetMaxTransmit(TRetransmissionAndFlowControlOption& aFecOption, TUint8 aMaxTransmit) const;
   151 	inline void SetMaxTransmit(TRetransmissionAndFlowControlOption& aFecOption, TUint8 aMaxTransmit) const;
   138 	inline void ZeroUnspecifiedRequestFields(TRetransmissionAndFlowControlOption& aFecOption) const;
   152 	inline void ZeroUnspecifiedRequestFields(TRetransmissionAndFlowControlOption& aFecOption) const;
   139 	inline void ZeroUnspecifiedResponseFields(TRetransmissionAndFlowControlOption& aFecOption) const;
   153 	inline void ZeroUnspecifiedResponseFields(TRetransmissionAndFlowControlOption& aFecOption) const;