systemc: Promote some functions to sc_export_base.
authorGabe Black <gabeblack@google.com>
Sat, 21 Jul 2018 02:25:48 +0000 (19:25 -0700)
committerGabe Black <gabeblack@google.com>
Tue, 11 Sep 2018 21:45:15 +0000 (21:45 +0000)
There are a few functions which return a generic sc_interface pointer
which were (in the spec) defined to be in the interface type specific
sc_export class. They don't need to be and aren't in the Accellera
implementation, and without having them in the base class there's no
good way to get at a generic interface pointer from an export.

Change-Id: Iba692c79bf1d4f7684f28447d8b22c88ef4b804d
Reviewed-on: https://gem5-review.googlesource.com/12043
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>

src/systemc/ext/core/sc_export.hh

index dc2176492d93bd7f92e4b449c8d3726cf85ed2af..421e063c08c1fb3df8f15204415a5ef25923884a 100644 (file)
@@ -41,6 +41,9 @@ class sc_export_base : public sc_object
 {
   public:
     void warn_unimpl(const char *func) const;
+
+    virtual sc_interface *get_iterface() = 0;
+    virtual const sc_interface *get_interface() const = 0;
 };
 
 template <class IF>
@@ -71,14 +74,14 @@ class sc_export : public sc_export_base
         return nullptr;
     }
 
-    virtual sc_interface *
-    get_iterface()
+    sc_interface *
+    get_iterface() override
     {
         warn_unimpl(__PRETTY_FUNCTION__);
         return nullptr;
     }
-    virtual const sc_interface *
-    get_interface() const
+    const sc_interface *
+    get_interface() const override
     {
         warn_unimpl(__PRETTY_FUNCTION__);
         return nullptr;