bool CPVRChannelGroup::Persist(void) { bool bReturn(true); const CPVRDatabasePtr database(g_PVRManager.GetTVDatabase()); CSingleLock lock(m_critSection); /* only persist if the group has changes and is fully loaded or never has been saved before */ if (!HasChanges() || (!m_bLoaded && m_iGroupId != -1)) return bReturn; // Mark newly created groups as loaded so future updates will also be persisted... if (m_iGroupId == -1) m_bLoaded = true; if (database) { CLog::Log(LOGDEBUG, "CPVRChannelGroup - %s - persisting channel group '%s' with %d channels", __FUNCTION__, GroupName().c_str(), (int) m_members.size()); m_bChanged = false; lock.Leave(); bReturn = database->Persist(*this); } else { bReturn = false; } return bReturn; }
bool CPVRChannel::Persist() { { // not changed CSingleLock lock(m_critSection); if (!m_bChanged && m_iChannelId > 0) return true; } const CPVRDatabasePtr database(g_PVRManager.GetTVDatabase()); if (database) { bool bReturn = database->Persist(*this) && database->CommitInsertQueries(); CSingleLock lock(m_critSection); m_bChanged = !bReturn; return bReturn; } return false; }
bool CPVRChannel::Persist() { { // not changed CSingleLock lock(m_critSection); if (!m_bChanged && m_iChannelId > 0) return true; } const CPVRDatabasePtr database = CServiceBroker::GetPVRManager().GetTVDatabase(); if (database) { bool bReturn = database->Persist(*this, true); CSingleLock lock(m_critSection); m_bChanged = !bReturn; return bReturn; } return false; }