diff main/database/src/converters.h @ 11713:ee2b22964070 octave-forge

Make some functions of class 'command' non-members.
author i7tiol
date Mon, 20 May 2013 06:06:37 +0000
parents f4c52c68f744
children 7198ecd313b5
line wrap: on
line diff
--- a/main/database/src/converters.h	Sun May 19 18:47:32 2013 +0000
+++ b/main/database/src/converters.h	Mon May 20 06:06:37 2013 +0000
@@ -36,6 +36,15 @@
 
 typedef std::vector<char> oct_pq_dynvec_t;
 
+typedef enum {simple, array, composite} pq_oct_type_t;
+
+typedef struct
+{
+  dim_vector pd, cur;
+  octave_idx_type nd;
+}
+  oct_mo_count_state;
+
 class octave_pq_connection;
 
 typedef int (*oct_pq_to_octave_fp_t) (const octave_pq_connection &,
@@ -117,6 +126,11 @@
   oct_pq_conv_t *conv;
 };
 
+typedef std::map<Oid, oct_pq_conv_wrapper_t> oct_pq_conv_map_t;
+
+typedef std::map<const char *, oct_pq_conv_wrapper_t,
+  bool (*) (const char *, const char *)> oct_pq_name_conv_map_t;
+
 // helper function for debugging
 void print_conv (oct_pq_conv_t *);
 
@@ -133,6 +147,49 @@
 int from_octave_bin_text (const octave_pq_connection &conn,
                           const octave_value &ov, oct_pq_dynvec_t &val);
 
+oct_pq_conv_t *pgtype_from_octtype (octave_pq_connection &conn,
+                                    const octave_value &);
+
+oct_pq_conv_t *pgtype_from_spec (octave_pq_connection &, std::string &,
+                                 pq_oct_type_t &);
+
+oct_pq_conv_t *pgtype_from_spec (octave_pq_connection &, Oid,
+                                 pq_oct_type_t &);
+
+oct_pq_conv_t *pgtype_from_spec (octave_pq_connection &, Oid,
+                                 oct_pq_conv_t *&, pq_oct_type_t &);
+
+octave_idx_type count_row_major_order (dim_vector &, oct_mo_count_state &,
+                                       bool);
+
+int from_octave_bin_array (octave_pq_connection &conn,
+                           const octave_value &oct_arr, oct_pq_dynvec_t &val,
+                           oct_pq_conv_t *);
+
+int from_octave_bin_composite (octave_pq_connection &conn,
+                               const octave_value &oct_comp,
+                               oct_pq_dynvec_t &val, oct_pq_conv_t *);
+
+int from_octave_str_array (octave_pq_connection &conn,
+                           const octave_value &oct_arr, oct_pq_dynvec_t &val,
+                           octave_value &type);
+
+int from_octave_str_composite (octave_pq_connection &conn,
+                               const octave_value &oct_comp,
+                               oct_pq_dynvec_t &val, octave_value &type);
+
+int to_octave_bin_array (octave_pq_connection &conn,
+                         char *, octave_value &, int, oct_pq_conv_t *);
+
+int to_octave_bin_composite (octave_pq_connection &conn,
+                             char *, octave_value &, int, oct_pq_conv_t *);
+
+int to_octave_str_array (octave_pq_connection &conn,
+                         char *, octave_value &, int, oct_pq_conv_t *);
+
+int to_octave_str_composite (octave_pq_connection &conn,
+                             char *, octave_value &, int, oct_pq_conv_t *);
+
 // append bytes of value 'val' of type 'type' to dynamic char vector 'dv'
 #define OCT_PQ_PUT(dv, type, val)                       \
   dv.resize (dv.size () + sizeof (type));               \