EntnodeFile::EntnodeFile(const char* /* newfullpath */, const char* newuser, const char* newvn, const char* newts, const char* newoptions, const char* newtag, const char* newdate, const char* newts_conflict, bool renamed, const std::string& newbugno) : EntnodeData(ENT_FILE) { if (newuser && newuser[0]) user = newuser; if (newvn && newvn[0]) vn = newvn; if (newts && newts[0]) ts = newts; if (newoptions && newoptions[0]) option = newoptions; if (newtag && newtag[0]) tag = newtag; if (newdate && newdate[0]) date = newdate; if (newts_conflict && newts_conflict[0]) ts_conflict = newts_conflict; bugnumber = newbugno; if (newvn && newvn[0] == '-') SetRemoved(true); SetRenamed(renamed); }
EntnodeDir::EntnodeDir(const char* newfullpath, const char* newuser, const char* newvn, const char* newts, const char* newoptions, const char* newtag, const char* newdate, const char* newts_conflict) : EntnodeData(ENT_SUBDIR) { if (newuser && newuser[0]) user = newuser; if (newvn && newvn[0] == '-') SetRemoved(true); tagnode = new Tagnode(newfullpath, user.c_str()); }
bool InventoryReference::RemoveFromContainer() { if (Validate() && m_tempRef && m_containerRef) { if (m_data.xData && m_data.xData->IsWorn()) { QueueAction(new DeferredRemoveAction(m_data)); return true; } SetRemoved(); if (m_data.xData) return m_data.entry->Remove(m_data.xData, true); else { ExtraContainerChanges* xcc = (ExtraContainerChanges*)m_containerRef->extraDataList.GetByType(0x015); return xcc->Remove(m_data.type); } } return false; }
void ServiceListeners::RemoveServiceListener(const std::shared_ptr<BundleContextPrivate>& context, ListenerTokenId tokenId, const ServiceListener& listener, void* data) { ServiceListenerEntry sle; { auto l = this->Lock(); US_UNUSED(l); std::function<bool(const ServiceListenerEntry&)> entryExists; if (tokenId) { assert(!listener); assert(data == nullptr); entryExists = [&context, &tokenId](const ServiceListenerEntry& entry) -> bool { return entry.Contains(context, tokenId); }; } else { entryExists = [&context, &listener, &data](const ServiceListenerEntry& entry) -> bool { return entry.Contains(context, listener, data); }; } auto it = std::find_if(serviceSet.begin(), serviceSet.end(), entryExists); if (it != serviceSet.end()) { sle = *it; it->SetRemoved(true); RemoveFromCache_unlocked(*it); serviceSet.erase(it); } } if (!sle.IsNull()) { coreCtx->serviceHooks.HandleServiceListenerUnreg(sle); } }