|
Rice
3.0.0
|
A wrapper for creating Struct classes. More...
#include <Struct.hpp>
Classes | |
| class | Instance |
Public Member Functions | |
| Struct () | |
| Create a new Struct. | |
| Struct (Struct const &s) | |
| Copy constructor. | |
| virtual | ~Struct () |
| Destructor. | |
| Struct & | define_member (Identifier name) |
| Define a new Struct member. More... | |
| Struct & | initialize (Module module, Identifier name) |
| Initialize the Struct class. More... | |
| unsigned long | offset_of (Identifier name) const |
| Get the offset of a member in the Struct. More... | |
| Instance | new_instance (Array args=Array()) const |
| Create a new instance of the Struct. More... | |
| void | swap (Struct &other) |
| Swap with another Struct. | |
| Array | members () const |
Public Member Functions inherited from Rice::Module_impl< Class, Struct > | |
| Module_impl (T const &arg) | |
| Struct & | add_handler (Functor_T functor) |
| Define an exception handler. More... | |
| Struct & | define_method (Identifier name, Func_T func, Arguments *arguments=0) |
| Define an instance method. More... | |
| Struct & | define_method (Identifier name, Func_T func, Arg const &arg) |
| Struct & | define_singleton_method (Identifier name, Func_T func, Arguments *arguments=0) |
| Define a singleton method. More... | |
| Struct & | define_singleton_method (Identifier name, Func_T func, Arg const &arg) |
| Struct & | define_module_function (Identifier name, Func_T func, Arguments *arguments=0) |
| Define a module function. More... | |
| Struct & | define_module_function (Identifier name, Func_T func, Arg const &arg) |
| Struct & | define_iterator (Iterator_T(T::*begin)(), Iterator_T(T::*end)(), Identifier name="each") |
| Define an iterator. More... | |
| Struct & | include_module (Module const &inc) |
| Include a module. More... | |
| Struct & | const_set (Identifier name, Object value) |
| Set a constant. More... | |
| Object | const_get (Identifier name) const |
| Get a constant. More... | |
| bool | const_defined (Identifier name) const |
| Determine whether a constant is defined. More... | |
| void | remove_const (Identifier name) |
| Remove a constant. More... | |
| Module | define_module (char const *name) |
| Define a module under this module. More... | |
| Class | define_class (char const *name, Object superclass=rb_cObject) |
| Define a class under this module. More... | |
| Data_Type< T > | define_class (char const *name) |
| Define a new data class under this module. More... | |
| Data_Type< T > | define_class (char const *name) |
| Define a new data class under this module. More... | |
Public Member Functions inherited from Rice::Class | |
| Class () | |
| Class (VALUE v) | |
| Construct a new class wrapper from a ruby object of type T_CLASS. | |
| Class & | undef_creation_funcs () |
| Disallow creation of an instance from Ruby code. More... | |
Public Member Functions inherited from Rice::Module_impl< Module, Class > | |
| Module_impl (T const &arg) | |
| Class & | add_handler (Functor_T functor) |
| Define an exception handler. More... | |
| Class & | define_method (Identifier name, Func_T func, Arguments *arguments=0) |
| Define an instance method. More... | |
| Class & | define_method (Identifier name, Func_T func, Arg const &arg) |
| Class & | define_singleton_method (Identifier name, Func_T func, Arguments *arguments=0) |
| Define a singleton method. More... | |
| Class & | define_singleton_method (Identifier name, Func_T func, Arg const &arg) |
| Class & | define_module_function (Identifier name, Func_T func, Arguments *arguments=0) |
| Define a module function. More... | |
| Class & | define_module_function (Identifier name, Func_T func, Arg const &arg) |
| Class & | define_iterator (Iterator_T(T::*begin)(), Iterator_T(T::*end)(), Identifier name="each") |
| Define an iterator. More... | |
| Class & | include_module (Module const &inc) |
| Include a module. More... | |
| Class & | const_set (Identifier name, Object value) |
| Set a constant. More... | |
| Object | const_get (Identifier name) const |
| Get a constant. More... | |
| bool | const_defined (Identifier name) const |
| Determine whether a constant is defined. More... | |
| void | remove_const (Identifier name) |
| Remove a constant. More... | |
| Module | define_module (char const *name) |
| Define a module under this module. More... | |
| Class | define_class (char const *name, Object superclass=rb_cObject) |
| Define a class under this module. More... | |
| Data_Type< T > | define_class (char const *name) |
| Define a new data class under this module. More... | |
| Data_Type< T > | define_class (char const *name) |
| Define a new data class under this module. More... | |
Public Member Functions inherited from Rice::Module | |
| Module () | |
| Default construct a Module and initialize it to rb_cObject. | |
| Module (VALUE v) | |
| Construct a Module from an existing Module object. | |
| String | name () const |
| Return the name of the module. | |
| void | swap (Module &other) |
| Swap with another Module. | |
| Array | ancestors () const |
| Return an array containing the Module's ancestors. More... | |
| Class | singleton_class () const |
| Return the module's singleton class. More... | |
Public Member Functions inherited from Rice::Module_impl< Module_base, Module > | |
| Module_impl (T const &arg) | |
| Module & | add_handler (Functor_T functor) |
| Define an exception handler. More... | |
| Module & | define_method (Identifier name, Func_T func, Arguments *arguments=0) |
| Define an instance method. More... | |
| Module & | define_method (Identifier name, Func_T func, Arg const &arg) |
| Module & | define_singleton_method (Identifier name, Func_T func, Arguments *arguments=0) |
| Define a singleton method. More... | |
| Module & | define_singleton_method (Identifier name, Func_T func, Arg const &arg) |
| Module & | define_module_function (Identifier name, Func_T func, Arguments *arguments=0) |
| Define a module function. More... | |
| Module & | define_module_function (Identifier name, Func_T func, Arg const &arg) |
| Module & | define_iterator (Iterator_T(T::*begin)(), Iterator_T(T::*end)(), Identifier name="each") |
| Define an iterator. More... | |
| Module & | include_module (Module const &inc) |
| Include a module. More... | |
| Module & | const_set (Identifier name, Object value) |
| Set a constant. More... | |
| Object | const_get (Identifier name) const |
| Get a constant. More... | |
| bool | const_defined (Identifier name) const |
| Determine whether a constant is defined. More... | |
| void | remove_const (Identifier name) |
| Remove a constant. More... | |
| Module | define_module (char const *name) |
| Define a module under this module. More... | |
| Class | define_class (char const *name, Object superclass=rb_cObject) |
| Define a class under this module. More... | |
| Data_Type< T > | define_class (char const *name) |
| Define a new data class under this module. More... | |
| Data_Type< T > | define_class (char const *name) |
| Define a new data class under this module. More... | |
Public Member Functions inherited from Rice::Module_base | |
| Module_base (VALUE v=rb_cObject) | |
| Module_base (Module_base const &other) | |
| Module_base & | operator= (Module_base const &other) |
| void | swap (Module_base &other) |
Public Member Functions inherited from Rice::Object | |
| Object (VALUE value=Qnil) | |
| Encapsulate an existing ruby object. | |
| Object (Object const &other) | |
| Copy constructor. | |
| virtual | ~Object () |
| Destructor. | |
| bool | test () const |
| operator bool () const | |
| bool | is_nil () const |
| Returns true if the object is nil, false otherwise. | |
| operator VALUE () const | |
| Implicit conversion to VALUE. | |
| VALUE const volatile & | value () const |
| Explicitly get the encapsulated VALUE. | |
| Class | class_of () const |
| Get the class of an object. More... | |
| int | compare (Object const &other) const |
| Compare this object to another object. More... | |
| String | to_s () const |
| Return a string representation of an object. More... | |
| String | inspect () const |
| Inspect the object. More... | |
| void | freeze () |
| Freeze the object. | |
| bool | is_frozen () const |
| Determine if the object is frozen. More... | |
| void | swap (Object &other) |
| Swap with another Object. | |
| Object | instance_eval (String const &s) |
| Evaluate the given string in the context of the object. More... | |
| int | rb_type () const |
| Return the type of the underlying C object. More... | |
| bool | is_a (Object klass) const |
| Determine whether the object is an instance of a class/module. More... | |
| bool | respond_to (Identifier id) const |
| Determine if the objects responds to a method. More... | |
| bool | is_instance_of (Object klass) const |
| Determine whether class is the object's class. More... | |
| template<typename T > | |
| void | iv_set (Identifier name, T const &value) |
| Set an instance variable. More... | |
| Object | iv_get (Identifier name) const |
| Get the value of an instance variable. More... | |
| Object | attr_get (Identifier name) const |
| Get the value of an instance variable, but don't warn if it is. More... | |
| template<typename ... ArgT> | |
| Object | call (Identifier id, ArgT... args) const |
| Call the Ruby method specified by 'id' on object 'obj'. More... | |
| Object | vcall (Identifier id, Array args) |
| Vectorized call. More... | |
| void | mark () const |
| Mark the object with the garbage collector. | |
Friends | |
| class | Instance |
| Struct | Rice::define_struct () |
Additional Inherited Members | |
Protected Member Functions inherited from Rice::Module_base | |
| template<typename Exception_T , typename Functor_T > | |
| void | add_handler (Functor_T functor) |
| Object | handler () const |
Protected Member Functions inherited from Rice::Object | |
| void | set_value (VALUE v) |
| Set the encapsulated value. | |
| template<typename ... ArgT> | |
| std::vector< VALUE > | convert_args (ArgT &... args) const |
| Unpack the provided arguments and convert them all to Ruby types. | |
A wrapper for creating Struct classes.
The Struct class is used for creating new Classes. Note that the notation used here differs slightly from the notation inside the interpreter.
Inside the interpreter, calling Struct.new creates a new Class:
Instantiating that Class creates an instance of that Class:
Thus, inside the interpreter, MyStruct is a Class which inherits from Struct, and mystruct_instance is an instance of MyStruct.
At the C++ level, we might do this instead:
Here rb_cMyStruct is an instance of Struct and that mystruct_instance is an instance of Struct::Instance.
| Struct& Rice::Struct::define_member | ( | Identifier | name | ) |
| Struct& Rice::Struct::initialize | ( | Module | module, |
| Identifier | name | ||
| ) |
Create a new instance of the Struct.
| args | the arguments to the constructor. |
| unsigned long Rice::Struct::offset_of | ( | Identifier | name | ) | const |