stringtable - 文字列テーブル StringTable は、多量に確保する文字列が互いに重複する可能性が高い場合に、 メモリの消費量を節約する目的で使用します。 ------------------------------------------------------------------------------ StringTable typedef struct { GHashTable *hash_table; } StringTable; 文字列テーブルを表す構造体です。 ------------------------------------------------------------------------------ StringTable *string_table_new (void); StringTable を作成します。 返った値は string_table_free() で解放する必要があります。 戻り値: StringTable 構造体へのポインタ ------------------------------------------------------------------------------ void string_table_free (StringTable *table); StringTable を解放します。 table: StringTable 構造体へのポインタ ------------------------------------------------------------------------------ gchar *string_table_lookup_string (StringTable *table, const gchar *str); 文字列テーブル table 内の文字列 str に一致する文字列エントリを返します。 table: StringTable 構造体へのポインタ str: 検索文字列 戻り値: table 内の文字列エントリ 見つからなければ NULL ------------------------------------------------------------------------------ gchar *string_table_insert_string (StringTable *table, const gchar *str); 文字列テーブル table に文字列 str を追加します。 該当するエントリが既に存在する場合は、参照カウントのみを増加させます。 table: StringTable 構造体へのポインタ str: 追加する文字列 戻り値: table 内の文字列エントリ ------------------------------------------------------------------------------ void string_table_free_string (StringTable *table, const gchar *str); 文字列テーブル table から文字列 str を削除します。 該当するエントリの参照カウントを減らし、0になった場合はエントリが削除 されます。該当するエントリが存在しなければ何もしません。 table: StringTable 構造体へのポインタ str: 削除する文字列 ------------------------------------------------------------------------------ void string_table_get_stats (StringTable *table); 文字列テーブル table の統計情報を出力します(デバッグモード時のみ)。 table: StringTable 構造体へのポインタ