Namespaces | |||
| namespace | CXX | ||
| namespace | details | ||
| namespace | MemLayout | ||
| namespace | Packing | ||
| namespace | ValueOps | ||
Classes | |||
| class | AlreadyDefined | ||
| class | Array | ||
| struct | BadCategory | ||
| class | BadName | ||
| class | BadValueCast | ||
| class | CastingVisitor | ||
| class | CompileEndianSwapVisitor | ||
| class | Compound | ||
| class | Container | ||
| class | CSVOutput | ||
| class | DefinitionMismatch | ||
| class | EndianSwapVisitor | ||
| class | Enum | ||
| class | Exporter | ||
| struct | ExportError | ||
| class | ExportPlugin | ||
| class | Field | ||
| class | FieldGetter | ||
| class | FieldNotFound | ||
| class | GenericIOPlugin | ||
| class | Importer | ||
| class | ImportError | ||
| class | ImportPlugin | ||
| class | Indirect | ||
| struct | InputStream | ||
| struct | InvalidIndirectName | ||
| class | Manip | ||
| struct | NameSeparator | ||
| struct | NoLayout | ||
| struct | normalized_numeric_type | ||
| struct | normalized_numeric_type< double > | ||
| struct | normalized_numeric_type< float > | ||
| class | NullType | ||
| struct | NullTypeFound | ||
| class | Numeric | ||
| class | OpaqueType | ||
| struct | OutputStream | ||
| struct | plugin_traits | ||
| class | PluginManager | ||
| struct | PluginNotFound | ||
| class | Pointer | ||
| class | Registry | ||
| class | RegistryException | ||
| class | RegistryIterator | ||
| class | Type | ||
| class | TypeBuilder | ||
| class | TypeDefinitionPlugin | ||
| class | TypeDisplayVisitor | ||
| struct | TypeException | ||
| class | TypeVisitor | ||
| class | Undefined | ||
| struct | UnknownContainer | ||
| struct | UnknownLayoutBytecode | ||
| struct | UnsupportedEndianSwap | ||
| class | UnsupportedType | ||
| class | Value | ||
| class | ValueVisitor | ||
Typedefs | |||
| typedef std::vector< size_t > | MemoryLayout | ||
| typedef std::string::value_type | NamespaceMarkType | ||
| typedef boost::tokenizer < NameSeparator > | NameTokenizer | ||
Functions | |||
| BOOST_STATIC_ASSERT ((sizeof(size_t)==sizeof(void *))) | |||
| bool | compare (Value dst, Value src) | ||
| bool | compare (void *dst, void *src, Type const &type) | ||
| void | copy (Value dst, Value src) | ||
| void | copy (void *dst, void *src, Type const &type) | ||
| details::csvline | csv (Type const &type, void *value, std::string const &sep=" ", bool char_as_numeric=true) | ||
| details::csvheader | csv_header (Type const &type, std::string const &basename, std::string const &sep=" ") | ||
| void | destroy (Value v) | ||
| void | destroy (Value v, MemoryLayout const &ops) | ||
| void | destroy (uint8_t *data, MemoryLayout const &ops) | ||
| void | display (std::ostream &io, MemoryLayout::const_iterator const begin, MemoryLayout::const_iterator const end) | ||
| 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 const *v, std::vector< uint8_t > &buffer, MemoryLayout const &ops) | ||
| void | dump (Value v, std::ostream &stream) | ||
| void | dump (Value v, std::ostream &stream, MemoryLayout const &ops) | ||
| void | dump (uint8_t const *v, std::ostream &stream, MemoryLayout const &ops) | ||
| void | dump (Value v, int fd) | ||
| void | dump (Value v, int fd, MemoryLayout const &ops) | ||
| void | dump (uint8_t const *v, int fd, MemoryLayout const &ops) | ||
| void | dump (Value v, FILE *fd) | ||
| void | dump (Value v, FILE *fd, MemoryLayout const &ops) | ||
| void | dump (uint8_t const *v, FILE *fd, MemoryLayout const &ops) | ||
| int | dump (Value v, uint8_t *buffer, unsigned int buffer_size) | ||
| int | dump (Value v, uint8_t *buffer, unsigned int buffer_size, MemoryLayout const &ops) | ||
| int | dump (uint8_t const *v, uint8_t *buffer, unsigned int buffer_size, MemoryLayout const &ops) | ||
| void | dump (Value v, OutputStream &stream) | ||
| void | dump (Value v, OutputStream &stream, MemoryLayout const &ops) | ||
| void | dump (uint8_t const *v, OutputStream &stream, MemoryLayout const &ops) | ||
| void | endian_swap (Value v) | ||
| size_t | getDumpSize (Value v) | ||
| size_t | getDumpSize (Value v, MemoryLayout const &ops) | ||
| size_t | getDumpSize (uint8_t const *v, MemoryLayout const &ops) | ||
| std::string | getMinimalPathTo (std::string const &full_name, std::string const &ns) | ||
| std::string | getNamespace (const std::string &name) | ||
| std::string | getNormalizedNamespace (const std::string &name) | ||
| std::string | getRelativeName (std::string const &name, std::string const &ns) | ||
| std::string | getTypename (const std::string &name) | ||
| void | init (Value v) | ||
| void | init (Value v, MemoryLayout const &ops) | ||
| void | init (uint8_t *data, MemoryLayout const &ops) | ||
| bool | isAbsoluteName (const std::string &name) | ||
| bool | isAbsoluteName (const string &identifier) | ||
| bool | isInNamespace (const std::string &type, const std::string &nspace, bool recursive=false) | ||
| bool | isInNamespace (const string &type, const std::string &nspace, bool recursive) | ||
| bool | isValidNamespace (const std::string &name, bool absolute) | ||
| bool | isValidNamespace (const string &name, bool absolute) | ||
| static bool | isValidTypeBasename (std::string s, bool absolute, bool accept_integers) | ||
| static pair< bool, int > | isValidTypename (std::string const &s, int pos, bool absolute, bool accept_integers) | ||
| bool | isValidTypename (const std::string &name, bool absolute) | ||
| MemoryLayout | layout_of (Type const &t, bool accept_pointers=false, bool accept_opaques=false, bool merge_skip_copy=true, bool remove_trailing_skips=true) | ||
| void | load (Value v, InputStream &stream) | ||
| void | load (Value v, InputStream &stream, MemoryLayout const &ops) | ||
| void | load (uint8_t *v, Type const &type, InputStream &stream, 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, Type const &type, std::vector< uint8_t > const &buffer, MemoryLayout const &ops) | ||
| void | load (Value v, uint8_t const *buffer, unsigned int buffer_size) | ||
| void | load (Value v, uint8_t const *buffer, unsigned int buffer_size, MemoryLayout const &ops) | ||
| void | load (uint8_t *v, Type const &type, uint8_t const *buffer, unsigned int buffer_size, MemoryLayout const &ops) | ||
| bool | nameSort (std::string const &name1, std::string const &name2) | ||
| std::ostream & | operator<< (std::ostream &stream, Type const &type) | ||
| std::list< std::string > | splitTypename (std::string const &name) | ||
| details::do_type_display | type_display (Type const &type, std::string const &indent="") | ||
| template<typename T > | |||
| T & | value_cast (Value v) | ||
| template<typename T > | |||
| T & | value_cast (void *ptr, Type const &type) | ||
| void | zero (Value v) | ||
| void | zero (Value v, MemoryLayout const &ops) | ||
| void | zero (uint8_t *data, MemoryLayout const &ops) | ||
is not a field of the base type | |||
Get the Value object for a named field in
| |||
| Value | value_get_field (Value v, std::string const &name) | ||
| Value | value_get_field (void *ptr, Type const &type, std::string const &name) | ||
Variables | |||
| static const NamespaceMarkType | NamespaceMark = '/' | ||
| static const char * | NamespaceMarkString = "/" | ||
| static const NamespaceMarkType | TemplateMark = '<' | ||
| typedef std::vector<size_t> Typelib::MemoryLayout |
Definition at line 31 of file memory_layout.hh.
| typedef std::string::value_type Typelib::NamespaceMarkType |
Definition at line 10 of file typename.hh.
| typedef boost::tokenizer<NameSeparator> Typelib::NameTokenizer |
Definition at line 20 of file typename.hh.
| Typelib::BOOST_STATIC_ASSERT | ( | (sizeof(size_t)==sizeof(void *)) | ) |
| bool Typelib::compare | ( | Value | dst, |
| Value | src | ||
| ) |
Definition at line 268 of file value_ops.cc.
| bool Typelib::compare | ( | void * | dst, |
| void * | src, | ||
| Type const & | type | ||
| ) |
Definition at line 276 of file value_ops.cc.
| void Typelib::copy | ( | Value | dst, |
| Value | src | ||
| ) |
Definition at line 246 of file value_ops.cc.
| void Typelib::copy | ( | void * | dst, |
| void * | src, | ||
| Type const & | type | ||
| ) |
Definition at line 254 of file value_ops.cc.
| details::csvline Typelib::csv | ( | Type const & | type, |
| void * | value, | ||
| std::string const & | sep = " ", |
||
| bool | char_as_numeric = true |
||
| ) | [inline] |
Display a CSV line for a Type object and some raw data
Definition at line 68 of file csvoutput.hh.
| 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
Definition at line 60 of file csvoutput.hh.
| void Typelib::destroy | ( | Value | v | ) |
Definition at line 229 of file value_ops.cc.
| void Typelib::destroy | ( | Value | v, |
| MemoryLayout const & | ops | ||
| ) |
Definition at line 236 of file value_ops.cc.
| void Typelib::destroy | ( | uint8_t * | data, |
| MemoryLayout const & | ops | ||
| ) |
Definition at line 241 of file value_ops.cc.
| void Typelib::display | ( | std::ostream & | io, |
| MemoryLayout::const_iterator const | begin, | ||
| MemoryLayout::const_iterator const | end | ||
| ) |
Definition at line 12 of file value_ops.cc.
| std::vector< uint8_t > Typelib::dump | ( | Value | v | ) |
Definition at line 552 of file value_ops.cc.
| void Typelib::dump | ( | Value | v, |
| std::vector< uint8_t > & | buffer | ||
| ) |
Definition at line 574 of file value_ops.cc.
| void Typelib::dump | ( | Value | v, |
| std::vector< uint8_t > & | buffer, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 579 of file value_ops.cc.
| void Typelib::dump | ( | uint8_t const * | v, |
| std::vector< uint8_t > & | buffer, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 584 of file value_ops.cc.
| void Typelib::dump | ( | Value | v, |
| std::ostream & | stream | ||
| ) |
Definition at line 604 of file value_ops.cc.
| void Typelib::dump | ( | Value | v, |
| std::ostream & | stream, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 609 of file value_ops.cc.
| void Typelib::dump | ( | uint8_t const * | v, |
| std::ostream & | stream, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 614 of file value_ops.cc.
| void Typelib::dump | ( | Value | v, |
| int | fd | ||
| ) |
Definition at line 635 of file value_ops.cc.
| void Typelib::dump | ( | Value | v, |
| int | fd, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 640 of file value_ops.cc.
| void Typelib::dump | ( | uint8_t const * | v, |
| int | fd, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 645 of file value_ops.cc.
| void Typelib::dump | ( | Value | v, |
| FILE * | fd | ||
| ) |
Definition at line 666 of file value_ops.cc.
| void Typelib::dump | ( | Value | v, |
| FILE * | fd, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 671 of file value_ops.cc.
| void Typelib::dump | ( | uint8_t const * | v, |
| FILE * | fd, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 676 of file value_ops.cc.
| int Typelib::dump | ( | Value | v, |
| uint8_t * | buffer, | ||
| unsigned int | buffer_size | ||
| ) |
Definition at line 729 of file value_ops.cc.
| int Typelib::dump | ( | Value | v, |
| uint8_t * | buffer, | ||
| unsigned int | buffer_size, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 737 of file value_ops.cc.
| int Typelib::dump | ( | uint8_t const * | v, |
| uint8_t * | buffer, | ||
| unsigned int | buffer_size, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 741 of file value_ops.cc.
| void Typelib::dump | ( | Value | v, |
| OutputStream & | stream | ||
| ) |
Definition at line 686 of file value_ops.cc.
| void Typelib::dump | ( | Value | v, |
| OutputStream & | stream, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 693 of file value_ops.cc.
| void Typelib::dump | ( | uint8_t const * | v, |
| OutputStream & | stream, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 697 of file value_ops.cc.
| void Typelib::endian_swap | ( | Value | v | ) |
Swaps the endianness of +v+ by using a EndianSwapVisitor
Definition at line 34 of file endianness.hh.
| size_t Typelib::getDumpSize | ( | Value | v | ) |
Definition at line 772 of file value_ops.cc.
| size_t Typelib::getDumpSize | ( | Value | v, |
| MemoryLayout const & | ops | ||
| ) |
Definition at line 779 of file value_ops.cc.
| size_t Typelib::getDumpSize | ( | uint8_t const * | v, |
| MemoryLayout const & | ops | ||
| ) |
Definition at line 781 of file value_ops.cc.
| std::string Typelib::getMinimalPathTo | ( | std::string const & | full_name, |
| std::string const & | ns | ||
| ) |
Computes the minimal namespace specification needed to reach a type from a namespace. The specification takes into account possible ambiguities, i.e.
getMinimalPathTo("/A/A/Type", "/A/B/A")
will return "/A/A/Type" as "A/Type" would be ambiguous.
Definition at line 238 of file typename.cc.
| 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 '/'.
Definition at line 287 of file typename.cc.
| std::string Typelib::getNormalizedNamespace | ( | const std::string & | name | ) |
Returns +name+ as a namespace name, valid to build an absolute type name by simple concatenation
It is guaranteed to end with the NamespaceMark
Definition at line 215 of file typename.cc.
| 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 type name must be included in the namespace. Use getMinimalPathTo to generate the minimal namespace specification reaching a type from a namespace.
The returned name does not have any leading namespace separator.
Definition at line 230 of file typename.cc.
| std::string Typelib::getTypename | ( | const std::string & | full_name | ) |
Removes the namespace part of full_name and returns it
Definition at line 222 of file typename.cc.
| void Typelib::init | ( | Value | v | ) |
Definition at line 195 of file value_ops.cc.
| void Typelib::init | ( | Value | v, |
| MemoryLayout const & | ops | ||
| ) |
Definition at line 201 of file value_ops.cc.
| void Typelib::init | ( | uint8_t * | data, |
| MemoryLayout const & | ops | ||
| ) |
Definition at line 207 of file value_ops.cc.
| bool Typelib::isAbsoluteName | ( | const std::string & | name | ) |
| bool Typelib::isAbsoluteName | ( | const string & | identifier | ) |
Definition at line 45 of file typename.cc.
| 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 | ||
| ) |
Definition at line 203 of file typename.cc.
| bool Typelib::isValidNamespace | ( | const std::string & | name, |
| bool | absolute | ||
| ) |
| bool Typelib::isValidNamespace | ( | const string & | name, |
| bool | absolute | ||
| ) |
Definition at line 186 of file typename.cc.
| static bool Typelib::isValidTypeBasename | ( | std::string | s, |
| bool | absolute, | ||
| bool | accept_integers | ||
| ) | [static] |
Definition at line 51 of file typename.cc.
| static pair<bool, int> Typelib::isValidTypename | ( | std::string const & | s, |
| int | pos, | ||
| bool | absolute, | ||
| bool | accept_integers | ||
| ) | [static] |
Definition at line 100 of file typename.cc.
| bool Typelib::isValidTypename | ( | const std::string & | name, |
| bool | absolute | ||
| ) |
Definition at line 179 of file typename.cc.
| MemoryLayout Typelib::layout_of | ( | Type const & | t, |
| bool | accept_pointers = false, |
||
| bool | accept_opaques = false, |
||
| bool | merge_skip_copy = true, |
||
| bool | remove_trailing_skips = true |
||
| ) | [inline] |
Returns the memory layout of the given type
| accept_pointers | if false (the default), will throw a NoLayout exception if the type given contains pointers. If true, they will simply be skipped |
| accept_opaques | if false (the default), will throw a NoLayout exception if the type given contains opaques. If true, they will simply be skipped |
| merge_skip_copy | in a layout, zones that contain data are copied, while zones that are there because of C++ padding rules are skipped. If this is true (the default), consecutive copy/skips are merged into one bigger copy, as doine one big memcpy() is probably more efficient than skipping the few padding bytes. Set to false to turn that off. |
| remove_trailing_skips | because of C/C++ padding rules, structures might contain trailing bytes that don't contain information. If this option is true (the default), these bytes are removed from the layout. |
Definition at line 122 of file memory_layout.hh.
| void Typelib::load | ( | Value | v, |
| InputStream & | stream | ||
| ) |
Definition at line 796 of file value_ops.cc.
| void Typelib::load | ( | Value | v, |
| InputStream & | stream, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 801 of file value_ops.cc.
| void Typelib::load | ( | uint8_t * | v, |
| Type const & | type, | ||
| InputStream & | stream, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 803 of file value_ops.cc.
| void Typelib::load | ( | Value | v, |
| std::vector< uint8_t > const & | buffer | ||
| ) |
Definition at line 833 of file value_ops.cc.
| void Typelib::load | ( | Value | v, |
| std::vector< uint8_t > const & | buffer, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 838 of file value_ops.cc.
| void Typelib::load | ( | uint8_t * | v, |
| Type const & | type, | ||
| std::vector< uint8_t > const & | buffer, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 840 of file value_ops.cc.
| void Typelib::load | ( | Value | v, |
| uint8_t const * | buffer, | ||
| unsigned int | buffer_size | ||
| ) |
Definition at line 879 of file value_ops.cc.
| void Typelib::load | ( | Value | v, |
| uint8_t const * | buffer, | ||
| unsigned int | buffer_size, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 884 of file value_ops.cc.
| void Typelib::load | ( | uint8_t * | v, |
| Type const & | type, | ||
| uint8_t const * | buffer, | ||
| unsigned int | buffer_size, | ||
| MemoryLayout const & | ops | ||
| ) |
Definition at line 886 of file value_ops.cc.
| bool Typelib::nameSort | ( | std::string const & | name1, |
| std::string const & | name2 | ||
| ) |
Returns true if name1 is either in a more in-depth namespace than name2 (i.e. name2 == /A/B/class and name1 == /A/B/C/class2 or if name2 < name1 (lexicographic sort). Otherwise, returns false
Definition at line 25 of file typelib/registry.cc.
| std::ostream& Typelib::operator<< | ( | std::ostream & | stream, |
| Type const & | type | ||
| ) | [inline] |
Pretty prints a type on a given output stream
Definition at line 69 of file typedisplay.hh.
| std::list< std::string > Typelib::splitTypename | ( | std::string const & | name | ) |
Splits a type name into its components. It is non-validating, i.e. is guaranteed to return a valid value only for names for which isValidTypename returns true
Definition at line 71 of file typename.cc.
| 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;
Definition at line 62 of file typedisplay.hh.
| T& Typelib::value_cast | ( | Value | v | ) |
Casts a Value object to a given simple type T
| BadValueCast |
Definition at line 43 of file value_cast.hh.
| T& Typelib::value_cast | ( | void * | ptr, |
| Type const & | type | ||
| ) |
Casts a pointer to a given simple type T using type as the type for *ptr
| BadValueCast |
Definition at line 52 of file value_cast.hh.
| Value Typelib::value_get_field | ( | Value | v, |
| std::string const & | name | ||
| ) | [inline] |
| Value Typelib::value_get_field | ( | void * | ptr, |
| Type const & | type, | ||
| std::string const & | name | ||
| ) | [inline] |
| void Typelib::zero | ( | Value | v | ) |
Definition at line 212 of file value_ops.cc.
| void Typelib::zero | ( | Value | v, |
| MemoryLayout const & | ops | ||
| ) |
Definition at line 218 of file value_ops.cc.
| void Typelib::zero | ( | uint8_t * | data, |
| MemoryLayout const & | ops | ||
| ) |
Definition at line 224 of file value_ops.cc.
const NamespaceMarkType Typelib::NamespaceMark = '/' [static] |
Definition at line 11 of file typename.hh.
const char* Typelib::NamespaceMarkString = "/" [static] |
Definition at line 13 of file typename.hh.
const NamespaceMarkType Typelib::TemplateMark = '<' [static] |
Definition at line 12 of file typename.hh.