32a33
> #include "sc_module.hh" // for sc_gen_unique_name
43c44,45
< void warn_unimpl(const char *func) const;
---
> sc_export_base(const char *n);
> ~sc_export_base();
53,55c55,61
< sc_export() { warn_unimpl(__PRETTY_FUNCTION__); }
< explicit sc_export(const char *) { warn_unimpl(__PRETTY_FUNCTION__); }
< virtual ~sc_export() { warn_unimpl(__PRETTY_FUNCTION__); };
---
> sc_export() :
> sc_export_base(sc_gen_unique_name("export")), interface(nullptr)
> {}
> explicit sc_export(const char *n) :
> sc_export_base(n), interface(nullptr)
> {}
> virtual ~sc_export() {}
59,62c65,68
< void operator () (IF &) { warn_unimpl(__PRETTY_FUNCTION__); };
< virtual void bind(IF &) { warn_unimpl(__PRETTY_FUNCTION__); };
< operator IF & () { warn_unimpl(__PRETTY_FUNCTION__); };
< operator const IF & () const { warn_unimpl(__PRETTY_FUNCTION__); };
---
> void operator () (IF &i) { bind(i); }
> virtual void bind(IF &i) { interface = &i; }
> operator IF & () { return *interface; }
> operator const IF & () const { return *interface; }
64,75c70,71
< IF *
< operator -> ()
< {
< warn_unimpl(__PRETTY_FUNCTION__);
< return nullptr;
< }
< const IF *
< operator -> () const
< {
< warn_unimpl(__PRETTY_FUNCTION__);
< return nullptr;
< }
---
> IF *operator -> () { return interface; }
> const IF *operator -> () const { return interface; }
77,88c73,74
< sc_interface *
< get_iterface() override
< {
< warn_unimpl(__PRETTY_FUNCTION__);
< return nullptr;
< }
< const sc_interface *
< get_interface() const override
< {
< warn_unimpl(__PRETTY_FUNCTION__);
< return nullptr;
< }
---
> sc_interface *get_iterface() override { return interface; }
> const sc_interface *get_interface() const override { return interface; }
96a83,84
> IF *interface;
>