26 #ifndef CASADI_IMPORTER_INTERNAL_HPP
27 #define CASADI_IMPORTER_INTERNAL_HPP
29 #include "importer.hpp"
30 #include "function_internal.hpp"
31 #include "plugin_interface.hpp"
58 std::string
class_name()
const override {
return "ImporterInternal";}
63 void disp(std::ostream& stream,
bool more)
const override;
73 void construct(
const Dict& opts);
86 virtual void init(
const Dict& opts);
96 #ifdef CASADI_WITH_THREADSAFE_SYMBOLICS
97 static std::mutex mutex_solvers_;
113 bool has_function(
const std::string& symname)
const;
118 bool has_meta(
const std::string& cmd, casadi_int ind=-1)
const;
123 std::string get_meta(
const std::string& cmd, casadi_int ind=-1)
const;
126 void read_meta(std::istream& file, casadi_int& offset);
129 void read_external(
const std::string& sym,
bool inlined,
130 std::istream& file, casadi_int& offset);
133 bool inlined(
const std::string& symname)
const;
136 std::string body(
const std::string& symname)
const;
139 virtual std::string library()
const;
147 std::string
to_text(
const std::string& cmd, casadi_int ind=-1)
const;
150 static inline std::string
indexed(
const std::string& cmd, casadi_int ind) {
151 std::stringstream ss;
152 ss << cmd <<
"[" << ind <<
"]";
160 std::map<std::string, std::pair<casadi_int, std::string> >
meta_;
163 std::map<std::string, std::pair<bool, std::string> >
external_;
190 #if defined(WITH_DL) && defined(_WIN32)
191 typedef HINSTANCE handle_t;
193 typedef void* handle_t;
199 explicit DllLibrary(
const std::string& bin_name);
201 void finalize()
override;
211 std::string
class_name()
const override {
return "DllLibrary";}
214 signal_t get_function(
const std::string& symname)
override;
217 std::string library()
const override;
Helper class for Serialization.
Dynamically linked library.
std::string class_name() const override
Get type name.
DllLibrary(DeserializingStream &s)
bool can_have_meta() const override
Can meta information be read?
std::string to_text(const std::string &cmd, casadi_int ind=-1) const
Get entry as a text.
std::map< std::string, std::pair< casadi_int, std::string > > meta_
Meta data.
bool verbose_
Verbose – for debugging purposes.
static std::string shortname()
Short name.
std::string class_name() const override
Get type name.
virtual signal_t get_function(const std::string &symname)
Get a function pointer for numerical evaluation.
static const std::string infix_
Infix.
static const Options options_
Options.
virtual bool can_have_meta() const
Can meta information be read?
static std::string indexed(const std::string &cmd, casadi_int ind)
std::string name_
C filename.
virtual const Options & get_options() const
Options.
const char * plugin_name() const override
Queery plugin name.
std::map< std::string, std::pair< bool, std::string > > external_
External functions.
static std::map< std::string, Plugin > solvers_
Collection of solvers.
Interface for accessing input and output data structures.
Helper class for Serialization.
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.
void(* signal_t)(void)
Function pointer types for the C API.
Options metadata for a class.