113373Sgabeblack@google.com/*
213373Sgabeblack@google.com * Copyright 2018 Google, Inc.
313373Sgabeblack@google.com *
413373Sgabeblack@google.com * Redistribution and use in source and binary forms, with or without
513373Sgabeblack@google.com * modification, are permitted provided that the following conditions are
613373Sgabeblack@google.com * met: redistributions of source code must retain the above copyright
713373Sgabeblack@google.com * notice, this list of conditions and the following disclaimer;
813373Sgabeblack@google.com * redistributions in binary form must reproduce the above copyright
913373Sgabeblack@google.com * notice, this list of conditions and the following disclaimer in the
1013373Sgabeblack@google.com * documentation and/or other materials provided with the distribution;
1113373Sgabeblack@google.com * neither the name of the copyright holders nor the names of its
1213373Sgabeblack@google.com * contributors may be used to endorse or promote products derived from
1313373Sgabeblack@google.com * this software without specific prior written permission.
1413373Sgabeblack@google.com *
1513373Sgabeblack@google.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1613373Sgabeblack@google.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1713373Sgabeblack@google.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1813373Sgabeblack@google.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1913373Sgabeblack@google.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
2013373Sgabeblack@google.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
2113373Sgabeblack@google.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
2213373Sgabeblack@google.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
2313373Sgabeblack@google.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
2413373Sgabeblack@google.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2513373Sgabeblack@google.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2613373Sgabeblack@google.com *
2713373Sgabeblack@google.com * Authors: Gabe Black
2813373Sgabeblack@google.com */
2913373Sgabeblack@google.com
3013373Sgabeblack@google.com#include <vector>
3113373Sgabeblack@google.com
3213373Sgabeblack@google.com#include "params/SystemC_Printer.hh"
3313373Sgabeblack@google.com#include "systemc_simple_object/printer.hh"
3413373Sgabeblack@google.com
3513373Sgabeblack@google.com// This "create" method bridges the python configuration and the systemc
3613373Sgabeblack@google.com// objects. It instantiates the Printer object and sets it up using the
3713373Sgabeblack@google.com// parameter values from the config, just like it would for a SimObject. The
3813373Sgabeblack@google.com// systemc object could accept those parameters however it likes, for instance
3913373Sgabeblack@google.com// through its constructor or by assigning them to a member variable.
4013373Sgabeblack@google.comPrinter *
4113373Sgabeblack@google.comSystemC_PrinterParams::create()
4213373Sgabeblack@google.com{
4313373Sgabeblack@google.com    Printer *printer = new Printer(name.c_str());
4413373Sgabeblack@google.com    printer->prefix = prefix;
4513373Sgabeblack@google.com    return printer;
4613373Sgabeblack@google.com}
47