From aae6134b5487e02a90445d1b2146583740658b09 Mon Sep 17 00:00:00 2001 From: Andreas Sandberg Date: Fri, 2 Nov 2012 11:32:02 -0500 Subject: [PATCH] sim: Add SWIG interface for Serializable This changeset adds a SWIG interface for the Serializable class, which fixes a warning when compiling the SWIG interface for the event queue. Currently, the only method exported is the name() method. --- src/python/SConscript | 1 + src/python/m5/SimObject.py | 3 ++- src/python/swig/event.i | 4 +-- src/python/swig/serialize.i | 51 +++++++++++++++++++++++++++++++++++++ 4 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 src/python/swig/serialize.i diff --git a/src/python/SConscript b/src/python/SConscript index d00432642..b2c95b88b 100644 --- a/src/python/SConscript +++ b/src/python/SConscript @@ -70,6 +70,7 @@ SwigSource('m5.internal', 'swig/drain.i') SwigSource('m5.internal', 'swig/event.i') SwigSource('m5.internal', 'swig/pyobject.i') SwigSource('m5.internal', 'swig/range.i') +SwigSource('m5.internal', 'swig/serialize.i') SwigSource('m5.internal', 'swig/stats.i') SwigSource('m5.internal', 'swig/trace.i') PySource('m5.internal', 'm5/internal/__init__.py') diff --git a/src/python/m5/SimObject.py b/src/python/m5/SimObject.py index 3aea55f5f..9f43fc70c 100644 --- a/src/python/m5/SimObject.py +++ b/src/python/m5/SimObject.py @@ -595,7 +595,7 @@ class SimObject(object): abstract = True cxx_header = "sim/sim_object.hh" - cxx_bases = [ "Drainable" ] + cxx_bases = [ "Drainable", "Serializable" ] @classmethod def export_method_swig_predecls(cls, code): @@ -603,6 +603,7 @@ class SimObject(object): %include %import "python/swig/drain.i" +%import "python/swig/serialize.i" ''') @classmethod diff --git a/src/python/swig/event.i b/src/python/swig/event.i index 766dc2769..1f7740eab 100644 --- a/src/python/swig/event.i +++ b/src/python/swig/event.i @@ -39,6 +39,8 @@ #include "sim/simulate.hh" %} +%import "python/swig/serialize.i" + #pragma SWIG nowarn=350,351 %extend EventQueue { @@ -73,8 +75,6 @@ %include %include -%import "sim/serialize.hh" - %include "base/types.hh" %include "sim/eventq.hh" diff --git a/src/python/swig/serialize.i b/src/python/swig/serialize.i new file mode 100644 index 000000000..9a232fb09 --- /dev/null +++ b/src/python/swig/serialize.i @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2012 ARM Limited + * All rights reserved + * + * The license below extends only to copyright in the software and shall + * not be construed as granting a license to any other intellectual + * property including but not limited to intellectual property relating + * to a hardware implementation of the functionality of the software + * licensed hereunder. You may use the software subject to the license + * terms below provided that you ensure that this notice is replicated + * unmodified and in its entirety in all distributions of the software, + * modified or unmodified, in source code or in binary form. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer; + * redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution; + * neither the name of the copyright holders nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Authors: Andreas Sandberg + */ + +%module(package="m5.internal") serialize + +%{ +#include "sim/serialize.hh" +%} + +%nodefaultctor Serializable; + +class Serializable +{ + virtual const std::string name() const = 0; +}; -- 2.30.2