00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 #ifndef PQXX_TRANSACTOR_H
00015 #define PQXX_TRANSACTOR_H
00016 
00017 #include <string>
00018 
00019 #include "pqxx/compiler.h"
00020 
00021 
00022 
00023 
00024 
00025 
00026 namespace pqxx
00027 {
00028 class Transaction;
00029 
00031 
00056 class PQXX_LIBEXPORT Transactor
00057 {
00058 public:
00059   explicit Transactor(const PGSTD::string &TName="AnonymousTransactor") :
00060     m_Name(TName) {}
00061 
00063 
00066   typedef Transaction argument_type;
00067 
00069   typedef void result_type;
00070 
00072 
00078   void operator()(argument_type &T);                                    
00079 
00080   
00081   
00082   
00083   
00084   
00085 
00087 
00093   void OnAbort(const char []) throw () {}                     
00094 
00096 
00099   void OnCommit() {}                                                    
00100 
00103 
00112   void OnDoubt() throw () {}                                            
00113 
00115   PGSTD::string Name() const { return m_Name; }                         
00116 
00117 private:
00118   PGSTD::string m_Name;
00119 };
00120 
00121 }
00122 
00123 #endif
00124