added support for hex strings and binary strings
added FT::hexadecimal, FT::binary and FT::dont_use_utf8
This commit is contained in:
@@ -129,13 +129,13 @@ public:
|
||||
if( field_type.is_primary_key() )
|
||||
{
|
||||
if( model_env && model_env->has_primary_key_set )
|
||||
put_field_value(field_value);
|
||||
put_field_value(field_value, field_type);
|
||||
else
|
||||
put_null_value();
|
||||
}
|
||||
else
|
||||
{
|
||||
put_field_value(field_value);
|
||||
put_field_value(field_value, field_type);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -288,35 +288,35 @@ public:
|
||||
* esc for: signed char, wchar_t, char16_t, char32_t
|
||||
*
|
||||
*/
|
||||
virtual void esc(char val, PT::TextStream & stream);
|
||||
virtual void esc(unsigned char val, PT::TextStream & stream);
|
||||
virtual void esc(char val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(unsigned char val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
|
||||
virtual void esc(wchar_t val, PT::TextStream & stream);
|
||||
virtual void esc(wchar_t val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
|
||||
virtual void esc(const std::wstring & val, PT::TextStream & stream);
|
||||
virtual void esc(const wchar_t * val, PT::TextStream & stream);
|
||||
virtual void esc(const std::wstring & val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(const wchar_t * val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
|
||||
virtual void esc(const std::string & val, PT::TextStream & stream);
|
||||
virtual void esc(const char * val, PT::TextStream & stream);
|
||||
virtual void esc(const std::string & val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(const char * val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
|
||||
virtual void esc(bool val, PT::TextStream & stream);
|
||||
virtual void esc(short val, PT::TextStream & stream);
|
||||
virtual void esc(unsigned short val, PT::TextStream & stream);
|
||||
virtual void esc(int val, PT::TextStream & stream);
|
||||
virtual void esc(unsigned int val, PT::TextStream & stream);
|
||||
virtual void esc(long val, PT::TextStream & stream);
|
||||
virtual void esc(unsigned long val, PT::TextStream & stream);
|
||||
virtual void esc(long long val, PT::TextStream & stream);
|
||||
virtual void esc(unsigned long long val, PT::TextStream & stream);
|
||||
virtual void esc(float val, PT::TextStream & stream);
|
||||
virtual void esc(double val, PT::TextStream & stream);
|
||||
virtual void esc(long double val, PT::TextStream & stream);
|
||||
virtual void esc(bool val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(short val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(unsigned short val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(int val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(unsigned int val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(long val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(unsigned long val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(long long val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(unsigned long long val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(float val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(double val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(long double val, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
//virtual void esc(void* val, PT::TextStream & stream);
|
||||
|
||||
virtual void esc(const PT::Date & date, PT::TextStream & stream);
|
||||
virtual void esc(const PT::TextStream & val,PT::TextStream & stream);
|
||||
virtual void esc(const PT::WTextStream & val,PT::TextStream & stream);
|
||||
virtual void esc(const PT::Space & space, PT::TextStream & stream);
|
||||
virtual void esc(const PT::Date & date, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(const PT::TextStream & val,PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(const PT::WTextStream & val,PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
virtual void esc(const PT::Space & space, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
|
||||
virtual bool is_long_field_name(const wchar_t * field_name);
|
||||
virtual bool is_long_field_name(const PT::TextStream & table_name);
|
||||
@@ -344,13 +344,13 @@ protected:
|
||||
virtual void dump_additional_info(Model & model);
|
||||
|
||||
template<typename FieldValue>
|
||||
void put_field_value(const FieldValue & field_value)
|
||||
void put_field_value(const FieldValue & field_value, FT field_type)
|
||||
{
|
||||
if( out_stream )
|
||||
{
|
||||
before_field_value(field_value);
|
||||
esc(field_value, *out_stream);
|
||||
after_field_value(field_value);
|
||||
before_field_value(field_value, field_type);
|
||||
esc(field_value, *out_stream, field_type);
|
||||
after_field_value(field_value, field_type);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -402,7 +402,7 @@ protected:
|
||||
field_value_list_separator();
|
||||
}
|
||||
|
||||
put_field_value(m);
|
||||
put_field_value(m, FT::default_type);
|
||||
is_first = false;
|
||||
}
|
||||
|
||||
@@ -641,7 +641,7 @@ protected:
|
||||
field_value_list_separator();
|
||||
}
|
||||
|
||||
put_field_value(v);
|
||||
put_field_value(v, FT::default_type);
|
||||
is_first = false;
|
||||
}
|
||||
|
||||
@@ -672,31 +672,37 @@ protected:
|
||||
virtual void put_long_field_name(const wchar_t * field_name);
|
||||
virtual void put_short_field_name(const wchar_t * field_name, ModelEnv * model_env);
|
||||
|
||||
virtual void before_field_value(const std::wstring &);
|
||||
virtual void after_field_value(const std::wstring &);
|
||||
virtual void before_field_value(const std::wstring &, FT field_type);
|
||||
virtual void after_field_value(const std::wstring &, FT field_type);
|
||||
|
||||
virtual void before_field_value(const std::string &);
|
||||
virtual void after_field_value(const std::string &);
|
||||
virtual void before_field_value(const std::string &, FT field_type);
|
||||
virtual void after_field_value(const std::string &, FT field_type);
|
||||
|
||||
virtual void before_field_value(const wchar_t *);
|
||||
virtual void after_field_value(const wchar_t *);
|
||||
virtual void before_field_value(const wchar_t *, FT field_type);
|
||||
virtual void after_field_value(const wchar_t *, FT field_type);
|
||||
|
||||
virtual void before_field_value(const char *);
|
||||
virtual void after_field_value(const char *);
|
||||
virtual void before_field_value(const char *, FT field_type);
|
||||
virtual void after_field_value(const char *, FT field_type);
|
||||
|
||||
virtual void before_field_value(const PT::Date &);
|
||||
virtual void after_field_value(const PT::Date &);
|
||||
virtual void before_field_value(wchar_t, FT field_type);
|
||||
virtual void after_field_value(wchar_t, FT field_type);
|
||||
|
||||
virtual void before_field_value(const PT::Space &);
|
||||
virtual void after_field_value(const PT::Space &);
|
||||
virtual void before_field_value(char, FT field_type);
|
||||
virtual void after_field_value(char, FT field_type);
|
||||
|
||||
virtual void before_field_value(const PT::Date &, FT field_type);
|
||||
virtual void after_field_value(const PT::Date &, FT field_type);
|
||||
|
||||
virtual void before_field_value(const PT::Space &, FT field_type);
|
||||
virtual void after_field_value(const PT::Space &, FT field_type);
|
||||
|
||||
template<typename FieldValue>
|
||||
void before_field_value(const FieldValue &)
|
||||
void before_field_value(const FieldValue &, FT field_type)
|
||||
{
|
||||
}
|
||||
|
||||
template<typename FieldValue>
|
||||
void after_field_value(const FieldValue &)
|
||||
void after_field_value(const FieldValue &, FT field_type)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -747,12 +753,14 @@ protected:
|
||||
// }
|
||||
|
||||
|
||||
private:
|
||||
|
||||
virtual void before_field_value_string();
|
||||
virtual void after_field_value_string();
|
||||
virtual void before_field_value_string(FT field_type);
|
||||
virtual void after_field_value_string(FT field_type);
|
||||
|
||||
char char_to_hex_part(char c);
|
||||
void char_to_hex(char c, PT::TextStream & stream);
|
||||
|
||||
void esc(const wchar_t * val, bool has_known_length, size_t len, PT::TextStream & stream, FT field_type = FT::default_type);
|
||||
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user