Lines Matching refs:self

800             def __init__(self, sig, template_params=[]):
819 self._warned_about_nested_templates:
820 self._warned_about_nested_templates = True
838 self.namespaces = class_path[:-1]
840 self.name = class_path[-1]
842 self.template_params = template_params
843 self.template_arguments = []
851 self.template_arguments.append(CxxClass(arg))
853 self.template_arguments.append(arg)
855 def declare(self, code):
857 for arg in self.template_arguments:
861 for ns in self.namespaces:
864 if self.template_params:
865 code('template <${{", ".join(self.template_params)}}>')
867 code('class ${{self.name}};')
869 for ns in reversed(self.namespaces):
972 # Don't include self in the argument list to PyBind
977 def cxx_call(self, *args, **kwargs):
978 ccobj = self.getCCClass() if static else self.getCCObject()
982 def py_call(self, *args, **kwargs):
983 return func(self, *args, **kwargs)
1003 def __init__(self, type, desc, type_str, example, default_val, access_str):
1004 self.type = type
1005 self.desc = desc
1006 self.type_str = type_str
1007 self.example_str = example
1008 self.default_val = default_val
1012 self.access_str = access_str
1013 self.created = True
1017 def __setattr__(self, name, value):
1018 if not "created" in self.__dict__:
1019 self.__dict__[name] = value
1022 def __init__(self, message):
1023 super(Exception, self).__init__(message)
1036 def __init__(self, sim_objects):
1037 self.__dict__['_sim_objects'] = list(sim_objects)
1039 def __getattr__(self, key):
1041 for sim_object in self._sim_objects)
1043 def __setattr__(self, key, val):
1044 for sim_object in self._sim_objects:
1057 def __getitem__(self, idx):
1065 out.extend(self[t]._sim_objects)
1072 for sim_object in self._sim_objects:
1107 def loadState(self, cp):
1115 def enumerateParams(self, flags_dict = {},
1117 if hasattr(self, "_paramEnumed"):
1120 self._paramEnumed = True
1122 for keys in self._children:
1123 child = self._children[keys]
1137 for keys,values in self._params.items():
1149 if keys in self._hr_values\
1150 and keys in self._values\
1151 and not isinstance(self._values[keys],
1156 self._params[keys].desc, type_str, ex_str,
1157 values.pretty_print(self._hr_values[keys]),
1159 elif not keys in self._hr_values\
1160 and not keys in self._values:
1165 self._params[keys].desc,
1177 def __init__(self, **kwargs):
1185 memo_dict[ancestor] = self
1188 ancestor = self.__class__
1192 self._parent = None
1193 self._name = None
1194 self._ccObject = None # pointer to C++ object
1195 self._ccParams = None
1196 self._instantiated = False # really "cloned"
1202 self._children = {}
1204 self.add_child(key, val(_memo=memo_dict))
1209 self._values = multidict(ancestor._values)
1210 self._hr_values = multidict(ancestor._hr_values)
1215 self._values[key] = val(_memo=memo_dict)
1219 self._port_refs = {}
1221 self._port_refs[key] = val.clone(self, memo_dict)
1224 setattr(self, key, val)
1231 def __call__(self, **kwargs):
1236 if self._parent:
1239 % (self, self._parent))
1243 elif self in memo_dict:
1245 return memo_dict[self]
1246 return self.__class__(_ancestor = self, **kwargs)
1248 def _get_port_ref(self, attr):
1252 ref = self._port_refs.get(attr)
1254 ref = self._ports[attr].makeRef(self)
1255 self._port_refs[attr] = ref
1258 def __getattr__(self, attr):
1259 if attr in self._ports:
1260 return self._get_port_ref(attr)
1262 if attr in self._values:
1263 return self._values[attr]
1265 if attr in self._children:
1266 return self._children[attr]
1271 if self._ccObject and hasattr(self._ccObject, attr):
1272 return getattr(self._ccObject, attr)
1275 % (self.__class__.__name__, attr)
1277 if not self._ccObject:
1285 def __setattr__(self, attr, value):
1288 object.__setattr__(self, attr, value)
1291 if attr in self._ports:
1293 self._get_port_ref(attr).connect(value)
1296 param = self._params.get(attr)
1303 (e, self.__class__.__name__, attr, value)
1306 self._values[attr] = value
1309 self.add_child(attr, value)
1315 self._hr_values[attr] = hr_value
1321 self.add_child(attr, value)
1326 % (self.__class__.__name__, attr))
1331 def __getitem__(self, key):
1333 return self
1339 def __len__(self):
1343 def clear_parent(self, old_parent):
1344 assert self._parent is old_parent
1345 self._parent = None
1348 def set_parent(self, parent, name):
1349 self._parent = parent
1350 self._name = name
1355 def get_parent(self):
1356 return self._parent
1359 def get_name(self):
1360 return self._name
1363 def has_parent(self):
1364 return self._parent is not None
1368 def clear_child(self, name):
1369 child = self._children[name]
1370 child.clear_parent(self)
1371 del self._children[name]
1374 def add_child(self, name, child):
1379 if name in self._children:
1384 self.clear_child(name)
1385 child.set_parent(self, name)
1387 self._children[name] = child
1394 def adoptOrphanParams(self):
1395 for key,val in self._values.items():
1400 self._values[key] = val
1402 warn("%s adopting orphan SimObject param '%s'", self, key)
1403 self.add_child(key, val)
1405 def path(self):
1406 if not self._parent:
1407 return '<orphan %s>' % self.__class__
1408 elif isinstance(self._parent, MetaSimObject):
1409 return str(self.__class__)
1411 ppath = self._parent.path()
1413 return self._name
1414 return ppath + "." + self._name
1416 def path_list(self):
1417 if self._parent:
1418 return self._parent.path_list() + [ self._name, ]
1423 def __str__(self):
1424 return self.path()
1426 def config_value(self):
1427 return self.path()
1429 def ini_str(self):
1430 return self.path()
1432 def find_any(self, ptype):
1433 if isinstance(self, ptype):
1434 return self, True
1437 for child in self._children.values():
1449 for pname,pdesc in self._params.items():
1451 match_obj = self._values[pname]
1459 def find_all(self, ptype):
1462 for child in self._children.values():
1478 for pname,pdesc in self._params.items():
1480 match_obj = self._values[pname]
1487 def unproxy(self, base):
1488 return self
1490 def unproxyParams(self):
1491 for param in self._params.keys():
1492 value = self._values.get(param)
1495 value = value.unproxy(self)
1498 (param, self.path()))
1500 setattr(self, param, value)
1504 port_names = list(self._ports.keys())
1507 port = self._port_refs.get(port_name)
1509 port.unproxy(self)
1511 def print_ini(self, ini_file):
1512 print('[' + self.path() + ']', file=ini_file) # .ini section header
1514 instanceDict[self.path()] = self
1516 if hasattr(self, 'type'):
1517 print('type=%s' % self.type, file=ini_file)
1519 if len(self._children.keys()):
1521 ' '.join(self._children[n].get_name()
1522 for n in sorted(self._children.keys())),
1525 for param in sorted(self._params.keys()):
1526 value = self._values.get(param)
1528 print('%s=%s' % (param, self._values[param].ini_str()),
1531 for port_name in sorted(self._ports.keys()):
1532 port = self._port_refs.get(port_name, None)
1541 def get_config_as_dict(self):
1543 if hasattr(self, 'type'):
1544 d.type = self.type
1545 if hasattr(self, 'cxx_class'):
1546 d.cxx_class = self.cxx_class
1549 d.name = self.get_name()
1550 d.path = self.path()
1552 for param in sorted(self._params.keys()):
1553 value = self._values.get(param)
1557 for n in sorted(self._children.keys()):
1558 child = self._children[n]
1564 for port_name in sorted(self._ports.keys()):
1565 port = self._port_refs.get(port_name, None)
1573 def getCCParams(self):
1574 if self._ccParams:
1575 return self._ccParams
1577 cc_params_struct = getattr(m5.internal.params, '%sParams' % self.type)
1579 cc_params.name = str(self)
1581 param_names = list(self._params.keys())
1584 value = self._values.get(param)
1587 self.path(), param)
1590 if isinstance(self._params[param], VectorParamDesc):
1605 port_names = list(self._ports.keys())
1608 port = self._port_refs.get(port_name, None)
1615 self._ccParams = cc_params
1616 return self._ccParams
1621 def getCCObject(self):
1622 if not self._ccObject:
1624 if not self._parent and not isRoot(self):
1628 self._ccObject = -1
1629 if not self.abstract:
1630 params = self.getCCParams()
1631 self._ccObject = params.create()
1632 elif self._ccObject == -1:
1634 % self.path())
1635 return self._ccObject
1637 def descendants(self):
1638 yield self
1642 for (name, child) in sorted(self._children.items()):
1647 def createCCObject(self):
1648 self.getCCParams()
1649 self.getCCObject() # force creation
1651 def getValue(self):
1652 return self.getCCObject()
1655 def getPort(self, if_name, idx):
1660 def connectPorts(self):
1663 for (attr, portRef) in sorted(self._port_refs.items()):
1668 def generateDeviceTree(self, state):
1672 def recurseDeviceTree(self, state):
1673 for child in self._children.values():
1681 def _apply_config_get_dict(self):
1684 iter(self._children[child_name]))
1685 for child_name in self._children
1688 def apply_config(self, params):
1698 d = self._apply_config_get_dict()