it_bus_pdk/context_attrs/wsrm_config_context.h

00001 #ifndef _IT_BUS_PDK_WSRM_CONFIG_CONTEXT_H_
00002 #define _IT_BUS_PDK_WSRM_CONFIG_CONTEXT_H_
00003 
00004 // @Copyright 2005 IONA Technologies, Plc. All Rights Reserved.
00005 //
00006 #ifndef IT_MINIMISE_INCLUDES
00007 #include <it_bus_pdk/context.h>
00008 #endif
00009 
00010 #include <it_bus/api_defines.h>
00011 #include <it_bus_pdk/context_base.h>
00012 #include <it_bus_pdk/context_attrs/wsaddressing_2004_xsdTypes.h>
00013 
00014 namespace IT_Bus
00015 {
00016     enum DeliveryAssurancePolicy
00017     {
00018         ExactlyOnceInOrder,
00019         ExactlyOnceConcurrent,
00020         ExactlyOnceReceivedOrder
00021     };
00022 
00023     class IT_CONTEXT_ATTRIBUTE_API WSRMConfigurationContext
00024         : public IT_Bus::Context
00025     {
00026       public:
00027 
00028         void
00029         set_wsrm_acknowledgement_uri(
00030             const WS_Addressing_2004::AttributedURI& wsrm_acknowledgement_uri
00031         );
00032 
00033         const WS_Addressing_2004::AttributedURI&
00034         get_wsrm_acknowledgement_uri();
00035 
00036         void
00037         use_wsa_replyto_endpoint_for_wsrm_acknowledgement();
00038 
00039         bool
00040         need_use_wsa_replyto_endpoint_for_wsrm_acknowledgement();
00041 
00042         void
00043         use_server_endpoint_for_wsrm_acknowledgement();
00044 
00045         bool
00046         need_use_server_endpoint_for_wsrm_acknowledgement();
00047 
00048         void
00049         set_base_retransmission_interval(
00050             unsigned long base_retransmission_interval
00051         );
00052 
00053         unsigned long
00054         get_base_retransmission_interval();
00055 
00056         void
00057         disable_exponential_backoff();
00058 
00059         bool
00060         is_exponential_backoff_disabled();
00061 
00062         void
00063         set_max_unacked_messages_threshold(
00064             long threshold
00065         );
00066 
00067         long
00068         get_max_unacked_messages_threshold();
00069 
00070         void
00071         set_acknowledgement_interval(
00072             unsigned long acknowledgement_interval
00073         );
00074 
00075         unsigned long
00076         get_acknowledgement_interval();
00077 
00078         void
00079         set_max_messages_per_sequence(
00080             long max_messages_per_sequence
00081         );
00082 
00083         long
00084         get_max_messages_per_sequence();
00085 
00086         void
00087         set_delivery_assurance_policy(
00088             DeliveryAssurancePolicy delivery_policy
00089         );
00090 
00091         DeliveryAssurancePolicy
00092         get_delivery_assurance_policy();
00093 
00094         void
00095         enable_per_thread_sequence_scope();
00096 
00097         bool
00098         is_per_thread_sequence_scope_enabled();
00099 
00100         void
00101         enable_manual_persistent_message_eviction();
00102 
00103         bool
00104         is_manual_persistent_message_eviction_enabled();
00105 
00106         void
00107         set_max_retransmission_attempts(
00108             long max_retransmission_attempts
00109         );
00110 
00111         long
00112         get_max_retransmission_attempts();
00113 
00114         WSRMConfigurationContext();
00115 
00116         WSRMConfigurationContext&
00117         operator =(
00118             const WSRMConfigurationContext& rhs
00119         );
00120 
00121         WSRMConfigurationContext(
00122             const WSRMConfigurationContext& rhs
00123         );
00124 
00125         ~WSRMConfigurationContext();
00126 
00127       private:
00128 
00129         WS_Addressing_2004::AttributedURI m_wsrm_acknowledgement_uri;          // default wsa:Anonymous URI
00130         bool                              m_acksto_sameas_wsa_replyto;         // default false
00131         bool                              m_use_server_endpoint_for_acksto;    // default false
00132         unsigned long                     m_base_retransmission_interval;      // default 2000 millisecs
00133         bool                              m_exponential_backoff_enabled;       // default true
00134         long                              m_max_unacked_messages_threshold;    // default -1
00135         unsigned long                     m_acknowledgement_interval;          // default 2000 millisecs
00136         long                              m_max_messages_per_sequence;         // default -1
00137         DeliveryAssurancePolicy           m_delivery_assurance_policy;         // default ExactlyOnceInorder
00138         bool                              m_per_thread_sequence_scope_enabled; // default false
00139         bool                              m_manual_message_eviction_enabled;   // default false
00140         long                              m_max_retransmission_attempts;       // default -1
00141     };
00142 
00143     class IT_CONTEXT_ATTRIBUTE_API WSRMIncomingMessageContext
00144         : public IT_Bus::Context
00145     {
00146       public:
00147 
00148         virtual void
00149         evict_from_persistent_store() = 0;
00150     };
00151 }
00152 
00153 #endif 

Generated on Thu Sep 7 11:39:28 2006 for Artix by  doxygen 1.4.7