From cbea669aa4b36da862dc872d6b8edb8ba9b6a917 Mon Sep 17 00:00:00 2001 From: cxl Date: Sun, 3 Nov 2013 14:36:25 +0000 Subject: [PATCH] Core: Ref, Sql: S_* refactored git-svn-id: svn://ultimatepp.org/upp/trunk@6519 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Core/Value.h | 2 +- uppsrc/Core/Value.hpp | 14 +-- uppsrc/Core/ValueUtil.cpp | 13 +-- uppsrc/Core/ValueUtil.h | 69 +++++++------ uppsrc/Core/src.tpp/Ref$en-us.tpp | 5 - uppsrc/CtrlCore/GtkDrawText.cpp | 2 +- uppsrc/Geom/Coords/coords.cpp | 8 +- uppsrc/Sql/S_info.cpp | 87 ++++++++++++++++ uppsrc/Sql/Sql.upp | 1 + uppsrc/Sql/SqlSchema.h | 67 ++++++++++++ uppsrc/Sql/sch_header.h | 53 ++++++---- uppsrc/Sql/sch_source.h | 99 +++++------------- uppsrc/Sql/src.tpp/S_type$en-us.tpp | 152 ++++++++++++++++++++++++++++ uppsrc/TCore/util.h | 8 +- 14 files changed, 430 insertions(+), 150 deletions(-) create mode 100644 uppsrc/Sql/S_info.cpp create mode 100644 uppsrc/Sql/src.tpp/S_type$en-us.tpp diff --git a/uppsrc/Core/Value.h b/uppsrc/Core/Value.h index 6960d73c9..5088b9f26 100644 --- a/uppsrc/Core/Value.h +++ b/uppsrc/Core/Value.h @@ -63,7 +63,7 @@ public: bool operator==(const T&) const { NEVER(); return false; } String ToString() const { return typeid(T).name(); } - operator ValueTypeRef(); +// operator ValueTypeRef(); }; template // Backward compatiblity diff --git a/uppsrc/Core/Value.hpp b/uppsrc/Core/Value.hpp index 8bf247ee5..0ac453762 100644 --- a/uppsrc/Core/Value.hpp +++ b/uppsrc/Core/Value.hpp @@ -333,9 +333,9 @@ inline const T& ValueTo(const Value& v, const T& dflt) { return v.Is() ? template // Deprecated (?) struct RawRef : public RefManager { - virtual void SetValue(void *p, const Value& v) { *(T *) p = RawValue::Extract(v); } - virtual Value GetValue(const void *p) { return RawValue(*(const T *) p); } - virtual int GetType() { return GetValueTypeNo(); } + virtual void SetValue(void *p, const Value& v) const { *(T *) p = RawValue::Extract(v); } + virtual Value GetValue(const void *p) const { return RawValue(*(const T *) p); } + virtual int GetType() const { return GetValueTypeNo(); } virtual ~RawRef() {} }; @@ -346,10 +346,10 @@ Ref RawAsRef(T& x) { // Deprecated (?) template // Deprecated struct RichRef : public RawRef { - virtual Value GetValue(const void *p) { return RichValue(*(T *) p); } - virtual bool IsNull(const void *p) { return UPP::IsNull(*(T *) p); } - virtual void SetValue(void *p, const Value& v) { *(T *) p = T(v); } - virtual void SetNull(void *p) { UPP::SetNull(*(T *)p); } + virtual Value GetValue(const void *p) const { return RichValue(*(T *) p); } + virtual bool IsNull(const void *p) const { return UPP::IsNull(*(T *) p); } + virtual void SetValue(void *p, const Value& v) const { *(T *) p = T(v); } + virtual void SetNull(void *p) const { UPP::SetNull(*(T *)p); } }; template // Deprecated diff --git a/uppsrc/Core/ValueUtil.cpp b/uppsrc/Core/ValueUtil.cpp index 264944294..afd402609 100644 --- a/uppsrc/Core/ValueUtil.cpp +++ b/uppsrc/Core/ValueUtil.cpp @@ -6,12 +6,13 @@ static String sAsString(const Vector& v); #define LTIMING(x) // RTIMING(x) +/* struct Ref::ValueRef : public RefManager { - virtual int GetType() { return VALUE_V; } - virtual Value GetValue(const void *ptr) { return *(Value *) ptr; } - virtual bool IsNull(const void *ptr) { return UPP::IsNull(*(Value *) ptr); } - virtual void SetValue(void *ptr, const Value& v) { *(Value *) ptr = v; } - virtual void SetNull(void *ptr) { *(Value *) ptr = Null; } + virtual int GetType() const { return VALUE_V; } + virtual Value GetValue(const void *ptr) const { return *(Value *) ptr; } + virtual bool IsNull(const void *ptr) const { return UPP::IsNull(*(Value *) ptr); } + virtual void SetValue(void *ptr, const Value& v) const { *(Value *) ptr = v; } + virtual void SetNull(void *ptr) const { *(Value *) ptr = Null; } }; Ref::Ref(String& s) { ptr = &s; m = &Single< StdRef >(); } @@ -23,7 +24,7 @@ Ref::Ref(bool& b) { ptr = &b; m = &Single< StdRef >(); } Ref::Ref(Date& d) { ptr = &d; m = &Single< StdRef >(); } Ref::Ref(Time& t) { ptr = &t; m = &Single< StdRef