Turi Create  4.0
turi::model_base Class Referenceabstract

#include <model_server/lib/extensions/model_base.hpp>

Public Member Functions

virtual const char * name ()=0
 
virtual const std::string & uid ()=0
 
virtual void save_impl (oarchive &oarc) const
 
virtual void load_version (iarchive &iarc, size_t version)
 
void save_to_url (const std::string &url, const variant_map_type &side_data={})
 
void save_model_to_data (std::ostream &out)
 
virtual size_t get_version () const
 
const std::map< std::string, std::vector< std::string > > & list_functions ()
 
const std::vector< std::string > & list_get_properties ()
 
const std::vector< std::string > & list_set_properties ()
 
variant_type call_function (const std::string &function, variant_map_type argument)
 
variant_type get_property (const std::string &property)
 
variant_type set_property (const std::string &property, variant_map_type argument)
 
const std::string & get_docstring (const std::string &symbol)
 
virtual void perform_registration ()
 

Protected Member Functions

void register_function (std::string fnname, const std::vector< std::string > &arguments, impl_fn fn)
 
void register_defaults (const std::string &fnname, const variant_map_type &arguments)
 
void register_setter (const std::string &propname, impl_fn setfn)
 
void register_getter (const std::string &propname, impl_fn getfn)
 
void register_docstring (const std::pair< std::string, std::string > &fnname_docstring)
 

Detailed Description

The base class from which all new toolkit classes must inherit.

This class defines a generic object interface, listing properties and callable methods, so that instances can be naturally wrapped and exposed to other languages, such as Python.

Subclasses should use the macros defined in toolkit_class_macros.hpp to declared the desired properties and methods, and to define their implementations. See that file for details and examples.

Subclasses that wish to support saving and loading should also override the save_impl, load_version, and get_version functions below.

Definition at line 45 of file model_base.hpp.

Member Function Documentation

◆ call_function()

variant_type turi::model_base::call_function ( const std::string &  function,
variant_map_type  argument 
)

Calls a user defined function.

◆ get_docstring()

const std::string& turi::model_base::get_docstring ( const std::string &  symbol)

Returns the toolkit documentation for a function or property.

◆ get_property()

variant_type turi::model_base::get_property ( const std::string &  property)

Reads a property.

◆ get_version()

◆ list_functions()

const std::map<std::string, std::vector<std::string> >& turi::model_base::list_functions ( )

Lists all the registered functions. Returns a map of function name to array of argument names for the function.

◆ list_get_properties()

const std::vector<std::string>& turi::model_base::list_get_properties ( )

Lists all the get-table properties of the class.

◆ list_set_properties()

const std::vector<std::string>& turi::model_base::list_set_properties ( )

Lists all the set-table properties of the class.

◆ load_version()

◆ name()

virtual const char* turi::model_base::name ( )
pure virtual

Returns the name of the toolkit class, as exposed to client code. For example, the Python proxy for this instance will have a type with this name.

Note: this function is typically overridden using the BEGIN_CLASS_MEMBER_REGISTRATION macro.

◆ perform_registration()

virtual void turi::model_base::perform_registration ( )
virtual

Declare the base registration function. This class has to be handled specially; the macros don't work here due to the override declarations.

Reimplemented in turi::model_proxy.

◆ register_defaults()

void turi::model_base::register_defaults ( const std::string &  fnname,
const variant_map_type &  arguments 
)
protected

Registers default argument values

◆ register_docstring()

void turi::model_base::register_docstring ( const std::pair< std::string, std::string > &  fnname_docstring)
protected

Adds a docstring for the specified function or property name.

◆ register_function()

void turi::model_base::register_function ( std::string  fnname,
const std::vector< std::string > &  arguments,
impl_fn  fn 
)
protected

Adds a function with the specified name, and argument list.

◆ register_getter()

void turi::model_base::register_getter ( const std::string &  propname,
impl_fn  getfn 
)
protected

Adds a property getter with the specified name.

◆ register_setter()

void turi::model_base::register_setter ( const std::string &  propname,
impl_fn  setfn 
)
protected

Adds a property setter with the specified name.

◆ save_impl()

◆ save_model_to_data()

void turi::model_base::save_model_to_data ( std::ostream &  out)

Save a toolkit class to a data stream.

◆ save_to_url()

void turi::model_base::save_to_url ( const std::string &  url,
const variant_map_type &  side_data = {} 
)

Save a toolkit class to disk.

Parameters
urlThe destination url to store the class.
sidedataAny additional side information

◆ set_property()

variant_type turi::model_base::set_property ( const std::string &  property,
variant_map_type  argument 
)

Sets a property. The new value of the property should appear in the argument map under the key "value".

◆ uid()

virtual const std::string& turi::model_base::uid ( )
pure virtual

Returns a unique identifier for the toolkit class. It can be any unique ID. The UID is only used at runtime (to determine the concrete type of an arbitrary model_base instance) and is never stored.

Note: this function is typically overridden using the BEGIN_CLASS_MEMBER_REGISTRATION macro.

Implemented in turi::model_proxy.


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