[Groonga-commit] groonga/grnxx at d1630e1 [master] Add ExpressionBuilder::release() instead of create_expression().

Back to archive index

susumu.yata null+****@clear*****
Thu Jun 12 16:09:01 JST 2014


susumu.yata	2014-06-12 16:09:01 +0900 (Thu, 12 Jun 2014)

  New Revision: d1630e1936cd05159373509a2d43a70bfae0e53a
  https://github.com/groonga/grnxx/commit/d1630e1936cd05159373509a2d43a70bfae0e53a

  Message:
    Add ExpressionBuilder::release() instead of create_expression().

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

  Modified: new-interface/expression-builder.hpp (+15 -5)
===================================================================
--- new-interface/expression-builder.hpp    2014-06-12 11:55:42 +0900 (b689fbd)
+++ new-interface/expression-builder.hpp    2014-06-12 16:09:01 +0900 (24d108b)
@@ -31,6 +31,9 @@ class ExpressionBuilder {
   // 成功すれば true を返す.
   // 失敗したときは *error にその内容を格納し, false を返す.
   //
+  // column_name に "_id" を指定すれば行 ID に対応するノード,
+  // "_score" を指定すればスコアに対応するノードを作成する.
+  //
   // 作成されたノードはスタックに積まれる.
   //
   // 失敗する状況としては,以下のようなものが挙げられる.
@@ -47,6 +50,8 @@ class ExpressionBuilder {
   // 被演算子を作成した後に演算子を作成しなければならない.
   // これは後置式(逆ポーランド記法)の考え方にもとづく.
   //
+  // 作成されたノードはスタックに積まれる.
+  //
   // 失敗する状況としては,以下のようなものが挙げられる.
   // - 引数がスタックに存在しない.
   // - 演算子と引数が対応していない.
@@ -56,18 +61,23 @@ class ExpressionBuilder {
       Error *error,
       OperatorType operator_type) = 0;
 
-  // すべてのノードを破棄する.
+  // 保持しているノードやスタックを破棄する.
   virtual void clear();
 
-  // 最後に作成したノードを根とする構文木に対応する式を作成する.
+  // 構築された式を取得する.
   // 成功すれば有効なオブジェクトへのポインタを返す.
   // 失敗したときは *error にその内容を格納し, nullptr を返す.
   //
+  // 保持しているノードやスタックは破棄される.
+  //
+  // TODO: 内部で作成した Expression の所有権を返すだけにしたい.
+  //
   // 失敗する状況としては,以下のようなものが挙げられる.
+  // - ノードがひとつもない.
+  // - スタックに二つ以上のノードが存在する.
+  //  - 式が完成していないことを示す.
   // - リソースを確保できない.
-  virtual std::unique_ptr<Expression> create_expression(
-      Error *error,
-      const ExpressionOptions &options) const;
+  virtual std::unique_ptr<Expression> release(Error *error);
 };
 
 }  // namespace grnxx
-------------- next part --------------
HTML����������������������������...
下载 



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