19 #ifndef PQXX_H_TABLEWRITER
20 #define PQXX_H_TABLEWRITER
24 #include "pqxx/compiler-public.hxx"
25 #include "pqxx/compiler-internal-pre.hxx"
26 #include "pqxx/tablestream"
40 const std::string &WName,
41 const std::string &Null=std::string());
43 const std::string &WName,
47 const std::string &WName,
50 const std::string &Null);
52 template<typename IT>
void insert(IT Begin, IT End);
53 template<typename TUPLE>
void insert(const TUPLE &);
54 template<typename IT>
void push_back(IT Begin, IT End);
55 template<typename TUPLE>
void push_back(const TUPLE &);
59 template<
typename IT> std::string generate(IT Begin, IT End)
const;
60 template<
typename TUPLE> std::string generate(
const TUPLE &)
const;
61 virtual void complete() PQXX_OVERRIDE;
62 void write_raw_line(const std::
string &);
65 const std::
string &WName,
66 const std::
string &Columns = std::
string());
67 PQXX_PRIVATE
void writer_close();
73 class back_insert_iterator<pqxx::tablewriter> :
74 public iterator<output_iterator_tag, void,void,void,void>
79 back_insert_iterator &
80 operator=(
const back_insert_iterator &rhs) PQXX_NOEXCEPT
82 m_Writer = rhs.m_Writer;
85 template<
typename TUPLE>
101 const std::string &WName,
104 namedclass(
"tablewriter", WName),
107 setup(T, WName,
columnlist(begincolumns, endcolumns));
110 const std::string &WName,
113 const std::string &Null) :
114 namedclass(
"tablewriter", WName),
117 setup(T, WName,
columnlist(begincolumns, endcolumns));
121 PQXX_LIBEXPORT std::string
Escape(
122 const std::string &s,
123 const std::string &null);
125 const std::string &s,
126 const std::string &null)
127 {
return Escape(s, null); }
130 const std::string &null)
131 {
return s ?
Escape(std::string(s), null) :
"\\N"; }
134 const std::string &null)
138 const std::string &m_null;
140 explicit Escaper(
const std::string &null) : m_null(null) {}
144 template<
typename IT>
149 template<
typename TUPLE>
152 return generate(T.begin(), T.end());
160 insert(T.begin(), T.end());
162 template<
typename IT>
167 template<
typename TUPLE>
170 insert(T.begin(), T.end());
172 template<
typename TUPLE>
179 #include "pqxx/compiler-internal-post.hxx"
std::string separated_list(const std::string &sep, ITER begin, ITER end, ACCESS access)
Access iterators using ACCESS functor, returning separator-separated list.
Definition: util.hxx:404
back_insert_iterator & operator=(const TUPLE &T)
Definition: tablewriter.hxx:86
Definition: tablereader.hxx:31
tablewriter & operator<<(const TUPLE &)
Definition: tablewriter.hxx:173
const std::string & NullStr() const
Definition: tablestream.hxx:37
back_insert_iterator & operator*()
Definition: tablewriter.hxx:93
std::string Escape(const std::string &s, const std::string &null)
Definition: tablewriter.cxx:136
Definition: tablewriter.hxx:136
std::string generate(IT Begin, IT End) const
Definition: tablewriter.hxx:145
back_insert_iterator & operator++()
Definition: tablewriter.hxx:91
tablewriter(transaction_base &, const std::string &WName, const std::string &Null=std::string())
Definition: tablewriter.cxx:29
std::basic_ostream< CHAR > & operator<<(std::basic_ostream< CHAR > &S, const pqxx::field &F)
Write a result field to any type of stream.
Definition: result.hxx:449
static std::string columnlist(ITER colbegin, ITER colend)
Definition: tablestream.hxx:50
std::string operator()(IT i) const
Definition: tablewriter.hxx:141
back_insert_iterator & operator=(const back_insert_iterator &rhs) PQXX_NOEXCEPT
Definition: tablewriter.hxx:80
Definition: tablewriter.hxx:35
unsigned size_type
Definition: tablewriter.hxx:38
void insert(IT Begin, IT End)
Definition: tablewriter.hxx:154
void write_raw_line(const std::string &)
Definition: tablewriter.cxx:70
back_insert_iterator & operator++(int)
Definition: tablewriter.hxx:92
Escaper(const std::string &null)
Definition: tablewriter.hxx:140
back_insert_iterator(pqxx::tablewriter &W) PQXX_NOEXCEPT
Definition: tablewriter.hxx:77
std::string EscapeAny(const std::string &s, const std::string &null)
Definition: tablewriter.hxx:124
Definition: tablestream.hxx:28
Definition: transaction_base.hxx:133
std::string to_string(const field &Obj)
Convert a field to a string.
Definition: result.hxx:464
void push_back(IT Begin, IT End)
Definition: tablewriter.hxx:163