17 #ifndef _SYSC_SCC_CCI_BROKER_H_
18 #define _SYSC_SCC_CCI_BROKER_H_
20 #include <cci_utils/broker.h>
23 #include <unordered_map>
24 #include <unordered_set>
29 std::unordered_set<std::string> expose;
32 cci::cci_broker_if& m_parent;
34 cci::cci_broker_if& get_parent_broker() {
35 if(sc_core::sc_get_current_object()) {
37 return unwrap_broker(cci::cci_get_broker());
45 bool sendToParent(
const std::string& parname)
const;
47 void insert_matching_preset_value(
const std::string& parname);
49 struct wildcard_entry {
52 cci::cci_originator originator;
54 std::unordered_map<std::string, wildcard_entry> wildcard_presets;
55 std::unordered_map<std::string, std::regex> wildcard_locks;
58 cci::cci_originator get_value_origin(
const std::string& parname)
const override;
64 bool has_preset_value(
const std::string& parname)
const override;
66 cci::cci_originator get_preset_value_origin(
const std::string& parname)
const override;
68 cci::cci_value get_preset_cci_value(
const std::string& parname)
const override;
88 void set_preset_cci_value(
const std::string& parname,
const cci::cci_value& cci_value,
const cci::cci_originator& originator)
override;
112 cci::cci_value get_cci_value(
const std::string& parname,
const cci::cci_originator& originator = cci::cci_originator())
const override;
114 cci::cci_param_untyped_handle get_param_handle(
const std::string& parname,
const cci::cci_originator& originator)
const override;
116 std::vector<cci::cci_param_untyped_handle> get_param_handles(
const cci::cci_originator& originator)
const override;
118 void add_param(cci::cci_param_if* par)
override;
120 void remove_param(cci::cci_param_if* par)
override;
122 bool is_global_broker()
const override;
void lock_preset_value(const std::string &parname) override
Lock a parameter's preset value.
void set_preset_cci_value(const std::string &parname, const cci::cci_value &cci_value, const cci::cci_originator &originator) override
Set a parameter's preset value.