printer.cc revision 13373
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