xbmc
Public Member Functions | List of all members
PVR::CPVRDatabase Class Reference
Inheritance diagram for PVR::CPVRDatabase:
Inheritance graph
[legend]
Collaboration diagram for PVR::CPVRDatabase:
Collaboration graph
[legend]

Public Member Functions

 CPVRDatabase ()=default
 Create a new instance of the PVR database.
 
bool Open () override
 Open the database. More...
 
void Close () override
 Close the database.
 
void Lock ()
 Lock the database.
 
void Unlock ()
 Unlock the database.
 
int GetSchemaVersion () const override
 Get the minimal database version that is required to operate correctly. More...
 
const char * GetBaseDBName () const override
 Get the default sqlite database filename. More...
 
bool UpdateLastOpened (const CPVRChannelGroup &group)
 Updates the last opened timestamp for the channel group. More...
 
Client methods
bool DeleteClients ()
 Remove all client entries from the database. More...
 
bool Persist (const CPVRClient &client)
 Add or update a client entry in the database. More...
 
bool Delete (const CPVRClient &client)
 Remove a client entry from the database. More...
 
int GetPriority (const CPVRClient &client)
 Get the priority for a given client from the database. More...
 
bool UpdateLastWatched (const CPVRChannel &channel)
 Updates the last watched timestamp for the channel. More...
 
bool UpdateLastWatched (const CPVRChannelGroup &group)
 Updates the last watched timestamp for the channel group. More...
 
Channel methods
bool DeleteChannels ()
 Remove all channels from the database. More...
 
int Get (bool bRadio, const std::vector< std::shared_ptr< CPVRClient >> &clients, std::map< std::pair< int, int >, std::shared_ptr< CPVRChannel >> &results) const
 Get channels from the database. More...
 
bool Persist (CPVRChannel &channel, bool bCommit)
 Add or update a channel entry in the database. More...
 
bool QueueDeleteQuery (const CPVRChannel &channel)
 Remove a channel entry from the database. More...
 
Channel group member methods
bool QueueDeleteQuery (const CPVRChannelGroupMember &groupMember)
 Remove a channel group member entry from the database. More...
 
Channel provider methods
bool DeleteProviders ()
 Remove all providers from the database. More...
 
bool Persist (CPVRProvider &provider, bool updateRecord=false)
 Add or update a provider entry in the database. More...
 
bool Delete (const CPVRProvider &provider)
 Remove a provider entry from the database. More...
 
bool Get (CPVRProviders &results, const std::vector< std::shared_ptr< CPVRClient >> &clients) const
 Get the list of providers from the database. More...
 
int GetMaxProviderId ()
 Get the maximum provider id in the database. More...
 
Channel group methods
bool DeleteChannelGroups ()
 Remove all channel groups from the database. More...
 
bool Delete (const CPVRChannelGroup &group)
 Delete a channel group and all its members from the database. More...
 
int Get (CPVRChannelGroups &results) const
 Get the channel groups. More...
 
std::vector< std::shared_ptr< CPVRChannelGroupMember > > Get (const CPVRChannelGroup &group, const std::vector< std::shared_ptr< CPVRClient >> &clients) const
 Get the members of a channel group. More...
 
bool Persist (CPVRChannelGroup &group)
 Add or update a channel group entry in the database. More...
 
bool ResetEPG ()
 Reset all epg ids to 0. More...
 
Timer methods
std::vector< std::shared_ptr< CPVRTimerInfoTag > > GetTimers (CPVRTimers &timers, const std::vector< std::shared_ptr< CPVRClient >> &clients) const
 Get the timers. More...
 
bool Persist (CPVRTimerInfoTag &timer)
 Add or update a timer entry in the database. More...
 
bool Delete (const CPVRTimerInfoTag &timer)
 Remove a timer from the database. More...
 
bool DeleteTimers ()
 Remove all timer entries from the database. More...
 
- Public Member Functions inherited from CDatabase
bool IsOpen ()
 
bool Compress (bool bForce=true)
 
void Interrupt ()
 
bool Open (const DatabaseSettings &db)
 
void BeginTransaction ()
 
virtual bool CommitTransaction ()
 
void RollbackTransaction ()
 
void CopyDB (const std::string &latestDb)
 
void DropAnalytics ()
 
std::string PrepareSQL (std::string strStmt,...) const
 
std::string GetSingleValue (const std::string &strTable, const std::string &strColumn, const std::string &strWhereClause=std::string(), const std::string &strOrderBy=std::string())
 Get a single value from a table. More...
 
std::string GetSingleValue (const std::string &query)
 
std::string GetSingleValue (const std::string &query, std::unique_ptr< dbiplus::Dataset > &ds)
 Get a single value from a query on a dataset. More...
 
int GetSingleValueInt (const std::string &strTable, const std::string &strColumn, const std::string &strWhereClause=std::string(), const std::string &strOrderBy=std::string())
 Get a single integer value from a table. More...
 
int GetSingleValueInt (const std::string &query)
 
int GetSingleValueInt (const std::string &query, std::unique_ptr< dbiplus::Dataset > &ds)
 Get a single integer value from a query on a dataset. More...
 
