OmniSciDB  c07336695a
NullableValue< T > Class Template Reference

#include <NullableValue.h>

Public Member Functions

 NullableValue ()
 
 NullableValue (T v)
 
bool isValid () const
 
bool isInvalid () const
 
getValue () const
 
NullableValue< T > operator+ (T v) const
 
NullableValue< T > operator- (T v) const
 
NullableValue< T > operator* (T v) const
 
NullableValue< T > operator/ (T v) const
 
NullableValue< T > operator+ (const NullableValue< T > &other) const
 
NullableValue< T > operator- (const NullableValue< T > &other) const
 
NullableValue< T > operator* (const NullableValue< T > &other) const
 
NullableValue< T > operator/ (const NullableValue< T > &other) const
 
bool operator== (const T v) const
 
bool operator!= (const T v) const
 
bool operator> (const T v) const
 
bool operator>= (const T v) const
 
bool operator< (const T v) const
 
bool operator<= (const T v) const
 

Static Public Member Functions

static T getDefaultValue ()
 

Private Types

enum  State { Invalid, Valid }
 

Private Attributes

State state_
 
value_
 

Detailed Description

template<typename T>
class NullableValue< T >

Definition at line 28 of file NullableValue.h.

Member Enumeration Documentation

◆ State

template<typename T>
enum NullableValue::State
private
Enumerator
Invalid 
Valid 

Definition at line 95 of file NullableValue.h.

Constructor & Destructor Documentation

◆ NullableValue() [1/2]

template<typename T>
NullableValue< T >::NullableValue ( )
inline

Definition at line 30 of file NullableValue.h.

◆ NullableValue() [2/2]

template<typename T>
NullableValue< T >::NullableValue ( v)
inline

Definition at line 31 of file NullableValue.h.

31 : state_(Valid), value_(v) {}
T v(const TargetValue &r)

Member Function Documentation

◆ getDefaultValue()

uint64_t Weight::getDefaultValue ( )
static

Definition at line 102 of file NullableValue.h.

Referenced by NullableValue< T >::operator<=().

102  {
103  return 0.5;
104 };
+ Here is the caller graph for this function:

◆ getValue()

template<typename T>
T NullableValue< T >::getValue ( ) const
inline

Definition at line 35 of file NullableValue.h.

References NullableValue< T >::value_.

Referenced by NullableValue< T >::operator*(), NullableValue< T >::operator+(), NullableValue< T >::operator-(), and NullableValue< T >::operator/().

35 { return value_; }
+ Here is the caller graph for this function:

◆ isInvalid()

template<typename T>
bool NullableValue< T >::isInvalid ( ) const
inline

Definition at line 34 of file NullableValue.h.

References NullableValue< T >::Invalid, and NullableValue< T >::state_.

Referenced by anonymous_namespace{LogicalIR.cpp}::get_likelihood(), NullableValue< T >::operator*(), NullableValue< T >::operator+(), NullableValue< T >::operator-(), and NullableValue< T >::operator/().

+ Here is the caller graph for this function:

◆ isValid()

template<typename T>
bool NullableValue< T >::isValid ( ) const
inline

Definition at line 33 of file NullableValue.h.

References NullableValue< T >::state_, and NullableValue< T >::Valid.

Referenced by NullableValue< T >::operator!=(), NullableValue< T >::operator<(), NullableValue< T >::operator<=(), NullableValue< T >::operator==(), NullableValue< T >::operator>(), and NullableValue< T >::operator>=().

33 { return state_ == Valid; }
+ Here is the caller graph for this function:

◆ operator!=()

template<typename T>
bool NullableValue< T >::operator!= ( const T  v) const
inline

Definition at line 86 of file NullableValue.h.

References NullableValue< T >::isValid(), v(), and NullableValue< T >::value_.

86 { return isValid() ? (value_ != v) : false; }
T v(const TargetValue &r)
bool isValid() const
Definition: NullableValue.h:33
+ Here is the call graph for this function:

◆ operator*() [1/2]

template<typename T>
NullableValue<T> NullableValue< T >::operator* ( v) const
inline

Definition at line 49 of file NullableValue.h.

References NullableValue< T >::isInvalid(), v(), and NullableValue< T >::value_.

49  {
50  if (isInvalid()) {
51  return NullableValue<T>();
52  }
53  return NullableValue<T>(value_ * v);
54  }
bool isInvalid() const
Definition: NullableValue.h:34
T v(const TargetValue &r)
+ Here is the call graph for this function:

◆ operator*() [2/2]

template<typename T>
NullableValue<T> NullableValue< T >::operator* ( const NullableValue< T > &  other) const
inline

Definition at line 73 of file NullableValue.h.

References NullableValue< T >::getValue(), NullableValue< T >::isInvalid(), and NullableValue< T >::value_.

73  {
74  if (isInvalid() && other.isInvalid()) {
75  return NullableValue<T>();
76  }
77  return NullableValue<T>(value_ * other.getValue());
78  }
bool isInvalid() const
Definition: NullableValue.h:34
T getValue() const
Definition: NullableValue.h:35
+ Here is the call graph for this function:

◆ operator+() [1/2]

template<typename T>
NullableValue<T> NullableValue< T >::operator+ ( v) const
inline

Definition at line 37 of file NullableValue.h.

References NullableValue< T >::isInvalid(), v(), and NullableValue< T >::value_.

