API Reference | developer.brewmp.com API Reference | developer.brewmp.com

Developer

API Reference

IQOSBUNDLE_OPEN()

Brew Release
Brew MP 1.0.2
See Also
IQoSBundle_OpenEx() IQoSBundle_AddRetryCB() IQoSBundle_Close() IQoSBundle_SelectNetworkEx() IQoSBundle_GetError() IQoSSession_GetError() AEEQoSSessionErrorCode
Description
This function issues request for establishing new multiple QoS Sessions linked to the same data network and expects the QoS Sessions to be granted immediately. The request is forwarded to lower layers in order to establish the new QoS links.
The number of requested QoS Sessions in a bundle is limited and cannot exceed MAX_UINT8.
The QoS Bundle's network will be used as the data network for all the QoS Sessions in the bundle. Each requested QoS Session in the bundle, must either specify a network which is identical to the bundle's network or not specify a network at all. In any other case the operation will fail and none of the QoS Sessions will be established.
Upon an AEE_SUCCESS Open request, all QoS Sessions within the bundle will be associated to the same data network as the bundle.
If a network was not yet selected for the IQoSBundle instance (IQoSBundle_SelectNetworkEx()), AEE_NETWORK_DEFAULT will be implicitly selected.
Note that a return value of AEE_SUCCESS indicates that the request was successfully issued but it doesn't indicate that all QoS Sessions are already available. After IQoSBundle_Open() returns AEE_SUCCESS, the client should listen (see IQoSSession_AddListener()) for QoS events, separately for each QoS Session, which indicate success (AEE_QOS_AVAILABLE_MODIFIED_EV).
Also note the possibility of an AEE_NET_WOULDBLOCK return value. This occurs in cases where a network connection, such as a PPP link, must be established. In that case, IQoSBundle_Open() should be called again to obtain the final result (error or success). For notification of when to call IQoSBundle_Open() again, the client should register a callback thru IQoSBundle_AddRetryCB(). Note that when the client's callback is resumed, it is not guaranteed that a subsequent call to IQoSBundle_Open()/IQoSBundle_OpenEx() will complete, so the client must be prepared to receive AEE_NET_WOULDBLOCK again.
After calling IQoSBundle_Open(), the QoS Bundle object can be re-used for other multiple session operations with any bundle of IQoSSession objects.
Params
po
[]:
the interface pointer
pIQoSSessions
[]:
list of requested QoS sessions.
pIQoSSpecs
[]:
list of desired QoS specification for the new sessions.
Interface
Prototype
  •    int IQoSBundle_Open(IQoSBundle* po, IQoSList* pIQoSSessions, IQoSList* pIQoSSpecs);
    
Return
  • AEE_SUCCESS: the request was successfully issued. This doesn't indicate that the QoS Sessions are already available.
    AEE_NET_WOULDBLOCK: operation cannot be completed right now; use IQoSBundle_AddRetryCB() to try again later.
    AEE_EBADPARM: the QoS Session list or QoS Spec list are invalid, or are not of the same length.
    AEE_NET_EQOS_SESSION_INVALID_OPT: at least one of the QoS Session in the list is invalid or prevented the Open operation from ending successfully e.g. the QoSSession state is not suitable for this operation, the QoSSession's network does not match the QoS Bundle's network, the QoS Specification is invalid etc. Use IQoSBundle_GetError() to identify the index to the first QoS Session in the list which caused the failure and to reveal the error code (See AEEQoSSessionError).
    AEE_NET_EQOSUNAWARE : the current network is CDMA QoS Unaware System (does not support QoS).
    AEE_ENOMEMORY: out of memory.
    Other error codes are also possible.
Side Effect
  • None.
Comments
None.