bool DeleteValues (const std::string &strTable, const Filter &filter=Filter())
 Delete values from a table. More...
 
bool ExecuteQuery (const std::string &strQuery)
 Execute a query that does not return any result. Note that if BeginMultipleExecute() has been called, the query will be queued until CommitMultipleExecute() is called. More...
 
bool ResultQuery (const std::string &strQuery) const
 Execute a query that returns a result. More...
 
bool BeginMultipleExecute ()
 Start a multiple execution queue. Any ExecuteQuery() function following this call will be queued rather than executed until CommitMultipleExecute() is performed. NOTE: Queries that rely on any queued execute query will not function as expected during this period! More...
 
bool CommitMultipleExecute ()
 Commit the multiple execution queue to the database. Queries are performed within a transaction, and the transaction is rolled back should any one query fail. More...
 
bool QueueInsertQuery (const std::string &strQuery)
 Put an INSERT or REPLACE query in the queue. More...
 
bool CommitInsertQueries ()
 Commit all queries in the queue. More...
 
size_t GetInsertQueriesCount ()
 Get the number of INSERT queries in the queue. More...
 
bool QueueDeleteQuery (const std::string &strQuery)
 Put a DELETE query in the queue. More...
 
bool CommitDeleteQueries ()
 Commit all queued DELETE queries. More...
 
size_t GetDeleteQueriesCount ()
 Get the number of DELETE queries in the queue. More...
 
virtual bool GetFilter (CDbUrl &dbUrl, Filter &filter, SortDescription &sorting)
 
virtual bool BuildSQL (const std::string &strBaseDir, const std::string &strQuery, Filter &filter, std::string &strSQL, CDbUrl &dbUrl)
 
virtual bool BuildSQL (const std::string &strBaseDir, const std::string &strQuery, Filter &filter, std::string &strSQL, CDbUrl &dbUrl, SortDescription &sorting)
 
bool Connect (const std::string &dbName, const DatabaseSettings &db, bool create)
 

Additional Inherited Members

- Protected Member Functions inherited from CDatabase
void Split (const std::string &strFileNameAndPath, std::string &strPath, std::string &strFileName)
 
bool CreateDatabase ()
 Create database tables and analytics as needed. Calls CreateTables() and CreateAnalytics() on child classes.
 
int GetDBVersion ()
 
bool BuildSQL (const std::string &strQuery, const Filter &filter, std::string &strSQL)
 
- Protected Attributes inherited from CDatabase
bool m_sqlite
 whether we use sqlite (defaults to true)
 
std::unique_ptr< dbiplus::Databasem_pDB
 
std::unique_ptr< dbiplus::Datasetm_pDS
 
std::unique_ptr< dbiplus::Datasetm_pDS2
 
const CProfileManagerm_profileManager
 

Member Function Documentation

◆ Delete() [1/4]

bool CPVRDatabase::Delete ( const CPVRClient client)

Remove a client entry from the database.

Parameters
clientThe client to remove.
Returns
True if the client was removed, false otherwise.

◆ Delete() [2/4]

bool CPVRDatabase::Delete ( const CPVRProvider provider)

Remove a provider entry from the database.

Parameters
providerThe provider to remove.
Returns
True if the provider was removed, false otherwise.

◆ Delete() [3/4]

bool CPVRDatabase::Delete ( const CPVRChannelGroup group)

Delete a channel group and all its members from the database.

Parameters
groupThe group to delete.
Returns
True if the group was deleted successfully, false otherwise.

◆ Delete() [4/4]

bool CPVRDatabase::Delete ( const CPVRTimerInfoTag timer)

Remove a timer from the database.

Parameters
timerThe timer to remove.
Returns
True if the timer was removed, false otherwise.

◆ DeleteChannelGroups()

bool CPVRDatabase::DeleteChannelGroups ( )

Remove all channel groups from the database.

Returns
True if all channel groups were removed.

◆ DeleteChannels()

bool CPVRDatabase::DeleteChannels ( )

Remove all channels from the database.

Returns
True if all channels were removed, false otherwise.

◆ DeleteClients()

bool CPVRDatabase::DeleteClients ( )

Remove all client entries from the database.

Returns
True if all client entries were removed, false otherwise.

◆ DeleteProviders()

bool CPVRDatabase::DeleteProviders ( )

Remove all providers from the database.

Returns
True if all providers were removed, false otherwise.

◆ DeleteTimers()

bool CPVRDatabase::DeleteTimers ( )

Remove all timer entries from the database.

Returns
True if all timer entries were removed, false otherwise.

◆ Get() [1/4]

int CPVRDatabase::Get ( bool  bRadio,
const std::vector< std::shared_ptr< CPVRClient >> &  clients,
std::map< std::pair< int, int >, std::shared_ptr< CPVRChannel >> &  results 
) const

Get channels from the database.

Parameters
bRadioWhether to fetch radio or TV channels.
clientsThe PVR clients the channels should be loaded for. Leave empty for all clients.
resultsThe container for the channels.
Returns
The number of channels loaded.

