80 TransactionMap::iterator it;
81 TransactionMap::iterator exp;
84 std::lock_guard<std::mutex> lock(slaveMtx_);
86 if ((it = tranMap_.find(index)) != tranMap_.end()) {
94 for (it = tranMap_.begin(); it != tranMap_.end(); ++it) {
95 if (it->second->expired())
98 it->second->refreshTimer(ret);
103 if (exp != tranMap_.end()) {
165void rim::Slave::setup_python() {
167 bp::class_<rim::SlaveWrap, rim::SlaveWrapPtr, boost::noncopyable>(
"Slave", bp::init<uint32_t, uint32_t>())
168 .def(
"setName", &rim::Slave::setName)
169 .def(
"_addTransaction", &rim::Slave::addTransaction)
170 .def(
"_getTransaction", &rim::Slave::getTransaction)
171 .def(
"_doMinAccess", &rim::Slave::doMinAccess, &rim::SlaveWrap::defDoMinAccess)
172 .def(
"_doMaxAccess", &rim::Slave::doMaxAccess, &rim::SlaveWrap::defDoMaxAccess)
173 .def(
"_doAddress", &rim::Slave::doAddress, &rim::SlaveWrap::defDoAddress)
174 .def(
"_doTransaction", &rim::Slave::doTransaction, &rim::SlaveWrap::defDoTransaction)
175 .def(
"__lshift__", &rim::Slave::lshiftPy)
176 .def(
"_stop", &rim::Slave::stop);
270void rim::Slave::lshiftPy(boost::python::object p) {
274 boost::python::extract<rim::MasterPtr> get_master(p);
277 if (get_master.check()) {
281 }
else if (PyObject_HasAttrString(p.ptr(),
"_getMemoryMaster")) {
283 boost::python::extract<rim::MasterPtr> get_master(p.attr(
"_getMemoryMaster")());
286 if (get_master.check()) mst = get_master();
291 mst->setSlave(shared_from_this());
294 "Attempt to use << operator with incompatible memory master"));