|
Classes |
struct | soap_wsrm_data |
| Plugin data. More...
|
struct | soap_wsrm_message |
| Linked list of unacknowledged messages stored for retransmission. More...
|
struct | soap_wsrm_content |
| Linked list of message content blocks. More...
|
struct | soap_wsrm_range |
struct | soap_wsrm_sequence |
| Linked list of currently active message sequences. More...
|
Defines |
#define | SOAP_WSRM_ID "WS-RM-1.1" |
#define | SOAP_WSRM_MAX_RETRIES 100 |
#define | SOAP_WSRM_MAX_SEC_TO_EXPIRE 3600 |
#define | SOAP_WSRM_TIMEOUT 10 |
Typedefs |
typedef soap_wsrm_sequence * | soap_wsrm_sequence_handle |
Enumerations |
enum | soap_wsrm_enable { SOAP_WSRM_OFF,
SOAP_WSRM_ON
} |
enum | soap_wsrm_message_state { SOAP_WSRM_INIT,
SOAP_WSRM_NACK,
SOAP_WSRM_ACK
} |
| Message state (init, nack or ack). More...
|
enum | soap_wsrm_state {
SOAP_WSRM_NONE,
SOAP_WSRM_UNKNOWN,
SOAP_WSRM_CREATED,
SOAP_WSRM_CLOSED,
SOAP_WSRM_TERMINATED
} |
| Sequence state. More...
|
Functions |
int | soap_wsrm (struct soap *soap, struct soap_plugin *plugin, void *arg) |
| Plugin registry function, used with soap_register_plugin.
|
int | soap_wsrm_create (struct soap *soap, const char *to, const char *acksto, LONG64 expires, const char *wsa_id, soap_wsrm_sequence_handle *seq) |
| Creates a new sequence. Sequences are usually created by the sender (client) and confirmed by the receiver (server). The 'to' server address must be used for all messages of the sequence to be sent to the server. Optionally the 'acksto' address can be given for acknowledgement messages to be sent to. A sequence ID is generated by the server upon success.
|
int | soap_wsrm_create_offer (struct soap *soap, const char *to, const char *acksto, const char *id, LONG64 expires, enum wsrm__IncompleteSequenceBehaviorType behavior, const char *wsa_id, soap_wsrm_sequence_handle *seq) |
| Creates a new sequence by offering suggested WS-RM parameters to the destination. Sequences are usually created by the sender (client) and confirmed by the receiver (server). The 'to' server address must be used for all messages of the sequence to be sent to the server. Optionally the 'acksto' address can be given for acknowledgement messages to be sent to. server upon success.
|
int | soap_wsrm_request_num (struct soap *soap, soap_wsrm_sequence_handle seq, const char *wsa_id, const char *wsa_action, ULONG64 num) |
| Adds a WS-RM sequence message number to the next message transmitted. No acks are requested.
|
int | soap_wsrm_request (struct soap *soap, soap_wsrm_sequence_handle seq, const char *wsa_id, const char *wsa_action) |
| Adds a WS-RM sequence message number to the next message transmitted to the WS-RM destination and increments the message counter by one. No acks are requested.
|
int | soap_wsrm_request_acks (struct soap *soap, soap_wsrm_sequence_handle seq, const char *wsa_id, const char *wsa_action) |
| Adds a WS-RM sequence message number to the next message transmitted to the WS-RM destination and increments the message counter by one. Message acks for the current sequence are requested.
|
int | soap_wsrm_check_retry (struct soap *soap, soap_wsrm_sequence_handle seq) |
| Client-side check to verify if the remote call can be retried when a failure occured. Increases the robustness of messages sends, by ensuring that the message was at least transmitted (but not necessarily received). Also implements HTTP 307 Temporary Redirect. Retries are limited to SOAP_WSRM_MAX_RETRIES iterations.
|
int | soap_wsrm_resend (struct soap *soap, soap_wsrm_sequence_handle seq, ULONG64 lower, ULONG64 upper) |
| Client-side call to resend all non-acknowledged messages that were automatically cached for this sequence. Messages stored in the sequence for retransmission (those that were previously sent but not acknowledged) are resent to the soap_wsrm_to() address, which was set by soap_wsrm_create() or soap_wsrm_create_offer(). It is recommended to resend messages after the last message in the sequence was transmitted before closing the sequence. To reduce unnecessary resend attempts, it is recommended to use soap_wsrm_request_ack() with the last message to request acks for messages already delivered.
|
int | soap_wsrm_close (struct soap *soap, soap_wsrm_sequence_handle seq, const char *wsa_id) |
| Closes the sequence, but does not yet terminate it. No new messages should be send, but messages can be resend with soap_wsrm_resend() if desired.
|
int | soap_wsrm_terminate (struct soap *soap, soap_wsrm_sequence_handle seq, const char *wsa_id) |
| Terminates the sequence. No new messages should be send and no resends should be tried. Usually done after soap_wsrm_close() or any time to terminate the sequence prematurely.
|
void | soap_wsrm_seq_free (struct soap *soap, soap_wsrm_sequence_handle seq) |
| Must be called to free the sequence allocated by soap_wsrm_create() or by soap_wsrm_create_offer(). Sequence handles are not automatically reclaimed by the engine.
|
void | soap_wsrm_cleanup (struct soap *soap) |
| Cleans up all expired sequences and releases resources. To be used at the server side to periodically clean up WS-RM sequences. Server-side cleanup is automatic, as long as WS-RM is in use. Does not release client-side sequences allocated by soap_wsrm_create() or soap_wsrm_create_offer().
|
const char * | soap_wsrm_to (soap_wsrm_sequence_handle seq) |
| Returns the endpoint address of the destination service that serves the sequence. Initially set with soap_wsrm_create or soap_wsrm_create_offer. HTTP 307 Temporary Redirect can change the endpoint during the lifetime of a message sequence. Thus, this function returns the most recent endpoint binding that can be used to send message to the server endpoint.
|
const char * | soap_wsrm_acksto (soap_wsrm_sequence_handle seq) |
| Returns the endpoint address of the AcksTo acknowledgement service that serves the sequence, when set with soap_wsrm_create() or soap_wsrm_create_offer() or NULL otherwise. HTTP 307 Temporary Redirect can change the endpoint during the lifetime of a message sequence. Thus, this function returns the most recent endpoint binding.
|
ULONG64 | soap_wsrm_num (soap_wsrm_sequence_handle seq) |
| Returns the current message number of the sequence.
|
ULONG64 | soap_wsrm_nack (soap_wsrm_sequence_handle seq) |
| Returns the number of non-acknowledged messages sent.
|
int | soap_wsrm_check (struct soap *soap) |
| Server-side check for the presence of WS-Addressing and WS-RM header blocks in the SOAP header. Also prepares the return WS-RM header. This function should be called in the each service operation that supports WS-RM. Do not use this function in a ReplyTo response-accepting destination service operation.
|
int | soap_wsrm_reply_num (struct soap *soap) |
| Adds a WS-RM sequence message number to the next message transmitted. No acks are requested. No WS-Addressing relay.
|
int | soap_wsrm_reply (struct soap *soap, const char *wsa_id, const char *wsa_action) |
| Server-side server operation reply to be performed when the service operation returns. Server operations that support WS-Addressing and WS-RM must call this function to return normally (and allow the response to be relayed).
|
int | soap_wsrm_reply_request_acks (struct soap *soap, const char *wsa_id, const char *wsa_action) |
| Server-side server operation reply to be performed when the service operation returns. Message acks for the current sequence are requested, but only when client made a create sequence offer. Server operations that support WS-Addressing and WS-RM must call this function or soap_wsrm_reply() to return normally (and allow the response to be relayed).
|
int | soap_wsrm_fault_subcode (struct soap *soap, int flag, const char *faultsubcode, const char *faultstring, const char *faultdetail) |
| Sets sender/receiver SOAP Fault (sub)code for server faults (can be user defined faults). When called before soap_wsrm_check() in the server operation, terminates the current sequence. Otherwise, the sequence is not terminated. In either case the fault is returned to sender (client) or to the FaultTo server when the WS-Addressing FaultTo header was set by the sender.
|
int | soap_wsrm_sender_fault_subcode (struct soap *soap, const char *faultsubcode, const char *faultstring, const char *faultdetail) |
| Sets sender SOAP Fault (sub)code for server faults (can be user defined faults). When called before soap_wsrm_check() in the server operation, terminates the current sequence. Otherwise, the sequence is not terminated. In either case the fault is returned to sender (client) or to the FaultTo server when the WS-Addressing FaultTo header was set by the sender.
|
int | soap_wsrm_receiver_fault_subcode (struct soap *soap, const char *faultsubcode, const char *faultstring, const char *faultdetail) |
| Sets receiver SOAP Fault (sub)code for server faults (can be user defined faults). When called before soap_wsrm_check() in the server operation, terminates the current sequence. Otherwise, the sequence is not terminated. In either case the fault is returned to sender (client) or to the FaultTo server when the WS-Addressing FaultTo header was set by the sender.
|
int | soap_wsrm_sender_fault (struct soap *soap, const char *faultstring, const char *faultdetail) |
| Sets sender SOAP Fault for server faults (can be user defined faults). When called before soap_wsrm_check() in the server operation, terminates the current sequence. Otherwise, the sequence is not terminated. In either case the fault is returned to sender (client) or to the FaultTo server when the WS-Addressing FaultTo header was set by the sender.
|
int | soap_wsrm_receiver_fault (struct soap *soap, const char *faultstring, const char *faultdetail) |
| Sets receiver SOAP Fault for server faults (can be user defined faults). When called before soap_wsrm_check() in the server operation, terminates the current sequence. Otherwise, the sequence is not terminated. In either case the fault is returned to sender (client) or to the FaultTo server when the WS-Addressing FaultTo header was set by the sender.
|
int | soap_wsrm_check_fault (struct soap *soap, enum wsrm__FaultCodes *fault, const char **info) |
| Checks the presence of a WS-RM fault at the client side (or in the FaultTo destination service) when a response is received.
|
int | soap_wsrm_error (struct soap *soap, struct soap_wsrm_sequence *seq, enum wsrm__FaultCodes fault) |
| Sets SOAP Fault (sub)code for server WS-RM fault response. Terminates the sequence.
|
void | soap_wsrm_dump (struct soap *soap, FILE *fd) |
| Dumps the current sequences and details of the wsrm plugin for diagnotics purposes.
|
Variables |
const char | soap_wsrm_id [] |