◆ Get() [2/4]

bool CPVRDatabase::Get ( CPVRProviders results,
const std::vector< std::shared_ptr< CPVRClient >> &  clients 
) const

Get the list of providers from the database.

Parameters
resultsThe providers to store the results in.
clientsThe PVR clients the providers should be loaded for. Leave empty for all clients.
Returns
The amount of providers that were added.

◆ Get() [3/4]

int CPVRDatabase::Get ( CPVRChannelGroups results) const

Get the channel groups.

Parameters
resultsThe container to store the results in.
Returns
The number of groups loaded.

◆ Get() [4/4]

std::vector< std::shared_ptr< CPVRChannelGroupMember > > CPVRDatabase::Get ( const CPVRChannelGroup group,
const std::vector< std::shared_ptr< CPVRClient >> &  clients 
) const

Get the members of a channel group.

Parameters
groupThe group to get the members for.
clientsThe PVR clients the group members should be loaded for. Leave empty for all clients.
Returns
The group members.

◆ GetBaseDBName()

const char* PVR::CPVRDatabase::GetBaseDBName ( ) const
inlineoverridevirtual

Get the default sqlite database filename.

Returns
The default filename.

Implements CDatabase.

◆ GetMaxProviderId()

int CPVRDatabase::GetMaxProviderId ( )

Get the maximum provider id in the database.

Returns
The maximum provider id in the database

◆ GetPriority()

int CPVRDatabase::GetPriority ( const CPVRClient client)

Get the priority for a given client from the database.

Parameters
clientThe client.
Returns
The priority.

◆ GetSchemaVersion()

int PVR::CPVRDatabase::GetSchemaVersion ( ) const
inlineoverridevirtual

Get the minimal database version that is required to operate correctly.

Returns
The minimal database version.

Implements CDatabase.

◆ GetTimers()

std::vector< std::shared_ptr< CPVRTimerInfoTag > > CPVRDatabase::GetTimers ( CPVRTimers timers,
const std::vector< std::shared_ptr< CPVRClient >> &  clients 
) const

Get the timers.

Parameters
timersThe container for the timers.
clientsThe PVR clients the timers should be loaded for. Leave empty for all clients.
Returns
The timers.

◆ Open()

bool CPVRDatabase::Open ( )
overridevirtual

Open the database.

Returns
True if it was opened successfully, false otherwise.

Reimplemented from CDatabase.

◆ Persist() [1/5]

bool CPVRDatabase::Persist ( const CPVRClient client)

Add or update a client entry in the database.

Parameters
clientThe client to persist.
Returns
True when persisted, false otherwise.

◆ Persist() [2/5]

bool CPVRDatabase::Persist ( CPVRChannel channel,
bool  bCommit 
)

Add or update a channel entry in the database.

Parameters
channelThe channel to persist.
bCommitqueue only or queue and commit
Returns
True when persisted or queued, false otherwise.

◆ Persist() [3/5]

bool CPVRDatabase::Persist ( CPVRProvider provider,
bool  updateRecord = false 
)

Add or update a provider entry in the database.

Parameters
providerThe provider to persist.
updateRecordTrue if record to be updated, false for insert
Returns
True when persisted, false otherwise.

◆ Persist() [4/5]

bool CPVRDatabase::Persist ( CPVRChannelGroup group)

Add or update a channel group entry in the database.

Parameters
groupThe group to persist.
Returns
True if the group was persisted successfully, false otherwise.

◆ Persist() [5/5]

bool CPVRDatabase::Persist ( CPVRTimerInfoTag timer)

Add or update a timer entry in the database.

Parameters
channelThe timer to persist.
Returns
True if persisted, false otherwise.

◆ QueueDeleteQuery() [1/2]

bool CPVRDatabase::QueueDeleteQuery ( const CPVRChannel channel)

Remove a channel entry from the database.

Parameters
channelThe channel to remove.
Returns
True if the channel was removed, false otherwise.

◆ QueueDeleteQuery() [2/2]

bool CPVRDatabase::QueueDeleteQuery ( const CPVRChannelGroupMember groupMember)

Remove a channel group member entry from the database.

Parameters
groupMemberThe group member to remove.
Returns
True if the member was removed, false otherwise.

◆ ResetEPG()

bool CPVRDatabase::ResetEPG ( )

Reset all epg ids to 0.

Returns
True when reset, false otherwise.

◆ UpdateLastOpened()

bool CPVRDatabase::UpdateLastOpened ( const CPVRChannelGroup group)

Updates the last opened timestamp for the channel group.

Parameters
groupthe group
Returns
whether the update was successful

◆ UpdateLastWatched() [1/2]

bool CPVRDatabase::UpdateLastWatched ( const CPVRChannel channel)

Updates the last watched timestamp for the channel.

Parameters
channelthe channel
Returns
whether the update was successful

◆ UpdateLastWatched() [2/2]

bool CPVRDatabase::UpdateLastWatched ( const CPVRChannelGroup group)

Updates the last watched timestamp for the channel group.

Parameters
groupthe group
Returns
whether the update was successful

The documentation for this class was generated from the following files: