Qore Programming Language
0.8.11.1
|
Qore's floating-point value type, dynamically-allocated only, reference counted. More...
#include <QoreFloatNode.h>
Public Member Functions | |
DLLEXPORT | QoreFloatNode (double n_f) |
creates a new floating-point value and assigns the initial value to it More... | |
DLLEXPORT | QoreFloatNode () |
creates a new floating-point value and assigns 0.0 to it | |
virtual DLLEXPORT int | getAsString (QoreString &str, int foff, class ExceptionSink *xsink) const |
concatenate the string representation of the floating-point value to an existing QoreString More... | |
virtual DLLEXPORT QoreString * | getAsString (bool &del, int foff, class ExceptionSink *xsink) const |
returns a QoreString giving the string representation of the floating-point value, sets del to true More... | |
virtual DLLEXPORT class DateTime * | getDateTimeRepresentation (bool &del) const |
returns the DateTime representation of this value and sets del to true More... | |
virtual DLLEXPORT void | getDateTimeRepresentation (DateTime &dt) const |
assigns the date representation of the value to the DateTime reference passed More... | |
virtual DLLEXPORT QoreString * | getStringRepresentation (bool &del) const |
returns the floating-point value converted to a string and sets del to true More... | |
virtual DLLEXPORT void | getStringRepresentation (QoreString &str) const |
concatentates the floating-point value to an existing QoreString reference, default implementation does nothing More... | |
virtual DLLEXPORT const char * | getTypeName () const |
returns the type name as a c string More... | |
virtual DLLEXPORT bool | is_equal_hard (const AbstractQoreNode *v, ExceptionSink *xsink) const |
tests for equality without type conversions (hard compare) More... | |
virtual DLLEXPORT bool | is_equal_soft (const AbstractQoreNode *v, ExceptionSink *xsink) const |
tests for equality with possible type conversion (soft compare) More... | |
virtual DLLLOCAL AbstractQoreNode * | parseInit (LocalVar *oflag, int pflag, int &lvids, const QoreTypeInfo *&typeInfo) |
returns the type information | |
virtual DLLEXPORT class AbstractQoreNode * | realCopy () const |
returns a copy of the object; the caller owns the reference count More... | |
Public Member Functions inherited from SimpleValueQoreNode | |
DLLLOCAL | SimpleValueQoreNode (qore_type_t t, bool n_there_can_be_only_one=false) |
creates the object by assigning the type code and setting the "value" flag, unsetting the "needs_eval" flag, and setting "there_can_be_only_one" | |
Public Member Functions inherited from SimpleQoreNode | |
DLLLOCAL | SimpleQoreNode (qore_type_t t, bool n_value, bool n_needs_eval, bool n_there_can_be_only_one=false) |
constructor takes the type and value arguments | |
DLLLOCAL | SimpleQoreNode (const SimpleQoreNode &v) |
copy constructor | |
Public Member Functions inherited from AbstractQoreNode | |
DLLEXPORT | AbstractQoreNode (qore_type_t t, bool n_value, bool n_needs_eval, bool n_there_can_be_only_one=false, bool n_custom_reference_handlers=false) |
constructor takes the type More... | |
DLLEXPORT | AbstractQoreNode (const AbstractQoreNode &v) |
copy constructor | |
DLLEXPORT int64 | bigIntEval (ExceptionSink *xsink) const |
evaluates the object and returns a 64-bit integer value More... | |
DLLEXPORT bool | boolEval (ExceptionSink *xsink) const |
evaluates the object and returns a boolean value More... | |
DLLEXPORT void | deref (ExceptionSink *xsink) |
decrements the reference count and calls derefImpl() if there_can_be_only_one is false, otherwise does nothing More... | |
DLLEXPORT AbstractQoreNode * | eval (ExceptionSink *xsink) const |
evaluates the object and returns a value (or 0) More... | |
DLLEXPORT AbstractQoreNode * | eval (bool &needs_deref, ExceptionSink *xsink) const |
optionally evaluates the argument More... | |
DLLEXPORT double | floatEval (ExceptionSink *xsink) const |
evaluates the object and returns a floating-point value More... | |
DLLEXPORT int64 | getAsBigInt () const |
returns the 64-bit integer value of the object More... | |
DLLEXPORT bool | getAsBool () const |
returns the boolean value of the object More... | |
DLLEXPORT double | getAsFloat () const |
returns the float value of the object More... | |
DLLEXPORT int | getAsInt () const |
returns the integer value of the object More... | |
DLLLOCAL qore_type_t | getType () const |
returns the data type More... | |
DLLEXPORT int | integerEval (ExceptionSink *xsink) const |
evaluates the object and returns an integer value More... | |
DLLLOCAL bool | is_value () const |
returns true if the node represents a value More... | |
DLLLOCAL bool | isReferenceCounted () const |
returns true if the object is reference-counted | |
DLLLOCAL bool | needs_eval () const |
returns true if the object needs evaluation to return a value, false if not More... | |
DLLEXPORT void | ref () const |
increments the reference count | |
DLLEXPORT AbstractQoreNode * | refSelf () const |
returns "this" with an incremented reference count More... | |
Public Member Functions inherited from QoreReferenceCounter | |
DLLEXPORT | QoreReferenceCounter () |
creates the reference counter object | |
DLLEXPORT | ~QoreReferenceCounter () |
destroys the reference counter object | |
DLLLOCAL bool | is_unique () const |
returns true if the reference count is 1 More... | |
DLLLOCAL int | reference_count () const |
gets the reference count More... | |
DLLEXPORT bool | ROdereference () const |
atomically decrements the reference count More... | |
DLLEXPORT void | ROreference () const |
atomically increments the reference count | |
Static Public Member Functions | |
static DLLLOCAL qore_type_t | getStaticTypeCode () |
returns the type code (useful in templates) | |
static DLLLOCAL const char * | getStaticTypeName () |
returns the type name (useful in templates) More... | |
static DLLLOCAL double | getValue (AbstractQoreNode *v) |
returns the value of the argument (useful in templates) | |
Public Attributes | |
double | f |
the value of the type | |
Protected Member Functions | |
virtual DLLEXPORT | ~QoreFloatNode () |
the destructor is protected because it should not be called directly More... | |
Protected Member Functions inherited from SimpleValueQoreNode | |
virtual DLLEXPORT int64 | bigIntEvalImpl (ExceptionSink *xsink) const |
should never be called for value types More... | |
virtual DLLEXPORT bool | boolEvalImpl (ExceptionSink *xsink) const |
should never be called for value types More... | |
virtual DLLEXPORT AbstractQoreNode * | evalImpl (ExceptionSink *xsink) const |
should never be called for value types More... | |
virtual DLLEXPORT AbstractQoreNode * | evalImpl (bool &needs_deref, ExceptionSink *xsink) const |
should never be called for value types More... | |
virtual DLLEXPORT double | floatEvalImpl (ExceptionSink *xsink) const |
should never be called for value types More... | |
virtual DLLEXPORT int | integerEvalImpl (ExceptionSink *xsink) const |
should never be called for value types More... | |
Protected Member Functions inherited from AbstractQoreNode | |
virtual DLLEXPORT | ~AbstractQoreNode () |
default destructor does nothing More... | |
Additional Inherited Members | |
Protected Attributes inherited from AbstractQoreNode | |
bool | custom_reference_handlers: 1 |
set to one for objects that need custom reference handlers | |
bool | needs_eval_flag: 1 |
if this is true then the type can be evaluated | |
bool | there_can_be_only_one: 1 |
if this is set to true, then reference counting is turned off for objects of this class | |
qore_type_t | type: 11 |
the type of the object More... | |
bool | value: 1 |
this is true for values, if false then either the type needs evaluation to produce a value or is a parse expression | |
Protected Attributes inherited from QoreReferenceCounter | |
QoreThreadLock | mRO |
pthread lock to ensure atomicity of updates for architectures where we don't have an atomic increment and decrement implementation | |
Qore's floating-point value type, dynamically-allocated only, reference counted.
|
protectedvirtual |
the destructor is protected because it should not be called directly
DLLEXPORT QoreFloatNode::QoreFloatNode | ( | double | n_f | ) |
creates a new floating-point value and assigns the initial value to it
n_f | the value for the object |
|
virtual |
concatenate the string representation of the floating-point value to an existing QoreString
used for n and N printf formatting
str | the string representation of the type will be concatenated to this QoreString reference |
foff | for multi-line formatting offset, ignored by this implementation of the function |
xsink | ignored by this implementation of the function |
Implements AbstractQoreNode.
|
virtual |
returns a QoreString giving the string representation of the floating-point value, sets del to true
Used for n and N printf formatting. Do not call this function directly; use the QoreNodeAsStringHelper class (defined in QoreStringNode.h) instead
del | if this is true when the function returns, then the returned QoreString pointer should be deleted, if false, then it must not be |
foff | for multi-line formatting offset, ignored by this implementation of the function |
xsink | ignored by this implementation of the function |
Implements AbstractQoreNode.
|
virtual |
returns the DateTime representation of this value and sets del to true
The DateTime representation is calculated by converting the floating-point value to an integer interpreted as the number of seconds offset from January 1, 1970.
del | output parameter: if del is true, then the returned DateTime pointer belongs to the caller (and must be deleted manually), if false, then it must not be |
Reimplemented from AbstractQoreNode.
|
virtual |
assigns the date representation of the value to the DateTime reference passed
The DateTime representation is calculated by converting the floating-point value to an integer interpreted as the number of seconds offset from January 1, 1970.
dt | the DateTime reference to be assigned |
Reimplemented from AbstractQoreNode.
|
inlinestatic |
returns the type name (useful in templates)
|
virtual |
returns the floating-point value converted to a string and sets del to true
NOTE: do not use this function directly, use QoreStringValueHelper instead
del | output parameter: del is set to true, meaning that the resulting QoreString pointer belongs to the caller (and must be deleted manually) |
Reimplemented from AbstractQoreNode.
|
virtual |
concatentates the floating-point value to an existing QoreString reference, default implementation does nothing
str | a reference to a QoreString where the value of the type will be concatenated |
Reimplemented from AbstractQoreNode.
|
virtual |
|
virtual |
tests for equality without type conversions (hard compare)
v | the value to compare |
xsink | ignored by this implementation of the function |
Implements AbstractQoreNode.
|
virtual |
tests for equality with possible type conversion (soft compare)
v | the value to compare |
xsink | ignored by this implementation of the function |
Implements AbstractQoreNode.
|
virtual |
returns a copy of the object; the caller owns the reference count
Implements AbstractQoreNode.