00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "pqxx/compiler-public.hxx"
00020 #include "pqxx/compiler-internal-pre.hxx"
00021
00022 #include "pqxx/transaction_base"
00023
00024
00025
00026
00027
00028 namespace pqxx
00029 {
00030 class transaction_base;
00031
00032
00034
00043 class PQXX_LIBEXPORT tablestream : public internal::transactionfocus
00044 {
00045 public:
00046 explicit tablestream(transaction_base &Trans,
00047 const PGSTD::string &Null=PGSTD::string());
00048
00049 virtual ~tablestream() throw () =0;
00050
00052
00059 virtual void complete() =0;
00060
00061 #ifdef PQXX_DEPRECATED_HEADERS
00062
00063 PGSTD::string Name() const PQXX_DEPRECATED { return name(); }
00064 #endif
00065
00066 protected:
00067 const PGSTD::string &NullStr() const { return m_Null; }
00068 bool is_finished() const throw () { return m_Finished; }
00069 void base_close();
00070
00072 template<typename ITER>
00073 static PGSTD::string columnlist(ITER colbegin, ITER colend);
00074
00075 private:
00076 PGSTD::string m_Null;
00077 bool m_Finished;
00078
00079
00080 tablestream();
00081 tablestream(const tablestream &);
00082 tablestream &operator=(const tablestream &);
00083 };
00084
00085
00086 template<typename ITER> inline
00087 PGSTD::string tablestream::columnlist(ITER colbegin, ITER colend)
00088 {
00089 return separated_list(",", colbegin, colend);
00090 }
00091 }
00092
00093 #include "pqxx/compiler-internal-post.hxx"