use pt::Stream instead of pt::TextStream as the output stream
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright (c) 2018-2023, Tomasz Sowa
|
||||
* Copyright (c) 2018-2024, Tomasz Sowa
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -38,17 +38,11 @@
|
||||
#include <list>
|
||||
#include <set>
|
||||
#include <type_traits>
|
||||
#include "textstream/textstream.h"
|
||||
#include "textstream/stream.h"
|
||||
#include "date/date.h"
|
||||
#include "morm_types.h"
|
||||
#include "modelenv.h"
|
||||
#include "ft.h"
|
||||
#include "export.h"
|
||||
#include "convert/text.h"
|
||||
|
||||
#ifdef MORM_HAS_EZC_LIBRARY
|
||||
#include "funinfo.h"
|
||||
#endif
|
||||
|
||||
|
||||
namespace morm
|
||||
@@ -73,15 +67,13 @@ public:
|
||||
virtual void set_output_type(int output_type);
|
||||
virtual int get_output_type();
|
||||
|
||||
virtual pt::TextStream * get_text_stream();
|
||||
virtual void set_text_stream(pt::TextStream * out_stream);
|
||||
virtual pt::Stream * get_text_stream();
|
||||
virtual void set_text_stream(pt::Stream * out_stream);
|
||||
|
||||
virtual void clear();
|
||||
|
||||
virtual void generate_from_model(pt::TextStream & stream, Model & model);
|
||||
virtual void generate_from_model(pt::TextStream & stream, Model & model, const FT & field_type);
|
||||
|
||||
virtual pt::TextStream * get_current_stream();
|
||||
virtual void generate_from_model(pt::Stream & stream, Model & model);
|
||||
virtual void generate_from_model(pt::Stream & stream, Model & model, const FT & field_type);
|
||||
|
||||
// rename me
|
||||
virtual void allow_to_use_prefix(bool use_prefix);
|
||||
@@ -140,21 +132,21 @@ public:
|
||||
|
||||
|
||||
template<typename FieldValue>
|
||||
void field_in(pt::TextStream & stream, const wchar_t * field_name, const std::set<FieldValue> & container, ModelEnv * model_env)
|
||||
void field_in(pt::Stream & stream, const wchar_t * field_name, const std::set<FieldValue> & container, ModelEnv * model_env)
|
||||
{
|
||||
field_in_generic<FieldValue, std::set<FieldValue>>(stream, field_name, container, model_env);
|
||||
}
|
||||
|
||||
|
||||
template<typename FieldValue>
|
||||
void field_in(pt::TextStream & stream, const wchar_t * field_name, const std::list<FieldValue> & container, ModelEnv * model_env)
|
||||
void field_in(pt::Stream & stream, const wchar_t * field_name, const std::list<FieldValue> & container, ModelEnv * model_env)
|
||||
{
|
||||
field_in_generic<FieldValue, std::list<FieldValue>>(stream, field_name, container, model_env);
|
||||
}
|
||||
|
||||
|
||||
template<typename FieldValue>
|
||||
void field_in(pt::TextStream & stream, const wchar_t * field_name, const std::vector<FieldValue> & container, ModelEnv * model_env)
|
||||
void field_in(pt::Stream & stream, const wchar_t * field_name, const std::vector<FieldValue> & container, ModelEnv * model_env)
|
||||
{
|
||||
field_in_generic<FieldValue, std::vector<FieldValue>>(stream, field_name, container, model_env);
|
||||
}
|
||||
@@ -223,7 +215,7 @@ public:
|
||||
|
||||
|
||||
template<typename FieldValue>
|
||||
void field_to_stream(pt::TextStream & stream, const wchar_t * field_name, const FieldValue & field_value, const FT & field_type, ModelEnv * model_env)
|
||||
void field_to_stream(pt::Stream & stream, const wchar_t * field_name, const FieldValue & field_value, const FT & field_type, ModelEnv * model_env)
|
||||
{
|
||||
this->out_stream = &stream;
|
||||
field(field_name, field_value, field_type, model_env);
|
||||
@@ -232,7 +224,7 @@ public:
|
||||
|
||||
|
||||
template<typename FieldValue>
|
||||
void value_to_stream(pt::TextStream & stream, const FieldValue & field_value, const FT & field_type, ModelEnv * model_env = nullptr)
|
||||
void value_to_stream(pt::Stream & stream, const FieldValue & field_value, const FT & field_type, ModelEnv * model_env = nullptr)
|
||||
{
|
||||
this->out_stream = &stream;
|
||||
put_field_value(field_value, field_type, model_env);
|
||||
@@ -260,25 +252,25 @@ public:
|
||||
virtual void put_stream(const pt::TextStream & str, const FT & field_type, bool add_quotes = false, ModelEnv * model_env = nullptr);
|
||||
virtual void put_stream(const pt::WTextStream & str, const FT & field_type, bool add_quotes = false, ModelEnv * model_env = nullptr);
|
||||
|
||||
virtual void schema_table_to_stream(pt::TextStream & stream, const wchar_t * schema_name, const wchar_t * table_name);
|
||||
virtual void schema_table_to_stream(pt::TextStream & stream, const pt::WTextStream & schema_name, const pt::WTextStream & table_name);
|
||||
virtual void table_to_stream(pt::TextStream & stream, const wchar_t * table_name);
|
||||
virtual void table_to_stream(pt::TextStream & stream, const pt::WTextStream & table_name);
|
||||
virtual void table_with_index_to_stream(pt::TextStream & stream, const wchar_t * table_name, int index);
|
||||
virtual void table_with_index_to_stream(pt::TextStream & stream, const pt::WTextStream & table_name, int index);
|
||||
virtual void table_with_index_and_field_to_stream(pt::TextStream & stream, const wchar_t * table_name, int index, const wchar_t * field_name, const FT & field_type);
|
||||
virtual void table_with_index_and_field_to_stream(pt::TextStream & stream, const pt::WTextStream & table_name, int index, const wchar_t * field_name, const FT & field_type);
|
||||
virtual void table_and_field_to_stream(pt::TextStream & stream, const wchar_t * table_name, const wchar_t * field_name, const FT & field_type);
|
||||
virtual void table_and_field_to_stream(pt::TextStream & stream, const pt::WTextStream & table_name, const wchar_t * field_name, const FT & field_type);
|
||||
virtual void alias_to_stream(pt::TextStream & stream, const pt::WTextStream & alias_name, int index);
|
||||
virtual void alias_to_stream(pt::TextStream & stream, const pt::WTextStream & alias_name_prefix, int index, const wchar_t * alias_name_postfix);
|
||||
virtual void schema_table_to_stream(pt::Stream & stream, const wchar_t * schema_name, const wchar_t * table_name);
|
||||
virtual void schema_table_to_stream(pt::Stream & stream, const pt::WTextStream & schema_name, const pt::WTextStream & table_name);
|
||||
virtual void table_to_stream(pt::Stream & stream, const wchar_t * table_name);
|
||||
virtual void table_to_stream(pt::Stream & stream, const pt::WTextStream & table_name);
|
||||
virtual void table_with_index_to_stream(pt::Stream & stream, const wchar_t * table_name, int index);
|
||||
virtual void table_with_index_to_stream(pt::Stream & stream, const pt::WTextStream & table_name, int index);
|
||||
virtual void table_with_index_and_field_to_stream(pt::Stream & stream, const wchar_t * table_name, int index, const wchar_t * field_name, const FT & field_type);
|
||||
virtual void table_with_index_and_field_to_stream(pt::Stream & stream, const pt::WTextStream & table_name, int index, const wchar_t * field_name, const FT & field_type);
|
||||
virtual void table_and_field_to_stream(pt::Stream & stream, const wchar_t * table_name, const wchar_t * field_name, const FT & field_type);
|
||||
virtual void table_and_field_to_stream(pt::Stream & stream, const pt::WTextStream & table_name, const wchar_t * field_name, const FT & field_type);
|
||||
virtual void alias_to_stream(pt::Stream & stream, const pt::WTextStream & alias_name, int index);
|
||||
virtual void alias_to_stream(pt::Stream & stream, const pt::WTextStream & alias_name_prefix, int index, const wchar_t * alias_name_postfix);
|
||||
|
||||
virtual void string_to_stream(pt::TextStream & stream, const char * str, const FT & field_type, bool add_quotes = false, ModelEnv * model_env = nullptr);
|
||||
virtual void string_to_stream(pt::TextStream & stream, const wchar_t * str, const FT & field_type, bool add_quotes = false, ModelEnv * model_env = nullptr);
|
||||
virtual void string_to_stream(pt::TextStream & stream, const std::string & str, const FT & field_type, bool add_quotes = false, ModelEnv * model_env = nullptr);
|
||||
virtual void string_to_stream(pt::TextStream & stream, const std::wstring & str, const FT & field_type, bool add_quotes = false, ModelEnv * model_env = nullptr);
|
||||
virtual void stream_to_stream(pt::TextStream & stream_out, const pt::TextStream & stream_in, const FT & field_type, bool add_quotes = false, ModelEnv * model_env = nullptr);
|
||||
virtual void stream_to_stream(pt::TextStream & stream_out, const pt::WTextStream & stream_in, const FT & field_type, bool add_quotes = false, ModelEnv * model_env = nullptr);
|
||||
virtual void string_to_stream(pt::Stream & stream, const char * str, const FT & field_type, bool add_quotes = false, ModelEnv * model_env = nullptr);
|
||||
virtual void string_to_stream(pt::Stream & stream, const wchar_t * str, const FT & field_type, bool add_quotes = false, ModelEnv * model_env = nullptr);
|
||||
virtual void string_to_stream(pt::Stream & stream, const std::string & str, const FT & field_type, bool add_quotes = false, ModelEnv * model_env = nullptr);
|
||||
virtual void string_to_stream(pt::Stream & stream, const std::wstring & str, const FT & field_type, bool add_quotes = false, ModelEnv * model_env = nullptr);
|
||||
virtual void stream_to_stream(pt::Stream & stream_out, const pt::TextStream & stream_in, const FT & field_type, bool add_quotes = false, ModelEnv * model_env = nullptr);
|
||||
virtual void stream_to_stream(pt::Stream & stream_out, const pt::WTextStream & stream_in, const FT & field_type, bool add_quotes = false, ModelEnv * model_env = nullptr);
|
||||
|
||||
|
||||
|
||||
@@ -325,36 +317,36 @@ public:
|
||||
* esc for: signed char, wchar_t, char16_t, char32_t
|
||||
*
|
||||
*/
|
||||
virtual bool esc_char(char val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual bool esc_char(wchar_t val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual bool esc_char(char val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual bool esc_char(wchar_t val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
|
||||
virtual void esc(char val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(unsigned char val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(wchar_t val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(char val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(unsigned char val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(wchar_t val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
|
||||
virtual void esc(const std::wstring & val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(const wchar_t * val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(const std::wstring & val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(const wchar_t * val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
|
||||
virtual void esc(const std::string & val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(const char * val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(const std::string & val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(const char * val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
|
||||
virtual void esc(bool val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(short val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(unsigned short val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(int val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(unsigned int val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(long val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(unsigned long val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(long long val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(unsigned long long val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(float val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(double val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(long double val, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(bool val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(short val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(unsigned short val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(int val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(unsigned int val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(long val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(unsigned long val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(long long val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(unsigned long long val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(float val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(double val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(long double val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
|
||||
virtual void esc(const pt::Date & date, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(const pt::TextStream & val,pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(const pt::WTextStream & val,pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(const pt::Space & space, pt::TextStream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(const pt::Date & date, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(const pt::TextStream & val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(const pt::WTextStream & val, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
virtual void esc(const pt::Space & space, pt::Stream & stream, const FT & field_type = FT::default_type, ModelEnv * model_env = nullptr);
|
||||
|
||||
|
||||
|
||||
@@ -363,7 +355,7 @@ protected:
|
||||
int work_mode; /* what to do: generating fields list, values list or fields-values list */
|
||||
int output_type;
|
||||
bool is_first_field;
|
||||
pt::TextStream * out_stream;
|
||||
pt::Stream * out_stream;
|
||||
bool use_prefix;
|
||||
pt::TextStream scratch_buffer_local;
|
||||
pt::TextStream * scratch_buffer;
|
||||
@@ -579,7 +571,7 @@ protected:
|
||||
|
||||
// used in 'in()' statements, may should be renamed?
|
||||
template<typename FieldValue, typename Container>
|
||||
void field_in_generic(pt::TextStream & stream, const wchar_t * field_name, const Container & container, ModelEnv * model_env)
|
||||
void field_in_generic(pt::Stream & stream, const wchar_t * field_name, const Container & container, ModelEnv * model_env)
|
||||
{
|
||||
// IMPROVE ME
|
||||
// what about if container is empty?
|
||||
@@ -668,40 +660,40 @@ protected:
|
||||
* put_type for: signed char, wchar_t, char16_t, char32_t
|
||||
*
|
||||
*/
|
||||
// virtual void put_type(char val, pt::TextStream & stream);
|
||||
// virtual void put_type(unsigned char val, pt::TextStream & stream);
|
||||
// virtual void put_type(char val, pt::Stream & stream);
|
||||
// virtual void put_type(unsigned char val, pt::Stream & stream);
|
||||
//
|
||||
// virtual void put_type(const std::wstring & val, pt::TextStream & stream);
|
||||
// virtual void put_type(const wchar_t * val, pt::TextStream & stream);
|
||||
// virtual void put_type(const std::wstring & val, pt::Stream & stream);
|
||||
// virtual void put_type(const wchar_t * val, pt::Stream & stream);
|
||||
//
|
||||
// virtual void put_type(const std::string & val, pt::TextStream & stream);
|
||||
// virtual void put_type(const char * val, pt::TextStream & stream);
|
||||
// virtual void put_type(const std::string & val, pt::Stream & stream);
|
||||
// virtual void put_type(const char * val, pt::Stream & stream);
|
||||
//
|
||||
// virtual void put_type(bool val, pt::TextStream & stream);
|
||||
// virtual void put_type(short val, pt::TextStream & stream);
|
||||
// virtual void put_type(unsigned short val, pt::TextStream & stream);
|
||||
// virtual void put_type(int val, pt::TextStream & stream);
|
||||
// virtual void put_type(unsigned int val, pt::TextStream & stream);
|
||||
// virtual void put_type(long val, pt::TextStream & stream);
|
||||
// virtual void put_type(unsigned long val, pt::TextStream & stream);
|
||||
// virtual void put_type(long long val, pt::TextStream & stream);
|
||||
// virtual void put_type(unsigned long long val, pt::TextStream & stream);
|
||||
// virtual void put_type(float val, pt::TextStream & stream);
|
||||
// virtual void put_type(double val, pt::TextStream & stream);
|
||||
// virtual void put_type(long double val, pt::TextStream & stream);
|
||||
//virtual void put_type(void* val, pt::TextStream & stream);
|
||||
// virtual void put_type(bool val, pt::Stream & stream);
|
||||
// virtual void put_type(short val, pt::Stream & stream);
|
||||
// virtual void put_type(unsigned short val, pt::Stream & stream);
|
||||
// virtual void put_type(int val, pt::Stream & stream);
|
||||
// virtual void put_type(unsigned int val, pt::Stream & stream);
|
||||
// virtual void put_type(long val, pt::Stream & stream);
|
||||
// virtual void put_type(unsigned long val, pt::Stream & stream);
|
||||
// virtual void put_type(long long val, pt::Stream & stream);
|
||||
// virtual void put_type(unsigned long long val, pt::Stream & stream);
|
||||
// virtual void put_type(float val, pt::Stream & stream);
|
||||
// virtual void put_type(double val, pt::Stream & stream);
|
||||
// virtual void put_type(long double val, pt::Stream & stream);
|
||||
//virtual void put_type(void* val, pt::Stream & stream);
|
||||
|
||||
// virtual void put_type(const pt::Date & date, pt::TextStream & stream);
|
||||
// virtual void put_type(const Model & model, pt::TextStream & stream);
|
||||
// virtual void put_type(const pt::Date & date, pt::Stream & stream);
|
||||
// virtual void put_type(const Model & model, pt::Stream & stream);
|
||||
//
|
||||
// template<typename ListType>
|
||||
// void put_type(const std::list<ListType> & model, pt::TextStream & stream)
|
||||
// void put_type(const std::list<ListType> & model, pt::Stream & stream)
|
||||
// {
|
||||
// stream << "table"; // may just use std::list?
|
||||
// }
|
||||
//
|
||||
// template<typename ListType>
|
||||
// void put_type(const std::vector<ListType> & model, pt::TextStream & stream)
|
||||
// void put_type(const std::vector<ListType> & model, pt::Stream & stream)
|
||||
// {
|
||||
// stream << "table"; // may just just std::vector?
|
||||
// }
|
||||
@@ -712,18 +704,18 @@ protected:
|
||||
virtual void after_field_value_string(const FT & field_type, ModelEnv * model_env);
|
||||
|
||||
char char_to_hex_part(char c);
|
||||
void char_to_hex(char c, pt::TextStream & stream);
|
||||
void char_to_hex(wchar_t c, pt::TextStream & stream);
|
||||
void char_to_hex(char c, pt::Stream & stream);
|
||||
void char_to_hex(wchar_t c, pt::Stream & stream);
|
||||
|
||||
void esc(const wchar_t * val, bool has_known_length, size_t len, pt::TextStream & stream, const FT & field_type, ModelEnv * model_env);
|
||||
void esc(const char * val, bool has_known_length, size_t len, pt::TextStream & stream, const FT & field_type, ModelEnv * model_env);
|
||||
void esc(const wchar_t * val, bool has_known_length, size_t len, pt::Stream & stream, const FT & field_type, ModelEnv * model_env);
|
||||
void esc(const char * val, bool has_known_length, size_t len, pt::Stream & stream, const FT & field_type, ModelEnv * model_env);
|
||||
|
||||
bool is_empty_field(const wchar_t * value);
|
||||
|
||||
|
||||
|
||||
template<typename CharType>
|
||||
void esc_normal_string(CharType * val, bool has_known_length, size_t len, pt::TextStream & stream, const FT & field_type, ModelEnv * model_env)
|
||||
void esc_normal_string(CharType * val, bool has_known_length, size_t len, pt::Stream & stream, const FT & field_type, ModelEnv * model_env)
|
||||
{
|
||||
for(size_t i = 0 ; has_known_length ? (i < len) : val[i] != 0 ; ++i)
|
||||
{
|
||||
@@ -733,7 +725,7 @@ protected:
|
||||
|
||||
|
||||
template<typename CharType>
|
||||
void esc_numeric_string(CharType * val, bool has_known_length, size_t len, pt::TextStream & stream, const FT & field_type, ModelEnv * model_env)
|
||||
void esc_numeric_string(CharType * val, bool has_known_length, size_t len, pt::Stream & stream, const FT & field_type, ModelEnv * model_env)
|
||||
{
|
||||
bool was_comma = false;
|
||||
bool was_something_printed = false;
|
||||
|
Reference in New Issue
Block a user