37  {
38  if (isInvalid()) {
39  return NullableValue<T>();
40  }
41  return NullableValue<T>(value_ + v);
42  }
bool isInvalid() const
Definition: NullableValue.h:34
T v(const TargetValue &r)
+ Here is the call graph for this function:

◆ operator+() [2/2]

template<typename T>
NullableValue<T> NullableValue< T >::operator+ ( const NullableValue< T > &  other) const
inline

Definition at line 61 of file NullableValue.h.

References NullableValue< T >::getValue(), NullableValue< T >::isInvalid(), and NullableValue< T >::value_.

61  {
62  if (isInvalid() && other.isInvalid()) {
63  return NullableValue<T>();
64  }
65  return NullableValue<T>(value_ + other.getValue());
66  }
bool isInvalid() const
Definition: NullableValue.h:34
T getValue() const
Definition: NullableValue.h:35
+ Here is the call graph for this function:

◆ operator-() [1/2]

template<typename T>
NullableValue<T> NullableValue< T >::operator- ( v) const
inline

Definition at line 43 of file NullableValue.h.

References NullableValue< T >::isInvalid(), v(), and NullableValue< T >::value_.

43  {
44  if (isInvalid()) {
45  return NullableValue<T>();
46  }
47  return NullableValue<T>(value_ - v);
48  }
bool isInvalid() const
Definition: NullableValue.h:34
T v(const TargetValue &r)
+ Here is the call graph for this function:

◆ operator-() [2/2]

template<typename T>
NullableValue<T> NullableValue< T >::operator- ( const NullableValue< T > &  other) const
inline

Definition at line 67 of file NullableValue.h.

References NullableValue< T >::getValue(), NullableValue< T >::isInvalid(), and NullableValue< T >::value_.

67  {
68  if (isInvalid() && other.isInvalid()) {
69  return NullableValue<T>();
70  }
71  return NullableValue<T>(value_ - other.getValue());
72  }
bool isInvalid() const
Definition: NullableValue.h:34
T getValue() const
Definition: NullableValue.h:35
+ Here is the call graph for this function:

◆ operator/() [1/2]

template<typename T>
NullableValue<T> NullableValue< T >::operator/ ( v) const
inline

Definition at line 55 of file NullableValue.h.

References NullableValue< T >::isInvalid(), v(), and NullableValue< T >::value_.

55  {
56  if (isInvalid()) {
57  return NullableValue<T>();
58  }
59  return NullableValue<T>(value_ / v);
60  }
bool isInvalid() const
Definition: NullableValue.h:34
T v(const TargetValue &r)
+ Here is the call graph for this function:

◆ operator/() [2/2]

template<typename T>
NullableValue<T> NullableValue< T >::operator/ ( const NullableValue< T > &  other) const
inline

Definition at line 79 of file NullableValue.h.

References NullableValue< T >::getValue(), NullableValue< T >::isInvalid(), and NullableValue< T >::value_.

79  {
80  if (isInvalid() && other.isInvalid()) {
81  return NullableValue<T>();
82  }
83  return NullableValue<T>(value_ / other.getValue());
84  }
bool isInvalid() const
Definition: NullableValue.h:34
T getValue() const
Definition: NullableValue.h:35
+ Here is the call graph for this function:

◆ operator<()

template<typename T>
bool NullableValue< T >::operator< ( const T  v) const
inline

Definition at line 89 of file NullableValue.h.

References NullableValue< T >::isValid(), v(), and NullableValue< T >::value_.

89 { return isValid() ? (value_ < v) : false; }
T v(const TargetValue &r)
bool isValid() const
Definition: NullableValue.h:33
+ Here is the call graph for this function:

◆ operator<=()

template<typename T>
bool NullableValue< T >::operator<= ( const T  v) const
inline

Definition at line 90 of file NullableValue.h.

References NullableValue< T >::getDefaultValue(), NullableValue< T >::isValid(), v(), and NullableValue< T >::value_.

90 { return isValid() ? (value_ <= v) : false; }
T v(const TargetValue &r)
bool isValid() const
Definition: NullableValue.h:33
+ Here is the call graph for this function:

◆ operator==()

template<typename T>
bool NullableValue< T >::operator== ( const T  v) const
inline

Definition at line 85 of file NullableValue.h.

References NullableValue< T >::isValid(), v(), and NullableValue< T >::value_.

85 { return isValid() ? (value_ == v) : false; }
T v(const TargetValue &r)
bool isValid() const
Definition: NullableValue.h:33
+ Here is the call graph for this function:

◆ operator>()

template<typename T>
bool NullableValue< T >::operator> ( const T  v) const
inline

Definition at line 87 of file NullableValue.h.

References NullableValue< T >::isValid(), v(), and NullableValue< T >::value_.

87 { return isValid() ? (value_ > v) : false; }
T v(const TargetValue &r)
bool isValid() const
Definition: NullableValue.h:33
+ Here is the call graph for this function:

◆ operator>=()

template<typename T>
bool NullableValue< T >::operator>= ( const T  v) const
inline

Definition at line 88 of file NullableValue.h.

References NullableValue< T >::isValid(), v(), and NullableValue< T >::value_.

88 { return isValid() ? (value_ >= v) : false; }
T v(const TargetValue &r)
bool isValid() const
Definition: NullableValue.h:33
+ Here is the call graph for this function:

Member Data Documentation

◆ state_

template<typename T>
State NullableValue< T >::state_
private

Definition at line 96 of file NullableValue.h.

Referenced by NullableValue< T >::isInvalid(), and NullableValue< T >::isValid().

◆ value_


The documentation for this class was generated from the following file: