yast2-core
Public Member Functions | Protected Types | Protected Member Functions | Private Types | Private Attributes | Friends | List of all members
YCPListRep Class Reference

List of YCPValues that is a value itself In YCP there is no distinction between lists, tuples and structs. All these kind of complex data is represented by YCPListRep. The type of a list is constructed by the valuetype list, which has a list of types as arguments. The list's type is implicitely given through the fact that its valuetype is list and trough the types of its elements. There is no restriction about the types of a list's elements. If you want to declare a variable or parameter to be a list of a certain signature, you can use the RangeRestrictor YCP_RRList or YCP_RRTyple. object. More...

#include <YCPList.h>

Inheritance diagram for YCPListRep:
YCPValueRep YCPElementRep

Public Member Functions

int size () const
 
void reserve (int size)
 
bool isEmpty () const
 
void add (const YCPValue &value)
 
void push_back (const YCPValue &value)
 
void set (const int n, const YCPValue &value)
 
void remove (const int n)
 
void reverse ()
 
void swap (int x, int y)
 
bool contains (const YCPValue &value) const
 
void sortlist ()
 
void lsortlist ()
 
void fsortlist (const YCPCodeCompare &cmp)
 
virtual const YCPElementRepshallowCopy () const
 
YCPList functionalAdd (const YCPValue &value, bool prepend=false) const
 
YCPValue value (int n) const
 
const_iterator begin () const
 
const_iterator end () const
 
YCPOrder compare (const YCPList &v) const
 
string toString () const
 
std::ostream & toStream (std::ostream &str) const
 
std::ostream & toXml (std::ostream &str, int indent) const
 
YCPValueType valuetype () const
 
string commaList () const
 
- Public Member Functions inherited from YCPValueRep
const char * valuetype_str () const
 
bool isVoid () const
 
bool isBoolean () const
 
bool isInteger () const
 
bool isFloat () const
 
bool isString () const
 
bool isByteblock () const
 
bool isPath () const
 
bool isSymbol () const
 
bool isList () const
 
bool isTerm () const
 
bool isMap () const
 
bool isCode () const
 
bool isBreak () const
 
bool isReturn () const
 
bool isEntry () const
 
bool isReference () const
 
bool isExternal () const
 
YCPVoid asVoid () const
 
YCPBoolean asBoolean () const
 
YCPInteger asInteger () const
 
YCPFloat asFloat () const
 
YCPString asString () const
 
YCPByteblock asByteblock () const
 
YCPPath asPath () const
 
YCPSymbol asSymbol () const
 
YCPList asList () const
 
YCPTerm asTerm () const
 
YCPMap asMap () const
 
YCPCode asCode () const
 
YCPEntry asEntry () const
 
YCPReference asReference () const
 
YCPExternal asExternal () const
 
bool equal (const YCPValue &) const
 
YCPOrder compare (const YCPValue &v, bool rl=false) const
 
- Public Member Functions inherited from YCPElementRep
YCPValue asValue () const
 

Protected Types

typedef YCPValueList::iterator iterator
 
typedef
YCPValueList::const_iterator 
const_iterator
 
typedef YCPValueList::value_type value_type
 
typedef
YCPValueList::const_reference 
const_reference
 

Protected Member Functions

 YCPListRep ()
 
 ~YCPListRep ()
 
- Protected Member Functions inherited from YCPElementRep
 YCPElementRep ()
 
virtual ~YCPElementRep ()
 

Private Types

typedef vector< YCPValueYCPValueList
 

Private Attributes

YCPValueList elements
 

Friends

class YCPList
 

Detailed Description

List of YCPValues that is a value itself In YCP there is no distinction between lists, tuples and structs. All these kind of complex data is represented by YCPListRep. The type of a list is constructed by the valuetype list, which has a list of types as arguments. The list's type is implicitely given through the fact that its valuetype is list and trough the types of its elements. There is no restriction about the types of a list's elements. If you want to declare a variable or parameter to be a list of a certain signature, you can use the RangeRestrictor YCP_RRList or YCP_RRTyple. object.

Member Typedef Documentation

typedef YCPValueList::const_iterator YCPListRep::const_iterator
protected
typedef YCPValueList::const_reference YCPListRep::const_reference
protected
typedef YCPValueList::iterator YCPListRep::iterator
protected
typedef YCPValueList::value_type YCPListRep::value_type
protected
typedef vector<YCPValue> YCPListRep::YCPValueList
private

Constructor & Destructor Documentation

YCPListRep::YCPListRep ( )
protected

Creates a new and empty list of type [ value ]

Referenced by shallowCopy().

YCPListRep::~YCPListRep ( )
inlineprotected

Cleans up.

Member Function Documentation

void YCPListRep::add ( const YCPValue value)

Appends a value to the list. Takes over the memory management of that value. Use YCPElementRep, if you need it yourself.

References elements.

Referenced by shallowCopy().

YCPListRep::const_iterator YCPListRep::begin ( ) const

