SystemC Library API Reference Manual
Reference documentation for the Simics SystemC Library.
 
Loading...
Searching...
No Matches
sc_export_connection.h
Go to the documentation of this file.
1/*
2 © 2015 Intel Corporation
3
4 This software and the related documents are Intel copyrighted materials, and
5 your use of them is governed by the express license under which they were
6 provided to you ("License"). Unless the License provides otherwise, you may
7 not use, modify, copy, publish, distribute, disclose or transmit this software
8 or the related documents without Intel's prior written permission.
9
10 This software and the related documents are provided as is, with no express or
11 implied warranties, other than those that are expressly stated in the License.
12*/
13
14#ifndef SIMICS_SYSTEMC_AWARENESS_SC_EXPORT_CONNECTION_H
15#define SIMICS_SYSTEMC_AWARENESS_SC_EXPORT_CONNECTION_H
16
17
18
19#include <systemc>
22
23#include <map>
24#include <set>
25#include <string>
26#include <utility>
27#include <vector>
28
29namespace simics {
30namespace systemc {
31namespace awareness {
32
39 public:
40 typedef std::pair<sc_core::sc_interface *, std::string> keytype;
41 typedef std::vector<sc_core::sc_export_base *> valuetype;
42
44 void init(sc_core::sc_object *object,
45 iface::SimulationInterface *simulation);
46 conf_object_t *export_to_proxy() override;
47 const char *if_typename() override;
48 void insertKey(keytype key);
49 static std::vector<sc_core::sc_export_base *> findExport(keytype key);
50 static void addBinderExport(const keytype &key,
51 sc_core::sc_export_base *obj);
52 static void removeBinderExport(keytype key, sc_core::sc_export_base *obj);
54
55 protected:
56 static std::map<keytype, valuetype> exports_;
57
58 private:
59 int countLevels(sc_core::sc_object *object);
60 bool isPartOfModule(sc_core::sc_object *object);
61 std::set<keytype> keys_;
62 sc_core::sc_export_base *base_;
63 sc_core::sc_interface *iface_;
64 int levels_;
65 iface::SimulationInterface *simulation_;
66};
67
68} // namespace awareness
69} // namespace systemc
70} // namespace simics
71
72#endif
Definition: sc_export_connection.h:38
std::vector< sc_core::sc_export_base * > valuetype
Definition: sc_export_connection.h:41
conf_object_t * export_to_proxy() override
static void removeBinderExport(keytype key, sc_core::sc_export_base *obj)
std::pair< sc_core::sc_interface *, std::string > keytype
Definition: sc_export_connection.h:40
static std::map< keytype, valuetype > exports_
Definition: sc_export_connection.h:56
static void addBinderExport(const keytype &key, sc_core::sc_export_base *obj)
void init(sc_core::sc_object *object, iface::SimulationInterface *simulation)
static std::vector< sc_core::sc_export_base * > findExport(keytype key)
Definition: sc_export_interface.h:26
Interface to the SystemC simulation.
Definition: simulation_interface.h:25
Definition: adapter.h:79