execution Struct Reference
[Execution API]

Execution module functions. More...

#include <execution.h>

List of all members.

Public Attributes

Executor *(* open_executor )()
Scheduler *(* open_scheduler )(Executor *executor, Channel *channel)
 Create a new Scheduler handle for (possibly periodic) delivery of a single message.
void(* set_scheduler_timing )(Scheduler *scheduler, uint16_t interval, uint32_t start)
 Sets the timing parameters for a particular scheduled message.
void(* set_scheduler_message )(Scheduler *scheduler, Message *message)
 Sets the message that will be delivered at the scheduled time(s).
void(* set_scheduler_filter )(Scheduler *scheduler, Scheduler_filter_time when, sched_callback fn, void *state)
 Sets optional callback functions to occur immediately before or after scheduled message delivery.
void(* start_scheduler )(Scheduler *scheduler)
 Enable scheduled message delivery for the given scheduler.
void(* stop_scheduler )(Scheduler *scheduler)
void(* manage_conection )(Executor *executor, Connection *connection)
 Manage message delivery on the given connection.
Execution_Controller *(* get_controller )()
 Get the Execution_Controller instance for this Execution implementation.


Detailed Description

Execution module functions.

Definition at line 75 of file execution.h.


Member Data Documentation

Execution_Controller*(* execution::get_controller)()

Get the Execution_Controller instance for this Execution implementation.

It is typically not necessary for application components themselves to need access to the controller functions. Use with caution.

void(* execution::manage_conection)(Executor *executor, Connection *connection)

Manage message delivery on the given connection.

Once handed off via manage_connection, messages will be delivered to/from the given connection via the policy and capabilities of the given Executor.

This call is non-blocking. It can be assumed that the given connection will be periodically updated (messages delivered) as part of some loop or thread that persists after this call returns.

Parameters:
executor Executor that will be used to deliver messages on the given connection
connection Connection to manage.

Scheduler*(* execution::open_scheduler)(Executor *executor, Channel *channel)

Create a new Scheduler handle for (possibly periodic) delivery of a single message.

Parameters:
executor Executor that will execute the message delivery.

void(* execution::set_scheduler_filter)(Scheduler *scheduler, Scheduler_filter_time when, sched_callback fn, void *state)

Sets optional callback functions to occur immediately before or after scheduled message delivery.

Upon delivery/execution, every callback defined here will be invoked.

Parameters:
scheduler The Scheduler resposible for message delivery.
when When (before or after) the filter is called with respect to message delivery.
fn Filter function to call pre or post message delivery.
state Arbitraty, optional, opaque state.

void(* execution::set_scheduler_message)(Scheduler *scheduler, Message *message)

Sets the message that will be delivered at the scheduled time(s).

The current message will be sent at the next scheduled delivery time, and all subsequent scheduled deliveries until replaced via another call to set a new message.

Tip: set_scheduler_filter() may be used to register a callback to be invoked immediately before or immediately after message delivery. This can be used to tie message delivery to a message update routine.

Parameters:
scheduled The scheduler we want to handle the message delivery.
message The message we want delivered.

void(* execution::set_scheduler_timing)(Scheduler *scheduler, uint16_t interval, uint32_t start)

Sets the timing parameters for a particular scheduled message.

Parameters:
scheduler The scheduler we want to set the timing parameters for
interval Time between periodic message delivery. If zero, it is assumed that message delivery is one-time and not periodic.
start Number of miliseconds since the epoch where scheduled delivery is supposed to start. If in the past, "now" is assumed.

void(* execution::start_scheduler)(Scheduler *scheduler)

Enable scheduled message delivery for the given scheduler.

Until the scheduler is started, no messages will be processed. Starting the scheduler will start the timers, so to speak, and allow the messages to be delivered at the specified time and interval.

Parameters:
scheduler The scheduler that will now begin timed delivery


The documentation for this struct was generated from the following file:
Generated on Thu Sep 27 11:11:48 2012 for VetSim by  doxygen 1.4.7