TAO_CosNotification
2.1.6
|
Class which manages the delivery of events to destination. More...
#include <Routing_Slip.h>
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? | |
Public Member Functions inherited from TAO_Notify::Persistent_Callback | |
virtual | ~Persistent_Callback () |
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 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.
|
private |
|
private |
|
virtual |
Destructor (should be private but that inspires compiler wars)
|
private |
Private constructor for use by create method.
|
private |
This routing_slip needs to be saved.
|
private |
Test to see if all deliveries are complete.
void TAO_Notify::Routing_Slip::at_front_of_persist_queue | ( | ) |
This Routing_Slip reached the front of the persistence queue.
|
private |
|
private |
|
private |
|
private |
|
static |
"Factory" method for normal use.
|
static |
"Factory" method for use during reload from persistent storage.
|
private |
void TAO_Notify::Routing_Slip::delivery_request_complete | ( | size_t | request_id | ) |
A delivery request has been satisfied.
void TAO_Notify::Routing_Slip::dispatch | ( | TAO_Notify_ProxySupplier * | proxy_supplier, |
bool | filter | ||
) |
Schedule delivery to a consumer via a proxy supplier.
proxy_supplier | the proxy supplier that will deliver the event |
filter | should consumer-based filtering be applied? |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
const TAO_Notify_Event::Ptr & TAO_Notify::Routing_Slip::event | ( | ) | const |
|
private |
Marshal into a CDR.
|
virtual |
The persistent storage has completed the last request.
Implements TAO_Notify::Persistent_Callback.
void TAO_Notify::Routing_Slip::reconnect | ( | void | ) |
void TAO_Notify::Routing_Slip::route | ( | TAO_Notify_ProxyConsumer * | pc, |
bool | reliable_channel | ||
) |
Route this event to destinations must be the Action request after the routing slip is created.
int TAO_Notify::Routing_Slip::sequence | ( | ) | const |
Provide an identifying number for this Routing Slip to use in debug messages.
void TAO_Notify::Routing_Slip::set_rspm | ( | Routing_Slip_Persistence_Manager * | rspm | ) |
bool TAO_Notify::Routing_Slip::should_retry | ( | ) | const |
Should delivery of this event be retried if it fails?
|
private |
Marshal from CDR.
void TAO_Notify::Routing_Slip::wait_persist | ( | ) |
Wait until the event/routing_slip has been saved at least once.
|
private |
How many delivery requests are complete.
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
staticprivate |
|
private |
Methods that should be restarted during event recovery.
|
private |
A collection of delivery requests.
|
private |
|
private |
Protection for internal information.
|
private |
true when event persistence qos is guaranteed
|
staticprivate |
|
staticprivate |
|
private |
Pointer to a Routing_Slip_Persistence_Manager.
|
private |
|
staticprivate |
|
private |
|
private |
Smart pointer to this object Provides continuity between smart pointers and "Routing_Slip::this" Also lets the Routing_Slip manage its own minimum lifetime.
|
private |
signalled when is_safe_ goes true