30#ifndef SC_WRITER_POLICY_H_INCLUDED_
31#define SC_WRITER_POLICY_H_INCLUDED_
33#if !defined(SC_DEFAULT_WRITER_POLICY)
34# if defined(SC_NO_WRITE_CHECK)
35# define SC_DEFAULT_WRITER_POLICY SC_UNCHECKED_WRITERS
37# define SC_DEFAULT_WRITER_POLICY SC_ONE_WRITER
43#if defined(_MSC_VER) && _MSC_VER < 1800
45# pragma warning(disable:4512)
55 sc_object* second_writer,
bool check_delta );
71template< sc_writer_policy >
84 bool check_write(
sc_object* target,
bool value_changed );
89 static bool only_delta();
93 : m_delta_only( delta_only ), m_writer_p() {}
150#if defined(_MSC_VER) && _MSC_VER < 1800
SC_API void sc_signal_invalid_writer(sc_object *target, sc_object *first_writer, sc_object *second_writer, bool check_delta)
class SC_API sc_port_base
@ SC_ONE_WRITER
unique writer (from a unique port)
@ SC_UNCHECKED_WRITERS
even allow delta cycle conflicts (non-standard)
@ SC_MANY_WRITERS
allow multiple writers (with different ports)
bool needs_update() const
bool check_write(sc_object *, bool)
sc_process_handle m_writer_p
sc_writer_policy_check_write(bool delta_only=only_delta())
bool needs_update() const
bool needs_update() const
sc_writer_policy_check_delta()
bool check_port(sc_object *, sc_port_base *, bool)
sc_writer_policy_check_port()
bool check_port(sc_object *target, sc_port_base *port, bool is_output)
void swap(sc_process_handle &other)