ScaleOut Native C++ API Library  5.1
 All Classes Functions Variables Enumerations Enumerator Friends
reference_operand.h
1 #pragma once
2 
3 #include <string>
4 #include <vector>
5 #include <stdint.h>
6 #include <boost/shared_ptr.hpp>
7 
8 #include "soss_client/filter.h"
9 #include "soss_client/query_expression.h"
10 #include "soss_client/comparison_expression_operand.h"
11 
12 namespace sosscli {
13 
14 class ValueOperand;
15 class QueryExpression;
16 
17 namespace internal {
18  class ComparisonExpression;
19 }
20 
22 {
23 public:
24  ReferenceOperand(std::string const & field_name);
25  ReferenceOperand(const char * field_name);
26 
27  Filter operator ==(ValueOperand const & value);
28  Filter equal(ReferenceOperand const & field);
29 
30  Filter operator !=(ValueOperand const & value);
31  Filter not_equal(ReferenceOperand const & field);
32  Filter operator >(ValueOperand const & value);
33  Filter greater_than(ReferenceOperand const & field);
34  Filter operator >=(ValueOperand const & value);
35  Filter greater_or_equal(ReferenceOperand const & field);
36 
37  Filter operator <(ValueOperand const & value);
38  Filter less_than(ReferenceOperand const & field);
39  Filter operator <=(ValueOperand const & value);
40  Filter less_or_equal(ReferenceOperand const & field);
41 
42  // TODO: HasAnyTag, HasAllTags, HasTags, StringContains,
43 
44  std::string const & field_name() const;
45 
46  virtual void accept(QueryExpression::Visitor & v) const;
47 
48 private:
49  std::string field_name_;
50 };
51 
52 
53 }