int Kontener::FindRoadId(Droga* droga) { unsigned int i; for(i=0;i<itsDrogi.size();i++) { if(itsDrogi[i]==*droga) return i; }; throw(ObjectNotFound("FindRoadId(Droga* droga)")); };
void Channel::unsubscribe(const std::string& subscriberName) { //epics::pvData::Lock lock(subscriberMutex); boost::python::object pySubscriber = subscriberMap[subscriberName]; std::map<std::string,boost::python::object>::const_iterator iterator = subscriberMap.find(subscriberName); if (iterator == subscriberMap.end()) { throw ObjectNotFound("Subscriber " + subscriberName + " is not registered."); } subscriberMap.erase(subscriberName); logger.trace("Unsubscribed monitor " + subscriberName); }
void genModuleInfo(Module *m) { //printf("Module::genmoduleinfo() %s\n", m->toChars()); if (!Module::moduleinfo) { ObjectNotFound(Id::ModuleInfo); } Symbol *msym = toSymbol(m); ////////////////////////////////////////////// m->csym->Sclass = SCglobal; m->csym->Sfl = FLdata; dt_t *dt = NULL; ClassDeclarations aclasses; //printf("members->dim = %d\n", members->dim); for (size_t i = 0; i < m->members->dim; i++) { Dsymbol *member = (*m->members)[i]; //printf("\tmember '%s'\n", member->toChars()); member->addLocalClass(&aclasses); } // importedModules[] size_t aimports_dim = m->aimports.dim; for (size_t i = 0; i < m->aimports.dim; i++) { Module *mod = m->aimports[i]; if (!mod->needmoduleinfo) aimports_dim--; } FuncDeclaration *sgetmembers = m->findGetMembers(); // These must match the values in druntime/src/object_.d #define MIstandalone 0x4 #define MItlsctor 0x8 #define MItlsdtor 0x10 #define MIctor 0x20 #define MIdtor 0x40 #define MIxgetMembers 0x80 #define MIictor 0x100 #define MIunitTest 0x200 #define MIimportedModules 0x400 #define MIlocalClasses 0x800 #define MIname 0x1000 unsigned flags = 0; if (!m->needmoduleinfo) flags |= MIstandalone; if (m->sctor) flags |= MItlsctor; if (m->sdtor) flags |= MItlsdtor; if (m->ssharedctor) flags |= MIctor; if (m->sshareddtor) flags |= MIdtor; if (sgetmembers) flags |= MIxgetMembers; if (m->sictor) flags |= MIictor; if (m->stest) flags |= MIunitTest; if (aimports_dim) flags |= MIimportedModules; if (aclasses.dim) flags |= MIlocalClasses; flags |= MIname; dtdword(&dt, flags); // _flags dtdword(&dt, 0); // _index if (flags & MItlsctor) dtxoff(&dt, m->sctor, 0, TYnptr); if (flags & MItlsdtor) dtxoff(&dt, m->sdtor, 0, TYnptr); if (flags & MIctor) dtxoff(&dt, m->ssharedctor, 0, TYnptr); if (flags & MIdtor) dtxoff(&dt, m->sshareddtor, 0, TYnptr); if (flags & MIxgetMembers) dtxoff(&dt, toSymbol(sgetmembers), 0, TYnptr); if (flags & MIictor) dtxoff(&dt, m->sictor, 0, TYnptr); if (flags & MIunitTest) dtxoff(&dt, m->stest, 0, TYnptr); if (flags & MIimportedModules) { dtsize_t(&dt, aimports_dim); for (size_t i = 0; i < m->aimports.dim; i++) { Module *mod = m->aimports[i]; if (!mod->needmoduleinfo) continue; Symbol *s = toSymbol(mod); /* Weak references don't pull objects in from the library, * they resolve to 0 if not pulled in by something else. * Don't pull in a module just because it was imported. */ s->Sflags |= SFLweak; dtxoff(&dt, s, 0, TYnptr); } } if (flags & MIlocalClasses) { dtsize_t(&dt, aclasses.dim); for (size_t i = 0; i < aclasses.dim; i++) { ClassDeclaration *cd = aclasses[i]; dtxoff(&dt, toSymbol(cd), 0, TYnptr); } } if (flags & MIname) { // Put out module name as a 0-terminated string, to save bytes m->nameoffset = dt_size(dt); const char *name = m->toPrettyChars(); m->namelen = strlen(name); dtnbytes(&dt, m->namelen + 1, name); //printf("nameoffset = x%x\n", nameoffset); } objc_Module_genmoduleinfo_classes(); m->csym->Sdt = dt; out_readonly(m->csym); outdata(m->csym); ////////////////////////////////////////////// objmod->moduleinfo(msym); }