112027Sjungma@eit.uni-kl.de/*****************************************************************************
212027Sjungma@eit.uni-kl.de
312027Sjungma@eit.uni-kl.de  Licensed to Accellera Systems Initiative Inc. (Accellera) under one or
412027Sjungma@eit.uni-kl.de  more contributor license agreements.  See the NOTICE file distributed
512027Sjungma@eit.uni-kl.de  with this work for additional information regarding copyright ownership.
612027Sjungma@eit.uni-kl.de  Accellera licenses this file to you under the Apache License, Version 2.0
712027Sjungma@eit.uni-kl.de  (the "License"); you may not use this file except in compliance with the
812027Sjungma@eit.uni-kl.de  License.  You may obtain a copy of the License at
912027Sjungma@eit.uni-kl.de
1012027Sjungma@eit.uni-kl.de    http://www.apache.org/licenses/LICENSE-2.0
1112027Sjungma@eit.uni-kl.de
1212027Sjungma@eit.uni-kl.de  Unless required by applicable law or agreed to in writing, software
1312027Sjungma@eit.uni-kl.de  distributed under the License is distributed on an "AS IS" BASIS,
1412027Sjungma@eit.uni-kl.de  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
1512027Sjungma@eit.uni-kl.de  implied.  See the License for the specific language governing
1612027Sjungma@eit.uni-kl.de  permissions and limitations under the License.
1712027Sjungma@eit.uni-kl.de
1812027Sjungma@eit.uni-kl.de *****************************************************************************/
1912027Sjungma@eit.uni-kl.de
2012027Sjungma@eit.uni-kl.de/*****************************************************************************
2112027Sjungma@eit.uni-kl.de
2212027Sjungma@eit.uni-kl.de  sc_signal_rv_ports.h -- The resolved vector signal ports.
2312027Sjungma@eit.uni-kl.de
2412027Sjungma@eit.uni-kl.de  Original Author: Martin Janssen, Synopsys, Inc., 2001-05-21
2512027Sjungma@eit.uni-kl.de
2612027Sjungma@eit.uni-kl.de  CHANGE LOG IS AT THE END OF THE FILE
2712027Sjungma@eit.uni-kl.de *****************************************************************************/
2812027Sjungma@eit.uni-kl.de
2912027Sjungma@eit.uni-kl.de#ifndef SC_SIGNAL_RV_PORTS_H
3012027Sjungma@eit.uni-kl.de#define SC_SIGNAL_RV_PORTS_H
3112027Sjungma@eit.uni-kl.de
3212027Sjungma@eit.uni-kl.de
3312027Sjungma@eit.uni-kl.de#include <cstdio>
3412027Sjungma@eit.uni-kl.de
3512027Sjungma@eit.uni-kl.de#include "sysc/communication/sc_communication_ids.h"
3612027Sjungma@eit.uni-kl.de#include "sysc/communication/sc_signal_ports.h"
3712027Sjungma@eit.uni-kl.de#include "sysc/communication/sc_signal_rv.h"
3812027Sjungma@eit.uni-kl.de#include "sysc/datatypes/bit/sc_lv.h"
3912027Sjungma@eit.uni-kl.de
4012027Sjungma@eit.uni-kl.denamespace sc_core {
4112027Sjungma@eit.uni-kl.de
4212027Sjungma@eit.uni-kl.de// ----------------------------------------------------------------------------
4312027Sjungma@eit.uni-kl.de//  CLASS : sc_in_rv<W>
4412027Sjungma@eit.uni-kl.de//
4512027Sjungma@eit.uni-kl.de//  The sc_signal_rv<W> input port class.
4612027Sjungma@eit.uni-kl.de// ----------------------------------------------------------------------------
4712027Sjungma@eit.uni-kl.de
4812027Sjungma@eit.uni-kl.detemplate <int W>
4912027Sjungma@eit.uni-kl.declass sc_in_rv
5012027Sjungma@eit.uni-kl.de    : public sc_in<sc_dt::sc_lv<W> >
5112027Sjungma@eit.uni-kl.de{
5212027Sjungma@eit.uni-kl.depublic:
5312027Sjungma@eit.uni-kl.de
5412027Sjungma@eit.uni-kl.de    // typedefs
5512027Sjungma@eit.uni-kl.de
5612027Sjungma@eit.uni-kl.de    typedef sc_dt::sc_lv<W>                     data_type;
5712027Sjungma@eit.uni-kl.de
5812027Sjungma@eit.uni-kl.de    typedef sc_in_rv<W>                         this_type;
5912027Sjungma@eit.uni-kl.de    typedef sc_in<data_type>                    base_type;
6012027Sjungma@eit.uni-kl.de
6112027Sjungma@eit.uni-kl.de    typedef typename base_type::in_if_type      in_if_type;
6212027Sjungma@eit.uni-kl.de    typedef typename base_type::in_port_type    in_port_type;
6312027Sjungma@eit.uni-kl.de    typedef typename base_type::inout_port_type inout_port_type;
6412027Sjungma@eit.uni-kl.de
6512027Sjungma@eit.uni-kl.depublic:
6612027Sjungma@eit.uni-kl.de
6712027Sjungma@eit.uni-kl.de    // constructors
6812027Sjungma@eit.uni-kl.de
6912027Sjungma@eit.uni-kl.de    sc_in_rv()
7012027Sjungma@eit.uni-kl.de	: base_type()
7112027Sjungma@eit.uni-kl.de	{}
7212027Sjungma@eit.uni-kl.de
7312027Sjungma@eit.uni-kl.de    explicit sc_in_rv( const char* name_ )
7412027Sjungma@eit.uni-kl.de	: base_type( name_ )
7512027Sjungma@eit.uni-kl.de	{}
7612027Sjungma@eit.uni-kl.de
7712027Sjungma@eit.uni-kl.de    explicit sc_in_rv( const in_if_type& interface_ )
7812027Sjungma@eit.uni-kl.de	: base_type( interface_ )
7912027Sjungma@eit.uni-kl.de	{}
8012027Sjungma@eit.uni-kl.de
8112027Sjungma@eit.uni-kl.de    sc_in_rv( const char* name_, const in_if_type& interface_ )
8212027Sjungma@eit.uni-kl.de	: base_type( name_, interface_ )
8312027Sjungma@eit.uni-kl.de	{}
8412027Sjungma@eit.uni-kl.de
8512027Sjungma@eit.uni-kl.de    explicit sc_in_rv( in_port_type& parent_ )
8612027Sjungma@eit.uni-kl.de	: base_type( parent_ )
8712027Sjungma@eit.uni-kl.de	{}
8812027Sjungma@eit.uni-kl.de
8912027Sjungma@eit.uni-kl.de    sc_in_rv( const char* name_, in_port_type& parent_ )
9012027Sjungma@eit.uni-kl.de	: base_type( name_, parent_ )
9112027Sjungma@eit.uni-kl.de	{}
9212027Sjungma@eit.uni-kl.de
9312027Sjungma@eit.uni-kl.de    explicit sc_in_rv( inout_port_type& parent_ )
9412027Sjungma@eit.uni-kl.de	: base_type( parent_ )
9512027Sjungma@eit.uni-kl.de	{}
9612027Sjungma@eit.uni-kl.de
9712027Sjungma@eit.uni-kl.de    sc_in_rv( const char* name_, inout_port_type& parent_ )
9812027Sjungma@eit.uni-kl.de	: base_type( name_, parent_ )
9912027Sjungma@eit.uni-kl.de	{}
10012027Sjungma@eit.uni-kl.de
10112027Sjungma@eit.uni-kl.de    sc_in_rv( this_type& parent_ )
10212027Sjungma@eit.uni-kl.de	: base_type( parent_ )
10312027Sjungma@eit.uni-kl.de	{}
10412027Sjungma@eit.uni-kl.de
10512027Sjungma@eit.uni-kl.de    sc_in_rv( const char* name_, this_type& parent_ )
10612027Sjungma@eit.uni-kl.de	: base_type( name_, parent_ )
10712027Sjungma@eit.uni-kl.de	{}
10812027Sjungma@eit.uni-kl.de
10912027Sjungma@eit.uni-kl.de
11012027Sjungma@eit.uni-kl.de    // destructor (does nothing)
11112027Sjungma@eit.uni-kl.de
11212027Sjungma@eit.uni-kl.de    virtual ~sc_in_rv()
11312027Sjungma@eit.uni-kl.de	{}
11412027Sjungma@eit.uni-kl.de
11512027Sjungma@eit.uni-kl.de
11612027Sjungma@eit.uni-kl.de    // called when elaboration is done
11712027Sjungma@eit.uni-kl.de    /*  WHEN DEFINING THIS METHOD IN A DERIVED CLASS, */
11812027Sjungma@eit.uni-kl.de    /*  MAKE SURE THAT THIS METHOD IS CALLED AS WELL. */
11912027Sjungma@eit.uni-kl.de
12012027Sjungma@eit.uni-kl.de    virtual void end_of_elaboration();
12112027Sjungma@eit.uni-kl.de
12212027Sjungma@eit.uni-kl.de    virtual const char* kind() const
12312027Sjungma@eit.uni-kl.de        { return "sc_in_rv"; }
12412027Sjungma@eit.uni-kl.de
12512027Sjungma@eit.uni-kl.deprivate:
12612027Sjungma@eit.uni-kl.de
12712027Sjungma@eit.uni-kl.de    // disabled
12812027Sjungma@eit.uni-kl.de    sc_in_rv( const this_type& );
12912027Sjungma@eit.uni-kl.de    this_type& operator = ( const this_type& );
13012027Sjungma@eit.uni-kl.de};
13112027Sjungma@eit.uni-kl.de
13212027Sjungma@eit.uni-kl.de
13312027Sjungma@eit.uni-kl.de// IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
13412027Sjungma@eit.uni-kl.de
13512027Sjungma@eit.uni-kl.de
13612027Sjungma@eit.uni-kl.de// called when elaboration is done
13712027Sjungma@eit.uni-kl.de
13812027Sjungma@eit.uni-kl.detemplate <int W>
13912027Sjungma@eit.uni-kl.devoid
14012027Sjungma@eit.uni-kl.desc_in_rv<W>::end_of_elaboration()
14112027Sjungma@eit.uni-kl.de{
14212027Sjungma@eit.uni-kl.de    base_type::end_of_elaboration();
14312027Sjungma@eit.uni-kl.de    // check if bound channel is a resolved signal
14412027Sjungma@eit.uni-kl.de    if( DCAST<sc_signal_rv<W>*>( this->get_interface() ) == 0 ) {
14512027Sjungma@eit.uni-kl.de	char msg[BUFSIZ];
14612027Sjungma@eit.uni-kl.de	std::sprintf( msg, "%s (%s)", this->name(), kind() );
14712027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( SC_ID_RESOLVED_PORT_NOT_BOUND_, msg );
14812027Sjungma@eit.uni-kl.de    }
14912027Sjungma@eit.uni-kl.de}
15012027Sjungma@eit.uni-kl.de
15112027Sjungma@eit.uni-kl.de
15212027Sjungma@eit.uni-kl.de// ----------------------------------------------------------------------------
15312027Sjungma@eit.uni-kl.de//  CLASS : sc_inout_rv<W>
15412027Sjungma@eit.uni-kl.de//
15512027Sjungma@eit.uni-kl.de//  The sc_signal_rv<W> input/output port class.
15612027Sjungma@eit.uni-kl.de// ----------------------------------------------------------------------------
15712027Sjungma@eit.uni-kl.de
15812027Sjungma@eit.uni-kl.detemplate <int W>
15912027Sjungma@eit.uni-kl.declass sc_inout_rv
16012027Sjungma@eit.uni-kl.de    : public sc_inout<sc_dt::sc_lv<W> >
16112027Sjungma@eit.uni-kl.de{
16212027Sjungma@eit.uni-kl.depublic:
16312027Sjungma@eit.uni-kl.de
16412027Sjungma@eit.uni-kl.de    // typedefs
16512027Sjungma@eit.uni-kl.de
16612027Sjungma@eit.uni-kl.de    typedef sc_dt::sc_lv<W>                     data_type;
16712027Sjungma@eit.uni-kl.de
16812027Sjungma@eit.uni-kl.de    typedef sc_inout_rv<W>                      this_type;
16912027Sjungma@eit.uni-kl.de    typedef sc_inout<data_type>                 base_type;
17012027Sjungma@eit.uni-kl.de
17112027Sjungma@eit.uni-kl.de    typedef typename base_type::in_if_type      in_if_type;
17212027Sjungma@eit.uni-kl.de    typedef typename base_type::in_port_type    in_port_type;
17312027Sjungma@eit.uni-kl.de    typedef typename base_type::inout_if_type   inout_if_type;
17412027Sjungma@eit.uni-kl.de    typedef typename base_type::inout_port_type inout_port_type;
17512027Sjungma@eit.uni-kl.de
17612027Sjungma@eit.uni-kl.depublic:
17712027Sjungma@eit.uni-kl.de
17812027Sjungma@eit.uni-kl.de    // constructors
17912027Sjungma@eit.uni-kl.de
18012027Sjungma@eit.uni-kl.de    sc_inout_rv()
18112027Sjungma@eit.uni-kl.de	: base_type()
18212027Sjungma@eit.uni-kl.de	{}
18312027Sjungma@eit.uni-kl.de
18412027Sjungma@eit.uni-kl.de    explicit sc_inout_rv( const char* name_ )
18512027Sjungma@eit.uni-kl.de	: base_type( name_ )
18612027Sjungma@eit.uni-kl.de	{}
18712027Sjungma@eit.uni-kl.de
18812027Sjungma@eit.uni-kl.de    explicit sc_inout_rv( inout_if_type& interface_ )
18912027Sjungma@eit.uni-kl.de	: base_type( interface_ )
19012027Sjungma@eit.uni-kl.de	{}
19112027Sjungma@eit.uni-kl.de
19212027Sjungma@eit.uni-kl.de    sc_inout_rv( const char* name_, inout_if_type& interface_ )
19312027Sjungma@eit.uni-kl.de	: base_type( name_, interface_ )
19412027Sjungma@eit.uni-kl.de	{}
19512027Sjungma@eit.uni-kl.de
19612027Sjungma@eit.uni-kl.de    explicit sc_inout_rv( inout_port_type& parent_ )
19712027Sjungma@eit.uni-kl.de	: base_type( parent_ )
19812027Sjungma@eit.uni-kl.de	{}
19912027Sjungma@eit.uni-kl.de
20012027Sjungma@eit.uni-kl.de    sc_inout_rv( const char* name_, inout_port_type& parent_ )
20112027Sjungma@eit.uni-kl.de	: base_type( name_, parent_ )
20212027Sjungma@eit.uni-kl.de	{}
20312027Sjungma@eit.uni-kl.de
20412027Sjungma@eit.uni-kl.de    sc_inout_rv( this_type& parent_ )
20512027Sjungma@eit.uni-kl.de	: base_type( parent_ )
20612027Sjungma@eit.uni-kl.de	{}
20712027Sjungma@eit.uni-kl.de
20812027Sjungma@eit.uni-kl.de    sc_inout_rv( const char* name_, this_type& parent_ )
20912027Sjungma@eit.uni-kl.de	: base_type( name_, parent_ )
21012027Sjungma@eit.uni-kl.de	{}
21112027Sjungma@eit.uni-kl.de
21212027Sjungma@eit.uni-kl.de
21312027Sjungma@eit.uni-kl.de    // destructor (does nothing)
21412027Sjungma@eit.uni-kl.de
21512027Sjungma@eit.uni-kl.de    virtual ~sc_inout_rv()
21612027Sjungma@eit.uni-kl.de	{}
21712027Sjungma@eit.uni-kl.de
21812027Sjungma@eit.uni-kl.de
21912027Sjungma@eit.uni-kl.de    // write the new value
22012027Sjungma@eit.uni-kl.de
22112027Sjungma@eit.uni-kl.de    this_type& operator = ( const data_type& value_ )
22212027Sjungma@eit.uni-kl.de	{ (*this)->write( value_ ); return *this; }
22312027Sjungma@eit.uni-kl.de
22412027Sjungma@eit.uni-kl.de    this_type& operator = ( const in_if_type& interface_ )
22512027Sjungma@eit.uni-kl.de	{ (*this)->write( interface_.read() ); return *this; }
22612027Sjungma@eit.uni-kl.de
22712027Sjungma@eit.uni-kl.de    this_type& operator = ( const in_port_type& port_ )
22812027Sjungma@eit.uni-kl.de	{ (*this)->write( port_->read() ); return *this; }
22912027Sjungma@eit.uni-kl.de
23012027Sjungma@eit.uni-kl.de    this_type& operator = ( const inout_port_type& port_ )
23112027Sjungma@eit.uni-kl.de	{ (*this)->write( port_->read() ); return *this; }
23212027Sjungma@eit.uni-kl.de
23312027Sjungma@eit.uni-kl.de    this_type& operator = ( const this_type& port_ )
23412027Sjungma@eit.uni-kl.de	{ (*this)->write( port_->read() ); return *this; }
23512027Sjungma@eit.uni-kl.de
23612027Sjungma@eit.uni-kl.de
23712027Sjungma@eit.uni-kl.de    // called when elaboration is done
23812027Sjungma@eit.uni-kl.de    /*  WHEN DEFINING THIS METHOD IN A DERIVED CLASS, */
23912027Sjungma@eit.uni-kl.de    /*  MAKE SURE THAT THIS METHOD IS CALLED AS WELL. */
24012027Sjungma@eit.uni-kl.de
24112027Sjungma@eit.uni-kl.de    virtual void end_of_elaboration();
24212027Sjungma@eit.uni-kl.de
24312027Sjungma@eit.uni-kl.de    virtual const char* kind() const
24412027Sjungma@eit.uni-kl.de        { return "sc_inout_rv"; }
24512027Sjungma@eit.uni-kl.de
24612027Sjungma@eit.uni-kl.deprivate:
24712027Sjungma@eit.uni-kl.de
24812027Sjungma@eit.uni-kl.de    // disabled
24912027Sjungma@eit.uni-kl.de    sc_inout_rv( const this_type& );
25012027Sjungma@eit.uni-kl.de};
25112027Sjungma@eit.uni-kl.de
25212027Sjungma@eit.uni-kl.de
25312027Sjungma@eit.uni-kl.de// IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
25412027Sjungma@eit.uni-kl.de
25512027Sjungma@eit.uni-kl.de
25612027Sjungma@eit.uni-kl.de// called when elaboration is done
25712027Sjungma@eit.uni-kl.de
25812027Sjungma@eit.uni-kl.detemplate <int W>
25912027Sjungma@eit.uni-kl.devoid
26012027Sjungma@eit.uni-kl.desc_inout_rv<W>::end_of_elaboration()
26112027Sjungma@eit.uni-kl.de{
26212027Sjungma@eit.uni-kl.de    base_type::end_of_elaboration();
26312027Sjungma@eit.uni-kl.de    // check if bound channel is a resolved signal
26412027Sjungma@eit.uni-kl.de    if( DCAST<sc_signal_rv<W>*>( this->get_interface() ) == 0 ) {
26512027Sjungma@eit.uni-kl.de	char msg[BUFSIZ];
26612027Sjungma@eit.uni-kl.de	std::sprintf( msg, "%s (%s)", this->name(), kind() );
26712027Sjungma@eit.uni-kl.de	SC_REPORT_ERROR( SC_ID_RESOLVED_PORT_NOT_BOUND_, msg );
26812027Sjungma@eit.uni-kl.de    }
26912027Sjungma@eit.uni-kl.de}
27012027Sjungma@eit.uni-kl.de
27112027Sjungma@eit.uni-kl.de
27212027Sjungma@eit.uni-kl.de// ----------------------------------------------------------------------------
27312027Sjungma@eit.uni-kl.de//  CLASS : sc_out_rv<W>
27412027Sjungma@eit.uni-kl.de//
27512027Sjungma@eit.uni-kl.de//  The sc_signal_rv<W> output port class.
27612027Sjungma@eit.uni-kl.de// ----------------------------------------------------------------------------
27712027Sjungma@eit.uni-kl.de
27812027Sjungma@eit.uni-kl.de// sc_out_rv can also read from its port, hence no difference with
27912027Sjungma@eit.uni-kl.de// sc_inout_rv. For debugging reasons, a class is provided instead
28012027Sjungma@eit.uni-kl.de// of a define.
28112027Sjungma@eit.uni-kl.de
28212027Sjungma@eit.uni-kl.detemplate <int W>
28312027Sjungma@eit.uni-kl.declass sc_out_rv
28412027Sjungma@eit.uni-kl.de    : public sc_inout_rv<W>
28512027Sjungma@eit.uni-kl.de{
28612027Sjungma@eit.uni-kl.depublic:
28712027Sjungma@eit.uni-kl.de
28812027Sjungma@eit.uni-kl.de    // typedefs
28912027Sjungma@eit.uni-kl.de
29012027Sjungma@eit.uni-kl.de    typedef sc_out_rv<W>                        this_type;
29112027Sjungma@eit.uni-kl.de    typedef sc_inout_rv<W>                      base_type;
29212027Sjungma@eit.uni-kl.de
29312027Sjungma@eit.uni-kl.de    typedef typename base_type::data_type       data_type;
29412027Sjungma@eit.uni-kl.de
29512027Sjungma@eit.uni-kl.de    typedef typename base_type::in_if_type      in_if_type;
29612027Sjungma@eit.uni-kl.de    typedef typename base_type::in_port_type    in_port_type;
29712027Sjungma@eit.uni-kl.de    typedef typename base_type::inout_if_type   inout_if_type;
29812027Sjungma@eit.uni-kl.de    typedef typename base_type::inout_port_type inout_port_type;
29912027Sjungma@eit.uni-kl.de
30012027Sjungma@eit.uni-kl.depublic:
30112027Sjungma@eit.uni-kl.de
30212027Sjungma@eit.uni-kl.de    // constructors
30312027Sjungma@eit.uni-kl.de
30412027Sjungma@eit.uni-kl.de    sc_out_rv()
30512027Sjungma@eit.uni-kl.de	: base_type()
30612027Sjungma@eit.uni-kl.de	{}
30712027Sjungma@eit.uni-kl.de
30812027Sjungma@eit.uni-kl.de    explicit sc_out_rv( const char* name_ )
30912027Sjungma@eit.uni-kl.de	: base_type( name_ )
31012027Sjungma@eit.uni-kl.de	{}
31112027Sjungma@eit.uni-kl.de
31212027Sjungma@eit.uni-kl.de    explicit sc_out_rv( inout_if_type& interface_ )
31312027Sjungma@eit.uni-kl.de	: base_type( interface_ )
31412027Sjungma@eit.uni-kl.de	{}
31512027Sjungma@eit.uni-kl.de
31612027Sjungma@eit.uni-kl.de    sc_out_rv( const char* name_, inout_if_type& interface_ )
31712027Sjungma@eit.uni-kl.de	: base_type( name_, interface_ )
31812027Sjungma@eit.uni-kl.de	{}
31912027Sjungma@eit.uni-kl.de
32012027Sjungma@eit.uni-kl.de    explicit sc_out_rv( inout_port_type& parent_ )
32112027Sjungma@eit.uni-kl.de	: base_type( parent_ )
32212027Sjungma@eit.uni-kl.de	{}
32312027Sjungma@eit.uni-kl.de
32412027Sjungma@eit.uni-kl.de    sc_out_rv( const char* name_, inout_port_type& parent_ )
32512027Sjungma@eit.uni-kl.de	: base_type( name_, parent_ )
32612027Sjungma@eit.uni-kl.de	{}
32712027Sjungma@eit.uni-kl.de
32812027Sjungma@eit.uni-kl.de    sc_out_rv( this_type& parent_ )
32912027Sjungma@eit.uni-kl.de	: base_type( parent_ )
33012027Sjungma@eit.uni-kl.de	{}
33112027Sjungma@eit.uni-kl.de
33212027Sjungma@eit.uni-kl.de    sc_out_rv( const char* name_, this_type& parent_ )
33312027Sjungma@eit.uni-kl.de	: base_type( name_, parent_ )
33412027Sjungma@eit.uni-kl.de	{}
33512027Sjungma@eit.uni-kl.de
33612027Sjungma@eit.uni-kl.de
33712027Sjungma@eit.uni-kl.de    // destructor (does nothing)
33812027Sjungma@eit.uni-kl.de
33912027Sjungma@eit.uni-kl.de    virtual ~sc_out_rv()
34012027Sjungma@eit.uni-kl.de	{}
34112027Sjungma@eit.uni-kl.de
34212027Sjungma@eit.uni-kl.de
34312027Sjungma@eit.uni-kl.de    // write the new value
34412027Sjungma@eit.uni-kl.de
34512027Sjungma@eit.uni-kl.de    this_type& operator = ( const data_type& value_ )
34612027Sjungma@eit.uni-kl.de	{ (*this)->write( value_ ); return *this; }
34712027Sjungma@eit.uni-kl.de
34812027Sjungma@eit.uni-kl.de    this_type& operator = ( const in_if_type& interface_ )
34912027Sjungma@eit.uni-kl.de	{ (*this)->write( interface_.read() ); return *this; }
35012027Sjungma@eit.uni-kl.de
35112027Sjungma@eit.uni-kl.de    this_type& operator = ( const in_port_type& port_ )
35212027Sjungma@eit.uni-kl.de	{ (*this)->write( port_->read() ); return *this; }
35312027Sjungma@eit.uni-kl.de
35412027Sjungma@eit.uni-kl.de    this_type& operator = ( const inout_port_type& port_ )
35512027Sjungma@eit.uni-kl.de	{ (*this)->write( port_->read() ); return *this; }
35612027Sjungma@eit.uni-kl.de
35712027Sjungma@eit.uni-kl.de    this_type& operator = ( const this_type& port_ )
35812027Sjungma@eit.uni-kl.de	{ (*this)->write( port_->read() ); return *this; }
35912027Sjungma@eit.uni-kl.de
36012027Sjungma@eit.uni-kl.de    virtual const char* kind() const
36112027Sjungma@eit.uni-kl.de        { return "sc_out_rv"; }
36212027Sjungma@eit.uni-kl.de
36312027Sjungma@eit.uni-kl.deprivate:
36412027Sjungma@eit.uni-kl.de
36512027Sjungma@eit.uni-kl.de    // disabled
36612027Sjungma@eit.uni-kl.de    sc_out_rv( const this_type& );
36712027Sjungma@eit.uni-kl.de};
36812027Sjungma@eit.uni-kl.de
36912027Sjungma@eit.uni-kl.de
37012027Sjungma@eit.uni-kl.de// IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
37112027Sjungma@eit.uni-kl.de
37212027Sjungma@eit.uni-kl.de} // namespace sc_core
37312027Sjungma@eit.uni-kl.de
37412027Sjungma@eit.uni-kl.de//$Log: sc_signal_rv_ports.h,v $
37512027Sjungma@eit.uni-kl.de//Revision 1.3  2011/08/26 20:45:44  acg
37612027Sjungma@eit.uni-kl.de// Andy Goodrich: moved the modification log to the end of the file to
37712027Sjungma@eit.uni-kl.de// eliminate source line number skew when check-ins are done.
37812027Sjungma@eit.uni-kl.de//
37912027Sjungma@eit.uni-kl.de//Revision 1.2  2011/02/18 20:23:45  acg
38012027Sjungma@eit.uni-kl.de// Andy Goodrich: Copyright update.
38112027Sjungma@eit.uni-kl.de//
38212027Sjungma@eit.uni-kl.de//Revision 1.1.1.1  2006/12/15 20:20:04  acg
38312027Sjungma@eit.uni-kl.de//SystemC 2.3
38412027Sjungma@eit.uni-kl.de//
38512027Sjungma@eit.uni-kl.de//Revision 1.2  2006/01/03 23:18:27  acg
38612027Sjungma@eit.uni-kl.de//Changed copyright to include 2006.
38712027Sjungma@eit.uni-kl.de//
38812027Sjungma@eit.uni-kl.de//Revision 1.1.1.1  2005/12/19 23:16:43  acg
38912027Sjungma@eit.uni-kl.de//First check in of SystemC 2.1 into its own archive.
39012027Sjungma@eit.uni-kl.de//
39112027Sjungma@eit.uni-kl.de//Revision 1.11  2005/09/15 23:01:52  acg
39212027Sjungma@eit.uni-kl.de//Added std:: prefix to appropriate methods and types to get around
39312027Sjungma@eit.uni-kl.de//issues with the Edison Front End.
39412027Sjungma@eit.uni-kl.de//
39512027Sjungma@eit.uni-kl.de//Revision 1.10  2005/06/10 22:43:56  acg
39612027Sjungma@eit.uni-kl.de//Added CVS change log annotation.
39712027Sjungma@eit.uni-kl.de//
39812027Sjungma@eit.uni-kl.de
39912027Sjungma@eit.uni-kl.de#endif
40012027Sjungma@eit.uni-kl.de
40112027Sjungma@eit.uni-kl.de// Taf!
402