93#include "b2ppconfig.h" 
   97typedef struct _object PyObject;
 
  104inline std::ostream& operator<<(std::ostream& o, 
const Module& m);
 
  111    Module(
const std::string& name_, Module* parent_, 
const char* doc_ = 
nullptr);
 
  114    std::string get_name() 
const;
 
  119    std::string get_full_name(
char separator = 
'.') 
const;
 
  135    void set_object_type(
 
  136          ObjectType* object_type, 
const std::string& name_,
 
  137          const StringList& aliases = StringList(), 
const std::string& suffix = 
"");
 
  149    ObjectType* get_object_type(
const std::string& name_) 
const;
 
  157    Module* get_module(
const std::string& name_) 
const;
 
  159    PyObject* init_python_module();
 
  161    void print_list(std::ostream& out, 
const std::string& prefix = 
"") 
const;
 
  163    const std::map<std::string, ObjectType*>& get_object_types_list()
 const {
 
  164        return object_types_list;
 
  168    const std::string name;
 
  170    typedef std::map<std::string, ObjectType*> object_types_list_t;
 
  171    object_types_list_t object_types_list;
 
  172    typedef std::map<std::string, Module*> modules_list_t;
 
  173    modules_list_t modules_list;
 
  175    PyObject* python_module;
 
  182        Link() : initialised(false) {}
 
  184        object_types_list_t object_types_list;
 
  185        modules_list_t modules_list;
 
  187    typedef std::map<Module*, Link> module_link_t;
 
  188    static module_link_t* module_link_p;
 
  190    static std::string get_python_name(
const std::string& name_);
 
  193inline std::ostream& operator<<(std::ostream& o, 
const Module& m) { 
return o << m.get_full_name(); }
 
  195extern Module b2000_module;
 
Contains the base classes for implementing Finite Elements.
Definition b2boundary_condition.H:32