Public Member Functions |
void | set_rspm (Routing_Slip_Persistence_Manager *rspm) |
void | reconnect (void) |
virtual | ~Routing_Slip () |
| Destructor (should be private but that inspires compiler wars)
|
void | route (TAO_Notify_ProxyConsumer *pc, bool reliable_channel) |
void | dispatch (TAO_Notify_ProxySupplier *proxy_supplier, bool filter) |
| Schedule delivery to a consumer via a proxy supplier.
|
void | wait_persist () |
| Wait until the event/routing_slip has been saved at least once.
|
void | delivery_request_complete (size_t request_id) |
| A delivery request has been satisfied.
|
void | at_front_of_persist_queue () |
| This Routing_Slip reached the front of the persistence queue.
|
virtual void | persist_complete () |
| The persistent storage has completed the last request.
|
const TAO_Notify_Event::Ptr & | event () const |
int | sequence () const |
| Provide an identifying number for this Routing Slip to use in debug messages.
|
bool | should_retry () const |
| Should delivery of this event be retried if it fails?
|
Static Public Member Functions |
static Routing_Slip_Ptr | create (const TAO_Notify_Event::Ptr &event) |
| "Factory" method for normal use.
|
static Routing_Slip_Ptr | create (TAO_Notify_EventChannelFactory &ecf, Routing_Slip_Persistence_Manager *rspm) |
| "Factory" method for use during reload from persistent storage.
|
Private Types |
enum | State {
rssCREATING,
rssTRANSIENT,
rssRELOADED,
rssNEW,
rssCOMPLETE_WHILE_NEW,
rssSAVING,
rssSAVED,
rssUPDATING,
rssCHANGED_WHILE_SAVING,
rssCHANGED,
rssCOMPLETE,
rssDELETING,
rssTERMINAL
} |
typedef ACE_Guard
< TAO_SYNCH_MUTEX > | Routing_Slip_Guard |
Private Member Functions |
void | enter_state_transient (Routing_Slip_Guard &guard) |
void | continue_state_transient (Routing_Slip_Guard &guard) |
void | enter_state_reloaded (Routing_Slip_Guard &guard) |
void | enter_state_new (Routing_Slip_Guard &guard) |
void | continue_state_new (Routing_Slip_Guard &guard) |
void | enter_state_complete_while_new (Routing_Slip_Guard &guard) |
void | enter_state_saving (Routing_Slip_Guard &guard) |
void | enter_state_saved (Routing_Slip_Guard &guard) |
void | enter_state_updating (Routing_Slip_Guard &guard) |
void | enter_state_changed_while_saving (Routing_Slip_Guard &guard) |
void | continue_state_changed_while_saving (Routing_Slip_Guard &guard) |
void | enter_state_changed (Routing_Slip_Guard &guard) |
void | continue_state_changed (Routing_Slip_Guard &guard) |
void | enter_state_complete (Routing_Slip_Guard &guard) |
void | enter_state_deleting (Routing_Slip_Guard &guard) |
void | enter_state_terminal (Routing_Slip_Guard &guard) |
bool | create_persistence_manager () |
| Routing_Slip (const TAO_Notify_Event::Ptr &event) |
| Private constructor for use by create method.
|
bool | all_deliveries_complete () const |
| Test to see if all deliveries are complete.
|
void | add_to_persist_queue (Routing_Slip_Guard &guard) |
| This routing_slip needs to be saved.
|
void | marshal (TAO_OutputCDR &cdr) |
| Marshal into a CDR.
|
bool | unmarshal (TAO_Notify_EventChannelFactory &ecf, TAO_InputCDR &rscdr) |
| Marshal from CDR.
|
Private Attributes |
TAO_SYNCH_MUTEX | internals_ |
| Protection for internal information.
|
bool | is_safe_ |
| true when event persistence qos is guaranteed
|
ACE_SYNCH_CONDITION | until_safe_ |
| signalled when is_safe_ goes true
|
Routing_Slip_Ptr | this_ptr_ |
TAO_Notify_Event::Ptr | event_ |
enum
TAO_Notify::Routing_Slip::State | state_ |
Delivery_Request_Vec | delivery_requests_ |
| A collection of delivery requests.
|
Delivery_Method_Vec | delivery_methods_ |
| Methods that should be restarted during event recovery.
|
size_t | complete_requests_ |
| How many delivery requests are complete.
|
Routing_Slip_Persistence_Manager * | rspm_ |
| Pointer to a Routing_Slip_Persistence_Manager.
|
int | sequence_ |
Static Private Attributes |
static TAO_SYNCH_MUTEX | sequence_lock_ |
static int | routing_slip_sequence_ = 0 |
static size_t | count_enter_transient_ = 0 |
static size_t | count_continue_transient_ = 0 |
static size_t | count_enter_reloaded_ = 0 |
static size_t | count_enter_new_ = 0 |
static size_t | count_continue_new_ = 0 |
static size_t | count_enter_complete_while_new_ = 0 |
static size_t | count_enter_saving_ = 0 |
static size_t | count_enter_saved_ = 0 |
static size_t | count_enter_updating_ = 0 |
static size_t | count_enter_changed_while_saving_ = 0 |
static size_t | count_continue_changed_while_saving_ = 0 |
static size_t | count_enter_changed_ = 0 |
static size_t | count_continue_changed_ = 0 |
static size_t | count_enter_complete_ = 0 |
static size_t | count_enter_deleting_ = 0 |
static size_t | count_enter_terminal_ = 0 |
static Routing_Slip_Queue | persistent_queue_ |
Class which manages the delivery of events to destination.
Interacts with persistent storage to provide reliable delivery.