Returns a random access iterator for the YCPList that is positioned at the first value in the list.

References elements.

Referenced by contains().

string YCPListRep::commaList ( ) const

Helper function used by this class and by YCPTermRep that creates a comma separated string representation of the members string representations.

References elements.

Referenced by toString().

YCPOrder YCPListRep::compare ( const YCPList v) const

Compares two YCPLists for equality, greaterness or smallerness. The relation is lexicographically with respect to the list elements, i.e. elementwise comparison up to the shorter length.

(( [ ] == [ ] ) == true ) (( [ 1, 2, 3 ] > [ 1, 2 ] ) == true ) (( [ 1, 2 ] > [ 1, 1, 1 ] ) == true ) (( [ 1, "string" ] > [ 1, 1, 1 ] ) == true ) (( [ 1, "string_long" ] > [ 1, "string", 1 ] ) == true ) (( [ 1 ] < [ { integer number = 2; return number; } ] ) == true ) #int/int (( [ 1 ] > [ { integer number = 2; } ] ) == true ) #int/nil

Parameters
vvalue to compare against
Returns
YO_LESS, if this is smaller than v, YO_EQUAL, if this is equal to v, YO_GREATER, if this is greater to v

References size(), YCPList::size(), value(), YCPList::value(), YO_EQUAL, YO_GREATER, and YO_LESS.

bool YCPListRep::contains ( const YCPValue value) const

Returns true if the list contains the value, otherwise false.

References begin(), and end().

YCPListRep::const_iterator YCPListRep::end ( ) const

Returns a random access iterator for the YCPList that is positioned behind the last value in the list.

References elements.

Referenced by contains().

void YCPListRep::fsortlist ( const YCPCodeCompare cmp)

Sorts the list according to a comparison function. This function changes the list.

References elements.

YCPList YCPListRep::functionalAdd ( const YCPValue value,
bool  prepend = false 
) const

Creates a new list, that is identical to this one with but one new value appended. Doesn't change this list.

Parameters
valuethe value to add
appenddeterminates whether append to the end of the list or prepend.

References YCPList::add(), YCPList::reserve(), size(), and value().

bool YCPListRep::isEmpty ( ) const

Returns true, if this list is empty.

References elements.

void YCPListRep::lsortlist ( )

Sorts the list according to the locale. This function changes the list.

References elements.

void YCPListRep::push_back ( const YCPValue value)

Appends a value to the list. Takes over the memory management of that value. Use YCPElementRep, if you need it yourself.

References elements.

void YCPListRep::remove ( const int  n)

Remove an element from the list.

References elements, size(), and ycp2error.

void YCPListRep::reserve ( int  size)

Reserves a number of elements in the list.

References elements.

Referenced by shallowCopy().

void YCPListRep::reverse ( )

Reverses the elements in the list. This function changes the list.

References elements.

void YCPListRep::set ( const int  n,
const YCPValue value 
)

Sets a value in the list. Takes over the memory management of that value. Use YCPElementRep, if you need it yourself.

References elements, size(), and value().

const YCPElementRep * YCPListRep::shallowCopy ( ) const
virtual

Creates a copy of this list, i.e. creates a new list with the same elements as this one. The elements themselves are not copied, but only cloned!

Reimplemented from YCPElementRep.

References add(), reserve(), size(), toString(), value(), y2debug, and YCPListRep().

int YCPListRep::size ( ) const

Returns the number of elements in the list.

References elements.

Referenced by compare(), functionalAdd(), remove(), set(), shallowCopy(), swap(), and value().

void YCPListRep::sortlist ( )

Sorts the list. This function changes the list.

References elements.

void YCPListRep::swap ( int  x,
int  y 
)

Exchanges the elements at the indices x and y. This function changes the list.

References elements, and size().

std::ostream & YCPListRep::toStream ( std::ostream &  str) const
virtual

Output value as bytecode to stream

Implements YCPElementRep.

References elements, str, Bytecode::writeInt32(), Bytecode::writeValue(), and y2error.

string YCPListRep::toString ( void  ) const
virtual

Returns an ASCII representation of the list. Lists are denoted by comma separated values enclosed by square brackets.

Implements YCPElementRep.

References commaList().

Referenced by shallowCopy().

std::ostream & YCPListRep::toXml ( std::ostream &  str,
int  indent 
) const
virtual

Implements YCPValueRep.

References elements.

YCPValue YCPListRep::value ( int  n) const

Returns the n'th value of the list whereas 0 <= n < size().

References elements, size(), and ycp2error.

Referenced by compare(), functionalAdd(), set(), and shallowCopy().

YCPValueType YCPListRep::valuetype ( ) const
virtual

Returns YT_LIST. See YCPValueRep::type.

Implements YCPValueRep.

References YT_LIST.

Friends And Related Function Documentation

friend class YCPList
friend

Member Data Documentation

YCPValueList YCPListRep::elements
private

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

Generated on a sunny day for yast2-core by doxygen 1.8.8