[Groonga-commit] groonga/grnxx at 159f02e [master] Update grnxx::SorterBuilder.

Back to archive index

susumu.yata null+****@clear*****
Thu Jun 19 13:42:20 JST 2014


susumu.yata	2014-06-19 13:42:20 +0900 (Thu, 19 Jun 2014)

  New Revision: 159f02ec4af65bc9cf4155b3c9cef07809542461
  https://github.com/groonga/grnxx/commit/159f02ec4af65bc9cf4155b3c9cef07809542461

  Message:
    Update grnxx::SorterBuilder.

  Modified files:
    new-interface/sorter-builder.hpp

  Modified: new-interface/sorter-builder.hpp (+9 -8)
===================================================================
--- new-interface/sorter-builder.hpp    2014-06-19 13:41:49 +0900 (370a462)
+++ new-interface/sorter-builder.hpp    2014-06-19 13:42:20 +0900 (d648bd7)
@@ -24,9 +24,6 @@ class Sorter {
   Sorter();
   virtual ~Sorter();
 
-  // 所属するテーブルを取得する.
-  virtual Table *table() const = 0;
-
   // 前提条件を追加する.
   // 成功すれば true を返す.
   // 失敗したときは *error にその内容を格納し, false を返す.
@@ -38,7 +35,7 @@ class Sorter {
   // - 式の評価結果が大小関係を持たない型になる.
   // - リソースを確保できない.
   virtual bool add_precondition(Error *error,
-                                const Expression &expression,
+                                std::unique_ptr<Expression> &&expression,
                                 SortOrder order) const = 0;
 
   // 整列条件を追加する.
@@ -52,21 +49,25 @@ class Sorter {
   // - 式の評価結果が大小関係を持たない型になる.
   // - リソースを確保できない.
   virtual bool add_condition(Error *error,
-                             const Expression &expression,
+                             std::unique_ptr<Expression> &&expression,
                              SortOrder order) const = 0;
 
   // すべての条件を破棄する.
   virtual void clear();
 
-  // 指定された条件に対応する整列器を作成する.
+  // 構築中の整列器を完成させ,その所有権を取得する.
   // 成功すれば有効なオブジェクトへのポインタを返す.
   // 失敗したときは *error にその内容を格納し, nullptr を返す.
   //
+  // 所有権を返すため,保持している条件などは破棄する.
+  //
   // 失敗する状況としては,以下のようなものが挙げられる.
+  // - 整列条件が何も指定されていない.
+  // - オプションが不正である.
   // - リソースを確保できない.
-  virtual std::unique_ptr<Sorter> create_sorter(
+  virtual std::unique_ptr<Sorter> release(
       Error *error,
-      const SorterOptions &options) const;
+      const SorterOptions &options) const = 0;
 };
 
 }  // namespace grnxx
-------------- next part --------------
HTML����������������������������...
Télécharger 



More information about the Groonga-commit mailing list
Back to archive index