summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/nl_factory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/nl_factory.cpp')
-rw-r--r--src/lib/netlist/nl_factory.cpp44
1 files changed, 22 insertions, 22 deletions
diff --git a/src/lib/netlist/nl_factory.cpp b/src/lib/netlist/nl_factory.cpp
index f1d3281aa81..1e5a8e11b44 100644
--- a/src/lib/netlist/nl_factory.cpp
+++ b/src/lib/netlist/nl_factory.cpp
@@ -12,45 +12,28 @@
#include "nl_setup.h"
#include "plib/putil.h"
-namespace netlist
+namespace netlist { namespace factory
{
// ----------------------------------------------------------------------------------------
// net_device_t_base_factory
// ----------------------------------------------------------------------------------------
-const plib::pstring_vector_t base_factory_t::term_param_list()
-{
- if (m_def_param.startsWith("+"))
- return plib::pstring_vector_t(m_def_param.substr(1), ",");
- else
- return plib::pstring_vector_t();
-}
-
-const plib::pstring_vector_t base_factory_t::def_params()
-{
- if (m_def_param.startsWith("+") || m_def_param.equals("-"))
- return plib::pstring_vector_t();
- else
- return plib::pstring_vector_t(m_def_param, ",");
-}
-
-
-factory_list_t::factory_list_t( setup_t &setup)
+list_t::list_t( setup_t &setup)
: m_setup(setup)
{
}
-factory_list_t::~factory_list_t()
+list_t::~list_t()
{
clear();
}
-void factory_list_t::error(const pstring &s)
+void list_t::error(const pstring &s)
{
m_setup.log().fatal("{1}", s);
}
-base_factory_t * factory_list_t::factory_by_name(const pstring &devname)
+factory::element_t * list_t::factory_by_name(const pstring &devname)
{
for (auto & e : *this)
{
@@ -62,4 +45,21 @@ base_factory_t * factory_list_t::factory_by_name(const pstring &devname)
return nullptr; // appease code analysis
}
+// -----------------------------------------------------------------------------
+// factory_lib_entry_t: factory class to wrap macro based chips/elements
+// -----------------------------------------------------------------------------
+
+plib::owned_ptr<device_t> library_element_t::Create(netlist_t &anetlist, const pstring &name)
+{
+ return plib::owned_ptr<device_t>::Create<wrapper>(anetlist, name);
}
+
+void library_element_t::macro_actions(netlist_t &anetlist, const pstring &name)
+{
+ anetlist.setup().namespace_push(name);
+ anetlist.setup().include(this->name());
+ anetlist.setup().namespace_pop();
+}
+
+
+} }