A structure defined by the Profile API for managing a profile-instance.
A structure defined by the Profile API for managing a profile-instance.This structure is created by the wrapper each time a channel is opened, and is maintained by the wrapper code. (The wrapper also maintains a dual, the channel-instance structure.)
This structure contains function pointers for the "inner" callbacks invoked by the wrapper.
Defines the function pointers for "inner" callbacks invoked by the wrapper.
Indicates that a <start> element has been received for the specified profile-instance.
The profile should handle any start data and call bpc_start_response before returning.
To determine the servername to use, the callback should first invoke bp_server_name. If NULL, then consult pi->channel->inbound->server_name instead.
Confirms that the given channel has been started successfully.
This is invoked after the start request callback has returned. If the <start> is refused by the remote peer via the return of an <error> element, then this callback is not made, and only the start request callback is called. On a channel started by the local peer, this is the first function invoked on the new profile-instance.
Indicates that a <close>element has been received for the specified profile-instance, or that the local peer is asking to close this channel or the entire session.
The profile should decide if it agrees (or not) and call bpc_close_response before returning.
Confirms the final disposition of the close request.
This is invoked regardless of who asked to close the channel. (If invoked by the local peer, it's invoked after the close request callback has returned.) If the channel is now closed, the profile-instance structure is about to be deallocated, so the profile should release any instance-specific resources, e.g., referenced by user_ptr1 and user_ptr2.
Indicates that a local profile is getting ready to perform a tuning reset, e.g., the TLS profile is getting ready to send the <ready> element.
This is a FYI for the profile-instance -- there isn't an opportunity to prevent the tuning reset from happening.
Confirms the final disposition of a tuning reset.
If a tuning reset actually occurred, the profile-instance structure is about to be deallocated, so the profile should release any instance-specific resources, e.g., referenced by user_ptr1 and user_ptr2.
Announces that a frame has arrived and is ready to be read, if the profile is using the frame-oriented interface.
The profile should call bpc_query_frame or bpc_frame_read to fetch the frame, followed by bpc_frame_destroy.
Announces that a message has arrived and is ready to be read, if the profile is using the message-oriented interface.
The profile should call bpc_query_message to fetch a linked-list of the frames making up the message, followed by bpc_frame_destroy. It may also be convenient to call bpc_frame_aggregate to collapse the data from the linked-list into a character buffer.
Announces that the receive buffer for a profile has filled, but that a complete message has not yet been received.
The profile should do one of: