Mercurial > forge
changeset 11714:7198ecd313b5 octave-forge
A better way of the previous 'command' cleanup.
author | i7tiol |
---|---|
date | Mon, 20 May 2013 07:12:42 +0000 |
parents | ee2b22964070 |
children | ed5361361a0f |
files | main/database/src/command.h main/database/src/converters.h main/database/src/converters_arr_comp.cc |
diffstat | 3 files changed, 44 insertions(+), 42 deletions(-) [+] |
line wrap: on
line diff
--- a/main/database/src/command.h Mon May 20 06:06:37 2013 +0000 +++ b/main/database/src/command.h Mon May 20 07:12:42 2013 +0000 @@ -50,11 +50,11 @@ } typedef int (*to_octave_array_fp_t) - (octave_pq_connection &, char *, octave_value &, + (const octave_pq_connection &, char *, octave_value &, int, oct_pq_conv_t *); typedef int (*to_octave_composite_fp_t) - (octave_pq_connection &, char *, octave_value &, + (const octave_pq_connection &, char *, octave_value &, int, oct_pq_conv_t *); int all_results_fetched (void)
--- a/main/database/src/converters.h Mon May 20 06:06:37 2013 +0000 +++ b/main/database/src/converters.h Mon May 20 07:12:42 2013 +0000 @@ -121,6 +121,8 @@ oct_pq_conv_t *&operator->(void) { return conv; } + oct_pq_conv_t *get_copy (void) const { return conv; } + private: oct_pq_conv_t *conv; @@ -147,47 +149,47 @@ 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, +oct_pq_conv_t *pgtype_from_octtype (const octave_pq_connection &conn, const octave_value &); -oct_pq_conv_t *pgtype_from_spec (octave_pq_connection &, std::string &, +oct_pq_conv_t *pgtype_from_spec (const octave_pq_connection &, std::string &, pq_oct_type_t &); -oct_pq_conv_t *pgtype_from_spec (octave_pq_connection &, Oid, +oct_pq_conv_t *pgtype_from_spec (const octave_pq_connection &, Oid, pq_oct_type_t &); -oct_pq_conv_t *pgtype_from_spec (octave_pq_connection &, Oid, +oct_pq_conv_t *pgtype_from_spec (const 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, +int from_octave_bin_array (const 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, +int from_octave_bin_composite (const 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, +int from_octave_str_array (const 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, +int from_octave_str_composite (const 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, +int to_octave_bin_array (const octave_pq_connection &conn, char *, octave_value &, int, oct_pq_conv_t *); -int to_octave_bin_composite (octave_pq_connection &conn, +int to_octave_bin_composite (const octave_pq_connection &conn, char *, octave_value &, int, oct_pq_conv_t *); -int to_octave_str_array (octave_pq_connection &conn, +int to_octave_str_array (const octave_pq_connection &conn, char *, octave_value &, int, oct_pq_conv_t *); -int to_octave_str_composite (octave_pq_connection &conn, +int to_octave_str_composite (const 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'
--- a/main/database/src/converters_arr_comp.cc Mon May 20 06:06:37 2013 +0000 +++ b/main/database/src/converters_arr_comp.cc Mon May 20 07:12:42 2013 +0000 @@ -33,7 +33,7 @@ return NULL; \ } -oct_pq_conv_t *pgtype_from_spec (octave_pq_connection &conn, +oct_pq_conv_t *pgtype_from_spec (const octave_pq_connection &conn, std::string &name, pq_oct_type_t &oct_type) { @@ -51,7 +51,7 @@ // printf ("array "); } - oct_pq_name_conv_map_t::iterator iter; + oct_pq_name_conv_map_t::const_iterator iter; if ((iter = conn.name_conv_map.find (name.c_str ())) == conn.name_conv_map.end ()) @@ -61,7 +61,7 @@ { // printf ("(looked up in name map) "); - conv = iter->second; + conv = iter->second.get_copy (); if (oct_type == array && ! conv->aoid) { @@ -82,21 +82,21 @@ return conv; } -oct_pq_conv_t *pgtype_from_spec (octave_pq_connection &conn, Oid oid, +oct_pq_conv_t *pgtype_from_spec (const octave_pq_connection &conn, Oid oid, pq_oct_type_t &oct_type) { // printf ("pgtype_from_spec(%u): ", oid); oct_pq_conv_t *conv = NULL; - oct_pq_conv_map_t::iterator iter; + oct_pq_conv_map_t::const_iterator iter; if ((iter = conn.conv_map.find (oid)) == conn.conv_map.end ()) { error ("no converter found for element oid %u", oid); return conv; } - conv = iter->second; + conv = iter->second.get_copy (); // printf ("(looked up %s in oid map) ", conv->name.c_str ()); if (conv->aoid == oid) @@ -111,7 +111,7 @@ return conv; } -oct_pq_conv_t *pgtype_from_spec (octave_pq_connection &conn, Oid oid, +oct_pq_conv_t *pgtype_from_spec (const octave_pq_connection &conn, Oid oid, oct_pq_conv_t *&c_conv, pq_oct_type_t &oct_type) { @@ -130,7 +130,7 @@ return c_conv; } -oct_pq_conv_t *pgtype_from_octtype (octave_pq_connection &conn, +oct_pq_conv_t *pgtype_from_octtype (const octave_pq_connection &conn, const octave_value ¶m) { // printf ("pgtype_from_octtype: "); @@ -138,19 +138,19 @@ if (param.is_bool_scalar ()) { // printf ("bool\n"); - return conn.name_conv_map["bool"]; + return conn.name_conv_map.find ("bool")->second.get_copy (); } else if (param.is_real_scalar ()) { if (param.is_double_type ()) { // printf ("float8\n"); - return conn.name_conv_map["float8"]; + return conn.name_conv_map.find ("float8")->second.get_copy (); } else if (param.is_single_type ()) { // printf ("float4\n"); - return conn.name_conv_map["float4"]; + return conn.name_conv_map.find ("float4")->second.get_copy (); } } @@ -159,34 +159,34 @@ if (param.is_int16_type ()) { // printf ("int2\n"); - return conn.name_conv_map["int2"]; + return conn.name_conv_map.find ("int2")->second.get_copy (); } else if (param.is_int32_type ()) { // printf ("int4\n"); - return conn.name_conv_map["int4"]; + return conn.name_conv_map.find ("int4")->second.get_copy (); } else if (param.is_int64_type ()) { // printf ("int8\n"); - return conn.name_conv_map["int8"]; + return conn.name_conv_map.find ("int8")->second.get_copy (); } else if (param.is_uint32_type ()) { // printf ("oid\n"); - return conn.name_conv_map["oid"]; + return conn.name_conv_map.find ("oid")->second.get_copy (); } } if (param.is_uint8_type ()) { // printf ("bytea\n"); - return conn.name_conv_map["bytea"]; + return conn.name_conv_map.find ("bytea")->second.get_copy (); } else if (param.is_string ()) { // printf ("text\n"); - return conn.name_conv_map["text"]; + return conn.name_conv_map.find ("text")->second.get_copy (); } // is_real_type() is true for strings, so is_numeric_type() would @@ -197,13 +197,13 @@ { case 2: // printf ("point\n"); - return conn.name_conv_map["point"]; + return conn.name_conv_map.find ("point")->second.get_copy (); case 3: // printf ("circle\n"); - return conn.name_conv_map["circle"]; + return conn.name_conv_map.find ("circle")->second.get_copy (); case 4: // printf ("lseg\n"); - return conn.name_conv_map["lseg"]; + return conn.name_conv_map.find ("lseg")->second.get_copy (); } } @@ -269,7 +269,7 @@ } } -int from_octave_bin_array (octave_pq_connection &conn, +int from_octave_bin_array (const octave_pq_connection &conn, const octave_value &oct_arr, oct_pq_dynvec_t &val, oct_pq_conv_t *conv) { @@ -377,7 +377,7 @@ return 0; } -int from_octave_bin_composite (octave_pq_connection &conn, +int from_octave_bin_composite (const octave_pq_connection &conn, const octave_value &oct_comp, oct_pq_dynvec_t &val, oct_pq_conv_t *conv) @@ -453,7 +453,7 @@ return 0; } -int from_octave_str_array (octave_pq_connection &conn, +int from_octave_str_array (const octave_pq_connection &conn, const octave_value &oct_arr, oct_pq_dynvec_t &val, octave_value &type) { @@ -464,7 +464,7 @@ return 0; } -int from_octave_str_composite (octave_pq_connection &conn, +int from_octave_str_composite (const octave_pq_connection &conn, const octave_value &oct_comp, oct_pq_dynvec_t &val, octave_value &type) @@ -476,7 +476,7 @@ return 0; } -int to_octave_bin_array (octave_pq_connection &conn, +int to_octave_bin_array (const octave_pq_connection &conn, char *v, octave_value &ov, int nb, oct_pq_conv_t *conv) { @@ -561,7 +561,7 @@ return 0; } -int to_octave_bin_composite (octave_pq_connection &conn, +int to_octave_bin_composite (const octave_pq_connection &conn, char *v, octave_value &ov, int nb, oct_pq_conv_t *conv) { @@ -629,7 +629,7 @@ } -int to_octave_str_array (octave_pq_connection &conn, +int to_octave_str_array (const octave_pq_connection &conn, char *v, octave_value &ov, int nb, oct_pq_conv_t *conv) { @@ -640,7 +640,7 @@ return 0; } -int to_octave_str_composite (octave_pq_connection &conn, +int to_octave_str_composite (const octave_pq_connection &conn, char *v, octave_value &ov, int nb, oct_pq_conv_t *conv) {