Classes | |
class | CSVOutput |
struct | UnsupportedEndianSwap |
class | EndianSwapVisitor |
class | CompileEndianSwapVisitor |
class | ExportPlugin |
class | Exporter |
class | ImportError |
class | ImportPlugin |
class | Importer |
struct | plugin_traits |
class | GenericIOPlugin |
class | Manip |
struct | NoLayout |
struct | UnknownLayoutBytecode |
struct | normalized_numeric_type |
struct | normalized_numeric_type< float > |
struct | normalized_numeric_type< double > |
struct | PluginNotFound |
struct | ExportError |
class | PluginManager |
class | RegistryException |
class | Undefined |
class | AlreadyDefined |
class | BadName |
class | DefinitionMismatch |
class | Registry |
class | RegistryIterator |
class | InvalidIndirectName |
class | TypeBuilder |
class | TypeDisplayVisitor |
class | Type |
class | NullType |
class | OpaqueType |
class | Numeric |
class | Enum |
class | Field |
class | Compound |
class | Indirect |
class | Array |
class | Pointer |
struct | UnknownContainer |
class | Container |
struct | TypeException |
struct | BadCategory |
struct | NullTypeFound |
struct | NameSeparator |
class | UnsupportedType |
class | TypeVisitor |
class | Value |
class | ValueVisitor |
class | BadValueCast |
class | CastingVisitor |
class | FieldNotFound |
class | FieldGetter |
Namespaces | |
namespace | details |
namespace | MemLayout |
namespace | ValueOps |
Typedefs | |
typedef std::vector< size_t > | MemoryLayout |
typedef std::string::value_type | NamespaceMarkType |
typedef boost::tokenizer < NameSeparator > | NameTokenizer |
Functions | |
details::csvheader | csv_header (Type const &type, std::string const &basename, std::string const &sep=" ") |
details::csvline | csv (Type const &type, void *value, std::string const &sep=" ") |
void | endian_swap (Value v) |
void | registerIOPlugins (PluginManager &manager) |
BOOST_STATIC_ASSERT ((sizeof(size_t)==sizeof(void *))) | |
MemoryLayout | layout_of (Type const &t, bool accept_pointers=false) |
template<typename T> | |
Numeric * | make_std_numeric (char const *name) |
bool | filter_source (std::string const &filter, std::string const &source) |
details::do_type_display | type_display (Type const &type, std::string const &indent="") |
std::ostream & | operator<< (std::ostream &stream, Type const &type) |
BOOST_STATIC_ASSERT ((sizeof(FindSizeOfEnum)==sizeof(Enum::integral_type))) | |
bool | isAbsoluteName (const string &identifier) |
bool | isValidTypename (const std::string &name, bool absolute) |
bool | isValidNamespace (const string &name, bool absolute) |
bool | isInNamespace (const string &type, const std::string &nspace, bool recursive) |
std::string | getNormalizedNamespace (const std::string &name) |
std::string | getTypename (const std::string &name) |
std::string | getRelativeName (std::string const &name, std::string const &ns) |
std::string | getNamespace (const std::string &name) |
bool | isAbsoluteName (const std::string &name) |
bool | isValidNamespace (const std::string &name, bool absolute) |
bool | isInNamespace (const std::string &type, const std::string &nspace, bool recursive=false) |
template<typename T> | |
T & | value_cast (Value v) |
template<typename T> | |
T & | value_cast (void *ptr, Type const &type) |
void | init (Value v) |
void | destroy (Value v) |
void | copy (Value dst, Value src) |
bool | compare (Value dst, Value src) |
std::vector< uint8_t > | dump (Value v) |
void | dump (Value v, std::vector< uint8_t > &buffer) |
void | dump (Value v, std::vector< uint8_t > &buffer, MemoryLayout const &ops) |
void | dump (uint8_t *v, std::vector< uint8_t > &buffer, MemoryLayout const &ops) |
void | load (Value v, std::vector< uint8_t > const &buffer) |
void | load (Value v, std::vector< uint8_t > const &buffer, MemoryLayout const &ops) |
void | load (uint8_t *v, std::vector< uint8_t > const &buffer, MemoryLayout const &ops) |
is not a field of the base type | |
Value | value_get_field (Value v, std::string const &name) |
is not a field of the base type | |
Value | value_get_field (void *ptr, Type const &type, std::string const &name) |
Variables | |
static const NamespaceMarkType | NamespaceMark = '/' |
static const char * | NamespaceMarkString = "/" |
typedef std::vector<size_t> Typelib::MemoryLayout |
typedef std::string::value_type Typelib::NamespaceMarkType |
typedef boost::tokenizer<NameSeparator> Typelib::NameTokenizer |
Typelib::@24::BOOST_STATIC_ASSERT | ( | (sizeof(FindSizeOfEnum)==sizeof(Enum::integral_type)) | ) | [static] |
Typelib::BOOST_STATIC_ASSERT | ( | (sizeof(size_t)==sizeof(void *)) | ) |
References Typelib::ValueOps::copy(), Typelib::Value::getData(), Typelib::Value::getType(), and layout_of().
details::csvline Typelib::csv | ( | Type const & | type, | |
void * | value, | |||
std::string const & | sep = " " | |||
) | [inline] |
Display a CSV line for a Type object and some raw data
details::csvheader Typelib::csv_header | ( | Type const & | type, | |
std::string const & | basename, | |||
std::string const & | sep = " " | |||
) | [inline] |
Display a CSV header matching a Type object
void Typelib::destroy | ( | Value | v | ) |
void Typelib::dump | ( | uint8_t * | v, | |
std::vector< uint8_t > & | buffer, | |||
MemoryLayout const & | ops | |||
) |
References Typelib::ValueOps::dump().
void Typelib::dump | ( | Value | v, | |
std::vector< uint8_t > & | buffer, | |||
MemoryLayout const & | ops | |||
) |
References dump(), and Typelib::Value::getData().
void Typelib::dump | ( | Value | v, | |
std::vector< uint8_t > & | buffer | |||
) |
References Typelib::MemLayout::Visitor::apply(), dump(), and Typelib::Value::getType().
void Typelib::endian_swap | ( | Value | v | ) |
Swaps the endianness of +v+ by using a EndianSwapVisitor
References Typelib::ValueVisitor::apply().
bool Typelib::@17::filter_source | ( | std::string const & | filter, | |
std::string const & | source | |||
) | [static] |
Referenced by Typelib::Registry::dump().
std::string Typelib::getNamespace | ( | const std::string & | full_name | ) |
Returns the normalized namespace part of full_name
. The returned namespace name starts and ends with the namespace separator '/'.
References NamespaceMark.
Referenced by Typelib::Type::getNamespace(), and Typelib::RegistryIterator::getNamespace().
std::string Typelib::getNormalizedNamespace | ( | const std::string & | name | ) |
Returns +name+ as a namespace name, valid to build an absolute type name by simple concatenation
References NamespaceMark, and NamespaceMarkString.
Referenced by Typelib::Registry::importNamespace(), isInNamespace(), and Typelib::Registry::setDefaultNamespace().
std::string Typelib::getRelativeName | ( | std::string const & | full_name, | |
std::string const & | ns | |||
) |
Returns the relative part of +name+, relative to the given namespace. The returned name does not have any leading namespace separator.
std::string Typelib::getTypename | ( | const std::string & | full_name | ) |
Removes the namespace part of full_name
and returns it
References NamespaceMark.
Referenced by Typelib::Type::getBasename(), and Typelib::RegistryIterator::getBasename().
void Typelib::init | ( | Value | v | ) |
References Typelib::Value::getData(), Typelib::Value::getType(), Typelib::ValueOps::init(), and layout_of().
bool Typelib::isAbsoluteName | ( | const std::string & | name | ) |
bool Typelib::isAbsoluteName | ( | const string & | identifier | ) |
bool Typelib::isInNamespace | ( | const std::string & | type, | |
const std::string & | nspace, | |||
bool | recursive = false | |||
) |
bool Typelib::isInNamespace | ( | const string & | type, | |
const std::string & | nspace, | |||
bool | recursive | |||
) |
References getNormalizedNamespace(), and NamespaceMark.
Referenced by Typelib::Registry::importNamespace().
bool Typelib::isValidNamespace | ( | const std::string & | name, | |
bool | absolute | |||
) |
bool Typelib::isValidNamespace | ( | const string & | name, | |
bool | absolute | |||
) |
References isValidIdentifier(), and NamespaceMark.
Referenced by isValidTypename(), and Typelib::Registry::setDefaultNamespace().
bool Typelib::isValidTypename | ( | const std::string & | name, | |
bool | absolute | |||
) |
References isValidIdentifier(), isValidNamespace(), and NamespaceMark.
Referenced by Typelib::Registry::alias().
MemoryLayout Typelib::layout_of | ( | Type const & | t, | |
bool | accept_pointers = false | |||
) | [inline] |
void Typelib::load | ( | uint8_t * | v, | |
std::vector< uint8_t > const & | buffer, | |||
MemoryLayout const & | ops | |||
) |
References Typelib::ValueOps::load().
void Typelib::load | ( | Value | v, | |
std::vector< uint8_t > const & | buffer, | |||
MemoryLayout const & | ops | |||
) |
References Typelib::Value::getData(), and load().
void Typelib::load | ( | Value | v, | |
std::vector< uint8_t > const & | buffer | |||
) |
Numeric* Typelib::@17::make_std_numeric | ( | char const * | name | ) | [inline, static] |
References Typelib::Numeric::SInt, Typelib::Registry::size(), and Typelib::Numeric::UInt.
std::ostream& Typelib::operator<< | ( | std::ostream & | stream, | |
Type const & | type | |||
) | [inline] |
Pretty prints a type on a given output stream
References type_display().
void Typelib::registerIOPlugins | ( | PluginManager & | manager | ) |
References Typelib::PluginManager::add().
details::do_type_display Typelib::type_display | ( | Type const & | type, | |
std::string const & | indent = "" | |||
) | [inline] |
stream operator to pretty-print a type on a stream, with indenting std::cout << Typelib::type_display(type, 2) << std::endl;
Referenced by operator<<().
T& Typelib::value_cast | ( | void * | ptr, | |
Type const & | type | |||
) | [inline] |
Casts a pointer to a given simple type T using type
as the type for *ptr
BadValueCast |
References value_cast().
T& Typelib::value_cast | ( | Value | v | ) | [inline] |
Casts a Value object to a given simple type T
BadValueCast |
References Typelib::CastingVisitor< T >::apply().
Referenced by value_cast().
Value Typelib::value_get_field | ( | void * | ptr, | |
Type const & | type, | |||
std::string const & | name | |||
) | [inline] |
References value_get_field().
Value Typelib::value_get_field | ( | Value | v, | |
std::string const & | name | |||
) | [inline] |
const NamespaceMarkType Typelib::NamespaceMark = '/' [static] |
Referenced by getNamespace(), getNormalizedNamespace(), getTypename(), isAbsoluteName(), isInNamespace(), isValidNamespace(), and isValidTypename().
const char* Typelib::NamespaceMarkString = "/" [static] |
Referenced by getNormalizedNamespace(), and Typelib::Registry::setDefaultNamespace().