00001 #ifndef IT_BUS_OTS_INTERPOSED_TRANSACTION_
00002 #define IT_BUS_OTS_INTERPOSED_TRANSACTION_
00003
00004
00005
00006 #include <it_bus_pdk/ots_transaction_manager.h>
00007 #include <orbix_sys/xa.h>
00008
00009 namespace IT_Bus
00010 {
00014 class IT_BUS_API OTSInterposedTransaction
00015 {
00016 public:
00017 virtual ~OTSInterposedTransaction();
00018
00019 virtual void
00020 assume_superior_tx_role() = 0;
00021
00022 virtual void
00023 set_superior_otid(
00024 const CosTransactions::otid_t otid
00025 )=0;
00026
00027 virtual CosTransactions::Current_ptr
00028 get_current()=0;
00029
00030 virtual CosTransactions::Vote
00031 initiate_prepare()=0;
00032
00033 virtual void
00034 initiate_commit(
00035 bool one_phase_commit
00036 )=0;
00037
00038 virtual void
00039 initiate_rollback()=0;
00040
00041 virtual void
00042 initiate_forget()=0;
00043
00044 virtual void
00045 initiate_suspend()=0;
00046
00047 virtual void
00048 initiate_resume()=0;
00049
00050 virtual void
00051 in_use(
00052 bool startEnd
00053 )=0;
00054
00055 virtual int
00056 use_count()=0;
00057
00058 virtual bool
00059 is_already_enlisted()=0;
00060
00061 virtual void
00062 is_already_enlisted(
00063 bool yesNo
00064 )=0;
00065
00066 protected:
00067
00068 OTSInterposedTransaction();
00069
00070 private:
00071 OTSInterposedTransaction(const OTSInterposedTransaction&);
00072 OTSInterposedTransaction& operator=(const OTSInterposedTransaction&);
00073 };
00074 typedef Var<OTSInterposedTransaction> OTSInterposedTransaction_var;
00075 typedef OTSInterposedTransaction* OTSInterposedTransaction_ptr;
00076 }
00077
00078 #endif