|
Qore Programming Language - C/C++ Library
0.8.13.5
|
This is the list container type in Qore, dynamically allocated only, reference counted. More...
#include <QoreValueList.h>


Public Member Functions | |
| DLLEXPORT | QoreValueList () |
| creates an empty list | |
| DLLEXPORT | QoreValueList (const QoreListNode *l) |
| FIXME: remove. | |
| DLLEXPORT QoreValueList * | copy () const |
| performs a deep copy of the list and returns the new list | |
| DLLEXPORT QoreValueList * | copyListFrom (size_t index) const |
| performs a deep copy of the list starting from element "offset" and returns the new list More... | |
| DLLEXPORT bool | empty () const |
| returns true if the list is empty More... | |
| DLLEXPORT QoreValueList * | evalList (ExceptionSink *xsink) const |
| evaluates the list and returns a value (or 0) More... | |
| DLLEXPORT QoreValueList * | evalList (bool &needs_deref, ExceptionSink *xsink) const |
| optionally evaluates the list More... | |
| DLLEXPORT QoreValueList * | extract (ptrdiff_t offset, ExceptionSink *xsink) |
| truncates the list at position "offset" (first element is offset 0) and returns any elements removed from the list as a new list More... | |
| DLLEXPORT QoreValueList * | extract (ptrdiff_t offset, ptrdiff_t length, ExceptionSink *xsink) |
| removes "length" elements at position "offset" (first element is offset 0) and returns any elements removed from the list as a new list More... | |
| DLLEXPORT QoreValueList * | extract (ptrdiff_t offset, ptrdiff_t length, const QoreValue l, ExceptionSink *xsink) |
| adds a single value or a list of values ("l") to list possition "offset", while removing "length" elements and returns any elements removed from the list as a new list More... | |
| virtual DLLEXPORT bool | getAsBoolImpl () const |
| returns false unless perl-boolean-evaluation is enabled, in which case it returns false only when empty More... | |
| DLLEXPORT int | getAsString (QoreString &str, int foff, ExceptionSink *xsink) const |
| concatenate the verbose string representation of the list (including all contained values) to an existing QoreString More... | |
| DLLEXPORT QoreString * | getAsString (bool &del, int foff, ExceptionSink *xsink) const |
| returns a QoreString giving the verbose string representation of the List (including all contained values) More... | |
| DLLEXPORT QoreValue & | getEntryReference (size_t index) |
| DLLEXPORT QoreValue * | getExistingEntryPtr (size_t index) |
| DLLLOCAL QoreListNode * | getOldList () const |
| returns a QoreListNode object corresponding to the current list More... | |
| DLLLOCAL QoreListNode * | getOldList (size_t start) const |
| returns a QoreListNode object corresponding to the current list starting from a given offset More... | |
| DLLEXPORT QoreValue | getReferencedEntry (size_t index) const |
| returns the element at "index" (first element is index 0), the caller owns the reference More... | |
| DLLEXPORT const QoreTypeInfo * | getTypeInfo () const |
| returns the type info structure for the current value; also works for lists with a specific value type More... | |
| virtual DLLEXPORT const char * | getTypeName () const |
| returns the type name as a c string | |
| DLLEXPORT const QoreTypeInfo * | getValueTypeInfo () const |
| returns the value type declaration (if set) More... | |
| virtual DLLEXPORT bool | is_equal_hard (const AbstractQoreNode *v, ExceptionSink *xsink) const |
| tests for equality ("deep compare" including all contained values) without type conversions (hard compare) More... | |
| virtual DLLEXPORT bool | is_equal_soft (const AbstractQoreNode *v, ExceptionSink *xsink) const |
| tests for equality ("deep compare" including all contained values) with possible type conversion (soft compare) More... | |
| DLLEXPORT QoreValueList * | listRefSelf () const |
| returns "this" with an incremented reference count | |
| DLLEXPORT QoreValue | maxValue (ExceptionSink *xsink) const |
| returns the element having the highest value (determined by calling OP_LOG_GT - the greater-than ">" operator) More... | |
| DLLEXPORT QoreValue | maxValue (const ResolvedCallReferenceNode *fr, ExceptionSink *xsink) const |
| returns the element having the highest value (determined by calling the function reference passed to give lexical order) More... | |
| DLLEXPORT void | merge (const QoreValueList *list) |
| appends the elements of "list" to this list | |
| DLLEXPORT QoreValue | minValue (ExceptionSink *xsink) const |
| returns the element having the lowest value (determined by calling OP_LOG_LT - the less-than "<" operator) More... | |
| DLLEXPORT QoreValue | minValue (const ResolvedCallReferenceNode *fr, ExceptionSink *xsink) const |
| returns the element having the lowest value (determined by calling the function reference passed to give lexical order) More... | |
| DLLEXPORT QoreValue | pop () |
| returns the last element of the list, the length is decremented by one, caller owns the reference More... | |
| virtual DLLEXPORT AbstractQoreNode * | realCopy () const |
| returns true if the list contains parse expressions and therefore needs evaluation to return a value, false if not More... | |
| DLLEXPORT QoreValue | retrieveEntry (size_t index) |
| returns the element at "index" (first element is index 0) More... | |
| DLLEXPORT const QoreValue | retrieveEntry (size_t index) const |
| returns the element at "index" (first element is index 0) More... | |
| DLLEXPORT QoreValueList * | reverse () const |
| returns a list with the order of the elements reversed | |
| DLLEXPORT QoreValue | shift () |
| returns the first element of the list, all other entries are moved down to fill up the first position, caller owns the reference More... | |
| DLLEXPORT size_t | size () const |
| returns the number of elements in the list More... | |
| DLLEXPORT QoreValueList * | sort (ExceptionSink *xsink) const |
| returns a new list based on quicksorting the source list ("this") More... | |
| DLLEXPORT QoreValueList * | sort (const ResolvedCallReferenceNode *fr, ExceptionSink *xsink) const |
| returns a new list based on quicksorting the source list ("this") using the passed function reference to determine lexical order More... | |
| DLLEXPORT QoreValueList * | sortDescending (ExceptionSink *xsink) const |
| returns a new list based on quicksorting the source list ("this") in descending order More... | |
| DLLEXPORT QoreValueList * | sortDescending (const ResolvedCallReferenceNode *fr, ExceptionSink *xsink) const |
| returns a new list based on quicksorting the source list ("this") in descending order, using the passed function reference to determine lexical order More... | |
| DLLEXPORT QoreValueList * | sortDescendingStable (ExceptionSink *xsink) const |
| returns a new list based on executing mergesort on the source list ("this") in descending order More... | |
| DLLEXPORT QoreValueList * | sortDescendingStable (const ResolvedCallReferenceNode *fr, ExceptionSink *xsink) const |
| returns a new list based on executing mergesort on the source list ("this") in descending order, using the passed function reference to determine lexical order More... | |
| DLLEXPORT QoreValueList * | sortStable (ExceptionSink *xsink) const |
| returns a new list based on executing mergesort on the source list ("this") More... | |
| DLLEXPORT QoreValueList * | sortStable (const ResolvedCallReferenceNode *fr, ExceptionSink *xsink) const |
| returns a new list based on executing mergesort on the source list ("this") using the passed function reference to determine lexical order More... | |
| DLLEXPORT QoreValueList * | splice (ptrdiff_t offset, ExceptionSink *xsink) |
| truncates the list at position "offset" (first element is offset 0) More... | |
| DLLEXPORT QoreValueList * | splice (ptrdiff_t offset, ptrdiff_t length, ExceptionSink *xsink) |
| removes "length" elements at position "offset" (first element is offset 0) More... | |
| DLLEXPORT QoreValueList * | splice (ptrdiff_t offset, ptrdiff_t length, const QoreValue l, ExceptionSink *xsink) |
| adds a single value or a list of values ("l") to list possition "offset", while removing "length" elements More... | |
| DLLEXPORT QoreValue | swap (ptrdiff_t offset, QoreValue val) |
| swaps the value at the given position with the value given, caller owns any reference returned | |
| DLLEXPORT QoreValue | takeExists (ptrdiff_t offset) |
| takes the value at the given position and replaces with NULL, only if the list position exists | |
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... | |
| virtual DLLEXPORT class DateTime * | getDateTimeRepresentation (bool &del) const |
| returns the DateTime representation of this type (default implementation: returns ZeroDate, del = false) More... | |
| virtual DLLEXPORT void | getDateTimeRepresentation (DateTime &dt) const |
| assigns the date representation of a value to the DateTime reference passed, default implementation does nothing More... | |
| virtual DLLEXPORT QoreString * | getStringRepresentation (bool &del) const |
| returns the value of the type converted to a string, default implementation: returns the empty string More... | |
| virtual DLLEXPORT void | getStringRepresentation (QoreString &str) const |
| concatentates the value of the type to an existing QoreString reference, default implementation does nothing More... | |
| DLLLOCAL qore_type_t | getType () const |
| returns the data type More... | |
| DLLLOCAL bool | hasValueApi () const |
| returns the "has value api" flags - FIXME: remove with new ABI | |
| 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... | |
| virtual DLLEXPORT AbstractQoreNode * | parseInit (LocalVar *oflag, int pflag, int &lvids, const QoreTypeInfo *&typeInfo) |
| for use by parse types to initialize them for execution during stage 1 parsing 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 (const QoreReferenceCounter &old) |
| creates a new object with a reference count of 1 More... | |
| DLLEXPORT | ~QoreReferenceCounter () |
| destroys the reference counter object | |
| DLLEXPORT bool | is_unique () const |
| returns true if the reference count is 1 More... | |
| DLLEXPORT 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 const char * | getStaticTypeName () |
| returns true if the list does not contain any parse expressions, otherwise returns false | |
Protected Member Functions | |
| virtual DLLEXPORT | ~QoreValueList () |
| the destructor is protected so it cannot be called directly More... | |
| virtual DLLLOCAL int64 | bigIntEvalImpl (ExceptionSink *xsink) const |
| always returns 0 | |
| virtual DLLLOCAL bool | boolEvalImpl (ExceptionSink *xsink) const |
| always returns false | |
| virtual DLLEXPORT bool | derefImpl (ExceptionSink *xsink) |
| dereferences all elements of the list More... | |
| virtual DLLEXPORT AbstractQoreNode * | evalImpl (ExceptionSink *xsink) const |
| evaluates the list and returns a value (or 0) More... | |
| virtual DLLLOCAL AbstractQoreNode * | evalImpl (bool &needs_deref, ExceptionSink *xsink) const |
| optionally evaluates the argument More... | |
| virtual DLLLOCAL double | floatEvalImpl (ExceptionSink *xsink) const |
| always returns 0.0 | |
| virtual DLLLOCAL int | integerEvalImpl (ExceptionSink *xsink) const |
| always returns 0 | |
Protected Member Functions inherited from AbstractQoreNode | |
| virtual DLLEXPORT | ~AbstractQoreNode () |
| default destructor does nothing More... | |
Protected Attributes | |
| struct qore_value_list_private * | priv |
| this structure holds the private implementation for the type More... | |
Protected Attributes inherited from AbstractQoreNode | |
| bool | custom_reference_handlers: 1 |
| set to one for objects that need custom reference handlers | |
| bool | has_value_api: 1 |
| set to flag with new QoreValue API (derived from ParseNode) - FIXME: to be removed when new ABI is implemented | |
| 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 | |
This is the list container type in Qore, dynamically allocated only, reference counted.
it is both a value type and can hold parse expressions as well (in which case it needs to be evaluated) the first element in the list is element 0
|
protectedvirtual |
the destructor is protected so it cannot be called directly
use the deref(ExceptionSink) function to release the reference count
| DLLEXPORT QoreValueList* QoreValueList::copyListFrom | ( | size_t | index | ) | const |
performs a deep copy of the list starting from element "offset" and returns the new list
therefore element 0 of the new list is element "offset" in the source list
| index | the index of the element (first element is index 0) |
|
protectedvirtual |
dereferences all elements of the list
The ExceptionSink argument is needed for those types that could throw an exception when they are deleted (ex: QoreObject) - which could be contained in the list
| xsink | if an error occurs, the Qore-language exception information will be added here |
Reimplemented from AbstractQoreNode.
| DLLEXPORT bool QoreValueList::empty | ( | ) | const |
returns true if the list is empty
return true if the list is empty
Referenced by ValueListIterator::empty(), and ConstValueListIterator::empty().
|
protectedvirtual |
evaluates the list and returns a value (or 0)
return value requires a deref(xsink) NOTE: if there is an exception, 0 will be returned
| xsink | if an error occurs, the Qore-language exception information will be added here |
Implements AbstractQoreNode.
|
protectedvirtual |
optionally evaluates the argument
return value requires a deref(xsink) if needs_deref is true
Implements AbstractQoreNode.
| DLLEXPORT QoreValueList* QoreValueList::evalList | ( | ExceptionSink * | xsink | ) | const |
evaluates the list and returns a value (or 0)
return value requires a deref(xsink) if the list does not require evaluation then "refSelf()" is used to return the same object with an incremented reference count NOTE: if the object requires evaluation and there is an exception, 0 will be returned
| xsink | if an error occurs, the Qore-language exception information will be added here |
| DLLEXPORT QoreValueList* QoreValueList::evalList | ( | bool & | needs_deref, |
| ExceptionSink * | xsink | ||
| ) | const |
optionally evaluates the list
return value requires a deref(xsink) if needs_deref is true
| needs_deref | this is an output parameter, if needs_deref is true then the value returned must be dereferenced |
| xsink | if an error occurs, the Qore-language exception information will be added here |
| DLLEXPORT QoreValueList* QoreValueList::extract | ( | ptrdiff_t | offset, |
| ExceptionSink * | xsink | ||
| ) |
truncates the list at position "offset" (first element is offset 0) and returns any elements removed from the list as a new list
| offset | the index of the element (first element is offset 0, negative offsets are offsets from the end of the list) |
| xsink | if an error occurs, the Qore-language exception information will be added here |
| DLLEXPORT QoreValueList* QoreValueList::extract | ( | ptrdiff_t | offset, |
| ptrdiff_t | length, | ||
| ExceptionSink * | xsink | ||
| ) |
removes "length" elements at position "offset" (first element is offset 0) and returns any elements removed from the list as a new list
| offset | the index of the element (first element is offset 0, negative offsets are offsets from the end of the list) |
| length | the number of elements to remove (negative numbers mean all except that many elements from the end) |
| xsink | if an error occurs, the Qore-language exception information will be added here |
| DLLEXPORT QoreValueList* QoreValueList::extract | ( | ptrdiff_t | offset, |
| ptrdiff_t | length, | ||
| const QoreValue | l, | ||
| ExceptionSink * | xsink | ||
| ) |
adds a single value or a list of values ("l") to list possition "offset", while removing "length" elements and returns any elements removed from the list as a new list
the "l" AbstractQoreNode (or each element if it is a QoreValueList) will be referenced for the assignment in the QoreValueList
| offset | the index of the element (first element is offset 0, negative offsets are offsets from the end of the list) |
| length | the number of elements to remove (negative numbers mean all except that many elements from the end) |
| l | the value or list of values to insert |
| xsink | if an error occurs, the Qore-language exception information will be added here |
|
virtual |
returns false unless perl-boolean-evaluation is enabled, in which case it returns false only when empty
Reimplemented from AbstractQoreNode.
|
virtual |
concatenate the verbose string representation of the list (including all contained values) 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, -1 = no line breaks |
| xsink | if an error occurs, the Qore-language exception information will be added here |
Implements AbstractQoreNode.
|
virtual |
returns a QoreString giving the verbose string representation of the List (including all contained values)
used for n and N printf formatting
| 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, -1 = no line breaks |
| xsink | if an error occurs, the Qore-language exception information will be added here NOTE: Use the QoreNodeAsStringHelper class (defined in QoreStringNode.h) instead of using this function directly |
Implements AbstractQoreNode.
| DLLEXPORT QoreValue& QoreValueList::getEntryReference | ( | size_t | index | ) |
| index | the index of the element (first element is index 0) |
| DLLEXPORT QoreValue* QoreValueList::getExistingEntryPtr | ( | size_t | index | ) |
| index | the index of the element (first element is index 0) |
| DLLLOCAL QoreListNode* QoreValueList::getOldList | ( | ) | const |
returns a QoreListNode object corresponding to the current list
FIXME: remove
| DLLLOCAL QoreListNode* QoreValueList::getOldList | ( | size_t | start | ) | const |
returns a QoreListNode object corresponding to the current list starting from a given offset
FIXME: remove
| DLLEXPORT QoreValue QoreValueList::getReferencedEntry | ( | size_t | index | ) | const |
returns the element at "index" (first element is index 0), the caller owns the reference
| index | the index of the element (first element is index 0) |
| DLLEXPORT const QoreTypeInfo* QoreValueList::getTypeInfo | ( | ) | const |
returns the type info structure for the current value; also works for lists with a specific value type
| DLLEXPORT const QoreTypeInfo* QoreValueList::getValueTypeInfo | ( | ) | const |
returns the value type declaration (if set)
|
virtual |
tests for equality ("deep compare" including all contained values) without type conversions (hard compare)
| v | the value to compare |
| xsink | if an error occurs, the Qore-language exception information will be added here |
Implements AbstractQoreNode.
|
virtual |
tests for equality ("deep compare" including all contained values) with possible type conversion (soft compare)
| v | the value to compare |
| xsink | if an error occurs, the Qore-language exception information will be added here |
Implements AbstractQoreNode.
| DLLEXPORT QoreValue QoreValueList::maxValue | ( | ExceptionSink * | xsink | ) | const |
returns the element having the highest value (determined by calling OP_LOG_GT - the greater-than ">" operator)
so "soft" comparisons are made, meaning that the list can be made up of different types, and, as long as the comparisons are meaningful, the maximum value can be returned
| DLLEXPORT QoreValue QoreValueList::maxValue | ( | const ResolvedCallReferenceNode * | fr, |
| ExceptionSink * | xsink | ||
| ) | const |
returns the element having the highest value (determined by calling the function reference passed to give lexical order)
| fr | the function reference to be executed for each comparison to give lexical order to the elements |
| xsink | if an error occurs, the Qore-language exception information will be added here |
| DLLEXPORT QoreValue QoreValueList::minValue | ( | ExceptionSink * | xsink | ) | const |
returns the element having the lowest value (determined by calling OP_LOG_LT - the less-than "<" operator)
so "soft" comparisons are made, meaning that the list can be made up of different types, and, as long as the comparisons are meaningful, the minimum value can be returned
| DLLEXPORT QoreValue QoreValueList::minValue | ( | const ResolvedCallReferenceNode * | fr, |
| ExceptionSink * | xsink | ||
| ) | const |
returns the element having the lowest value (determined by calling the function reference passed to give lexical order)
| fr | the function reference to be executed for each comparison to give lexical order to the elements |
| xsink | if an error occurs, the Qore-language exception information will be added here |
| DLLEXPORT QoreValue QoreValueList::pop | ( | ) |
returns the last element of the list, the length is decremented by one, caller owns the reference
if the list is empty the 0 is returned (NOTE: the last entry could also be 0 as well)
|
virtual |
returns true if the list contains parse expressions and therefore needs evaluation to return a value, false if not
performs a deep copy of the list and returns the new list
Implements AbstractQoreNode.
| DLLEXPORT QoreValue QoreValueList::retrieveEntry | ( | size_t | index | ) |
returns the element at "index" (first element is index 0)
the value is not referenced for the caller
| index | the index of the element (first element is index 0) |
Referenced by get_hard_value_or_nothing_param(), get_hard_value_param(), and get_param_value().
| DLLEXPORT const QoreValue QoreValueList::retrieveEntry | ( | size_t | index | ) | const |
returns the element at "index" (first element is index 0)
the value is not referenced for the caller
| index | the index of the element (first element is index 0) |
| DLLEXPORT QoreValue QoreValueList::shift | ( | ) |
returns the first element of the list, all other entries are moved down to fill up the first position, caller owns the reference
if the list is empty the 0 is returned (NOTE: the first entry could also be 0 as well) with the current implementation the execution time for this function is O(n) where n is the length of the list
| DLLEXPORT size_t QoreValueList::size | ( | ) | const |
returns the number of elements in the list
return the number of elements in the list
Referenced by ValueListIterator::max(), ConstValueListIterator::max(), and num_args().
| DLLEXPORT QoreValueList* QoreValueList::sort | ( | ExceptionSink * | xsink | ) | const |
returns a new list based on quicksorting the source list ("this")
"soft" comparisons are made using OP_LOG_LT, meaning that the list can be made up of different data types and still be sorted
| DLLEXPORT QoreValueList* QoreValueList::sort | ( | const ResolvedCallReferenceNode * | fr, |
| ExceptionSink * | xsink | ||
| ) | const |
returns a new list based on quicksorting the source list ("this") using the passed function reference to determine lexical order
| fr | the function reference to be executed for each comparison to give lexical order to the elements |
| xsink | if an error occurs, the Qore-language exception information will be added here |
| DLLEXPORT QoreValueList* QoreValueList::sortDescending | ( | ExceptionSink * | xsink | ) | const |
returns a new list based on quicksorting the source list ("this") in descending order
"soft" comparisons are made using OP_LOG_LT, meaning that the list can be made up of different data types and still be sorted
| DLLEXPORT QoreValueList* QoreValueList::sortDescending | ( | const ResolvedCallReferenceNode * | fr, |
| ExceptionSink * | xsink | ||
| ) | const |
returns a new list based on quicksorting the source list ("this") in descending order, using the passed function reference to determine lexical order
| fr | the function reference to be executed for each comparison to give lexical order to the elements |
| xsink | if an error occurs, the Qore-language exception information will be added here |
| DLLEXPORT QoreValueList* QoreValueList::sortDescendingStable | ( | ExceptionSink * | xsink | ) | const |
returns a new list based on executing mergesort on the source list ("this") in descending order
"soft" comparisons are made using OP_LOG_LT, meaning that the list can be made up of different data types and still be sorted
| DLLEXPORT QoreValueList* QoreValueList::sortDescendingStable | ( | const ResolvedCallReferenceNode * | fr, |
| ExceptionSink * | xsink | ||
| ) | const |
returns a new list based on executing mergesort on the source list ("this") in descending order, using the passed function reference to determine lexical order
| fr | the function reference to be executed for each comparison to give lexical order to the elements |
| xsink | if an error occurs, the Qore-language exception information will be added here |
| DLLEXPORT QoreValueList* QoreValueList::sortStable | ( | ExceptionSink * | xsink | ) | const |
returns a new list based on executing mergesort on the source list ("this")
"soft" comparisons are made using OP_LOG_LT, meaning that the list can be made up of different data types and still be sorted
| DLLEXPORT QoreValueList* QoreValueList::sortStable | ( | const ResolvedCallReferenceNode * | fr, |
| ExceptionSink * | xsink | ||
| ) | const |
returns a new list based on executing mergesort on the source list ("this") using the passed function reference to determine lexical order
| fr | the function reference to be executed for each comparison to give lexical order to the elements |
| xsink | if an error occurs, the Qore-language exception information will be added here |
| DLLEXPORT QoreValueList* QoreValueList::splice | ( | ptrdiff_t | offset, |
| ExceptionSink * | xsink | ||
| ) |
truncates the list at position "offset" (first element is offset 0)
| offset | the index of the element (first element is offset 0, negative offsets are offsets from the end of the list) |
| xsink | if an error occurs, the Qore-language exception information will be added here |
| DLLEXPORT QoreValueList* QoreValueList::splice | ( | ptrdiff_t | offset, |
| ptrdiff_t | length, | ||
| ExceptionSink * | xsink | ||
| ) |
removes "length" elements at position "offset" (first element is offset 0)
| offset | the index of the element (first element is offset 0, negative offsets are offsets from the end of the list) |
| length | the number of elements to remove (negative numbers mean all except that many elements from the end) |
| xsink | if an error occurs, the Qore-language exception information will be added here |
| DLLEXPORT QoreValueList* QoreValueList::splice | ( | ptrdiff_t | offset, |
| ptrdiff_t | length, | ||
| const QoreValue | l, | ||
| ExceptionSink * | xsink | ||
| ) |
adds a single value or a list of values ("l") to list possition "offset", while removing "length" elements
the "l" AbstractQoreNode (or each element if it is a QoreValueList) will be referenced for the assignment in the QoreValueList
| offset | the index of the element (first element is offset 0, negative offsets are offsets from the end of the list) |
| length | the number of elements to remove (negative numbers mean all except that many elements from the end) |
| l | the value or list of values to insert |
| xsink | if an error occurs, the Qore-language exception information will be added here |
|
protected |
this structure holds the private implementation for the type
therefore changes to the implementation will not affect the C++ ABI