YCPElement.h File Reference
#include <y2util/MemUsage.h>
#include <iosfwd>
#include <string>
#include <vector>
#include <map>
#include "toString.h"
Go to the source code of this file.
Define Documentation
#define DEF_COMMON |
( |
name, |
|
|
base |
|
) |
|
Value:DEF_OPS(name) \
friend class YCP##base##Rep; \
public: \
DEF_MEMSIZE(name) \
YCP##name(const YCPNull &n) : YCP##base(n) {} \
protected: \
YCP##name (const YCP##name##Rep *x) : YCP##base(x) {}
#define DEF_COW_COMMON |
( |
name, |
|
|
base |
|
) |
|
Value:friend class YCP##base##Rep; \
DEF_COW_OPS(name) \
public: \
YCP##name(const YCPNull &n) : YCP##base(n) {} \
protected: \
YCP##name (const YCP##name##Rep *x) : YCP##base(x) {} \
public: \
YCPOrder compare(const YCP##name x) const { \
return (static_cast<const YCP##name##Rep*>(element))->compare(x); \
} \
string toString () const { return element->toString (); } \
std::ostream & toStream (std::ostream & str ) const { \
return element->toStream (str); \
} \
std::ostream & toXml (std::ostream & str, int indent ) const { \
return element->toXml( str, indent ); \
} \
YCPValueType valuetype () const { return (static_cast<const YCP##name##Rep*>(element))->valuetype (); }
#define DEF_COW_OPS |
( |
name |
|
) |
|
Value:public: \
const YCP##name *operator ->() const { \
return static_cast<const YCP##name *>(this); } \
YCP##name *operator ->() { \
return const_cast<YCP##name *>( \
static_cast<const YCP##name *>(this)); } \
private: \
int operator !() const; \
int operator ==(const YCPElement &) const;
#define DEF_MEMSIZE |
( |
name |
|
) |
|
Value:public: \
const YCP##name##Rep *operator ->() const { \
return static_cast<const YCP##name##Rep *>(element); } \
YCP##name##Rep *operator ->() { \
return const_cast<YCP##name##Rep *>( \
static_cast<const YCP##name##Rep *>(element)); } \
private: \
int operator !() const; \
int operator ==(const YCPElement &) const;