113521Sgabeblack@google.com/***************************************************************************** 213521Sgabeblack@google.com 313521Sgabeblack@google.com Licensed to Accellera Systems Initiative Inc. (Accellera) under one or 413521Sgabeblack@google.com more contributor license agreements. See the NOTICE file distributed 513521Sgabeblack@google.com with this work for additional information regarding copyright ownership. 613521Sgabeblack@google.com Accellera licenses this file to you under the Apache License, Version 2.0 713521Sgabeblack@google.com (the "License"); you may not use this file except in compliance with the 813521Sgabeblack@google.com License. You may obtain a copy of the License at 913521Sgabeblack@google.com 1013521Sgabeblack@google.com http://www.apache.org/licenses/LICENSE-2.0 1113521Sgabeblack@google.com 1213521Sgabeblack@google.com Unless required by applicable law or agreed to in writing, software 1313521Sgabeblack@google.com distributed under the License is distributed on an "AS IS" BASIS, 1413521Sgabeblack@google.com WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 1513521Sgabeblack@google.com implied. See the License for the specific language governing 1613521Sgabeblack@google.com permissions and limitations under the License. 1713521Sgabeblack@google.com 1813521Sgabeblack@google.com *****************************************************************************/ 1913521Sgabeblack@google.com 2013521Sgabeblack@google.com#ifndef __SYSTEMC_EXT_TLM_CORE_1_ANALYSIS_ANALYSIS_FIFO_HH__ 2113521Sgabeblack@google.com#define __SYSTEMC_EXT_TLM_CORE_1_ANALYSIS_ANALYSIS_FIFO_HH__ 2213521Sgabeblack@google.com 2313586Sgabeblack@google.com#include "../req_rsp/channels/fifo/fifo.hh" 2413586Sgabeblack@google.com#include "analysis_if.hh" 2513586Sgabeblack@google.com#include "analysis_triple.hh" 2613521Sgabeblack@google.com 2713521Sgabeblack@google.comnamespace tlm 2813521Sgabeblack@google.com{ 2913521Sgabeblack@google.com 3013521Sgabeblack@google.comtemplate <typename T> 3113521Sgabeblack@google.comclass tlm_analysis_fifo : public tlm_fifo<T>, 3213521Sgabeblack@google.com public virtual tlm_analysis_if<T>, 3313521Sgabeblack@google.com public virtual tlm_analysis_if<tlm_analysis_triple<T>> 3413521Sgabeblack@google.com{ 3513521Sgabeblack@google.com public: 3613521Sgabeblack@google.com // analysis fifo is an unbounded tlm_fifo 3713521Sgabeblack@google.com tlm_analysis_fifo(const char *nm) : tlm_fifo<T>(nm, -16) {} 3813521Sgabeblack@google.com tlm_analysis_fifo() : tlm_fifo<T>(-16) {} 3913521Sgabeblack@google.com 4013521Sgabeblack@google.com void write(const tlm_analysis_triple<T> &t) { nb_put(t); } 4113521Sgabeblack@google.com void write(const T &t) { nb_put(t); } 4213521Sgabeblack@google.com}; 4313521Sgabeblack@google.com 4413521Sgabeblack@google.com} // namespace tlm 4513521Sgabeblack@google.com 4613521Sgabeblack@google.com#endif /* __SYSTEMC_EXT_TLM_CORE_1_ANALYSIS_ANALYSIS_FIFO_HH__ */ 47