From: Peng Huang Date: Mon, 28 Dec 2009 10:12:00 +0000 (+0800) Subject: Replase GString with std::string X-Git-Tag: 1.3.0~86^2~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5ddd4d2ce16ddd812762db37bd13907c0ed7b604;p=platform%2Fupstream%2Fibus-libpinyin.git Replase GString with std::string --- diff --git a/src/Database.cc b/src/Database.cc index 7e39a7c..b955134 100644 --- a/src/Database.cc +++ b/src/Database.cc @@ -443,7 +443,7 @@ Database::query (const PinyinArray &pinyin, } inline void -Database::phraseWhereSql (const Phrase & p, MyString & sql) +Database::phraseWhereSql (const Phrase & p, String & sql) { sql << " WHERE"; sql << " s0=" << p.pinyin_id[0][0] @@ -457,7 +457,7 @@ Database::phraseWhereSql (const Phrase & p, MyString & sql) } inline void -Database::phraseSql (const Phrase & p, MyString & sql) +Database::phraseSql (const Phrase & p, String & sql) { sql << "INSERT OR IGNORE INTO userdb.py_phrase_" << p.len - 1 << " VALUES(" << 0 /* user_freq */ diff --git a/src/Database.h b/src/Database.h index b4b6084..1a5e071 100644 --- a/src/Database.h +++ b/src/Database.h @@ -6,6 +6,7 @@ #include #include #include +#include "String.h" #include "Types.h" #include "PinyinArray.h" #include "PhraseArray.h" @@ -57,62 +58,6 @@ private: guint m_length; }; -class MyString : public string { -public: - MyString & printf (const gchar *fmt, ...) { - gchar *str; - va_list args; - - va_start (args, fmt); - str = g_strdup_vprintf (fmt, args); - va_end (args); - - assign (str); - g_free (str); - return *this; - } - - MyString & appendPrintf (const gchar *fmt, ...) { - gchar *str; - va_list args; - - va_start (args, fmt); - str = g_strdup_vprintf (fmt, args); - va_end (args); - - append (str); - g_free (str); - - return *this; - } - - MyString & operator<< (gint i) { - return appendPrintf ("%d", i); - } - - MyString & operator<< (guint i) { - return appendPrintf ("%u", i); - } - - MyString & operator<< (const gchar ch) { - append (1, ch); - return *this; - } - - MyString & operator<< (const gchar * str) { - append (str); - return *this; - } - - MyString & operator= (const gchar * str) { - assign (str); - return *this; - } - - operator const gchar *(void) { - return this->c_str (); - } -}; class Database { public: @@ -139,16 +84,16 @@ private: gboolean init (void); gboolean initUserDatabase (const gchar *userdb); void prefetch (void); - void phraseSql (const Phrase & p, MyString & sql); - void phraseWhereSql (const Phrase & p, MyString & sql); + void phraseSql (const Phrase & p, String & sql); + void phraseWhereSql (const Phrase & p, String & sql); gboolean executeSQL (const gchar *sql); private: private: - sqlite3 *m_db; /* sqlite3 database */ - MyString m_sql; /* sql stmt */ - MyString m_buffer; /* temp buffer */ - Conditions m_conditions; /* select conditions */ + sqlite3 *m_db; /* sqlite3 database */ + String m_sql; /* sql stmt */ + String m_buffer; /* temp buffer */ + Conditions m_conditions; /* select conditions */ }; diff --git a/src/String.h b/src/String.h index 1b3bb12..710f0b8 100644 --- a/src/String.h +++ b/src/String.h @@ -2,10 +2,109 @@ #define __PY_STRING_H_ #include #include -#include "WideString.h" +#include + namespace PY { +class String : public std::string { +public: + String () : std::string () {} + String (gint len) : std::string () {} + String & printf (const gchar *fmt, ...) { + gchar *str; + va_list args; + + va_start (args, fmt); + str = g_strdup_vprintf (fmt, args); + va_end (args); + + assign (str); + g_free (str); + return *this; + } + + String & appendUnichar (gunichar ch) { + gchar str[10]; + g_unichar_to_utf8 (ch, str); + append (str); + return *this; + } + + String & appendPrintf (const gchar *fmt, ...) { + gchar *str; + va_list args; + + va_start (args, fmt); + str = g_strdup_vprintf (fmt, args); + va_end (args); + + append (str); + g_free (str); + + return *this; + } + + String & insert (gint i, gchar ch) { + std::string::insert (i, 1, ch); + return *this; + } + + String & truncate (guint len) { + erase(len); + return *this; + } + + gboolean isEmpty (void) const { + return empty (); + } + + gsize utf8Length (void) const { + return g_utf8_strlen (c_str(), -1); + } + + String & operator<< (gint i) { + return appendPrintf ("%d", i); + } + + String & operator<< (guint i) { + return appendPrintf ("%u", i); + } + + String & operator<< (const gchar ch) { + append (1, ch); + return *this; + } + + String & operator<< (const gchar * str) { + append (str); + return *this; + } + + String & operator << (const gunichar *wstr) { + for (gint i = 0; wstr[i] != 0; i++) + operator << (wstr[i]); + return *this; + } + + String & operator<< (const String &str) { + return operator<< ((const gchar *)str); + } + + String & operator= (const gchar * str) { + assign (str); + return *this; + } + + operator const gchar *(void) const { + return this->c_str (); + } + + operator gboolean (void) const { + return ! isEmpty (); + } +}; +#if 0 class String { public: String (const gchar *init) { @@ -187,5 +286,6 @@ public: private: GString *m_string; }; +#endif }; #endif