00001 /***************************************************************************** 00002 00003 The following code is derived, directly or indirectly, from the SystemC 00004 source code Copyright (c) 1996-2008 by all Contributors. 00005 All Rights reserved. 00006 00007 The contents of this file are subject to the restrictions and limitations 00008 set forth in the SystemC Open Source License Version 3.0 (the "License"); 00009 You may not use this file except in compliance with such restrictions and 00010 limitations. You may obtain instructions on how to receive a copy of the 00011 License at http://www.systemc.org/. Software distributed by Contributors 00012 under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 00013 ANY KIND, either express or implied. See the License for the specific 00014 language governing rights and limitations under the License. 00015 00016 *****************************************************************************/ 00017 00018 #ifndef __TLM_ANALYSIS_TRIPLE_H__ 00019 #define __TLM_ANALYSIS_TRIPLE_H__ 00020 00021 //#include <systemc> 00022 00023 namespace tlm { 00024 00025 template< typename T> 00026 struct tlm_analysis_triple { 00027 00028 sc_core::sc_time start_time; 00029 T transaction; 00030 sc_core::sc_time end_time; 00031 00032 tlm_analysis_triple() {} 00033 00034 tlm_analysis_triple( const tlm_analysis_triple &triple ) { 00035 start_time = triple.start_time; 00036 transaction = triple.transaction; 00037 end_time = triple.end_time; 00038 } 00039 00040 tlm_analysis_triple( const T &t ) { 00041 transaction = t; 00042 } 00043 00044 operator T() { return transaction; } 00045 operator const T &() const { return transaction; } 00046 00047 }; 00048 00049 } // namespace tlm 00050 00051 #endif