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

Public Member Functions

bool Open () override
 
bool GetCachedTexture (const std::string &originalURL, CTextureDetails &details)
 
bool AddCachedTexture (const std::string &originalURL, const CTextureDetails &details)
 
bool SetCachedTextureValid (const std::string &originalURL, bool updateable)
 
bool ClearCachedTexture (const std::string &originalURL, std::string &cacheFile)
 
bool ClearCachedTexture (int textureID, std::string &cacheFile)
 
bool IncrementUseCount (const CTextureDetails &details)
 
bool InvalidateCachedTexture (const std::string &originalURL)
 Invalidate a previously cached texture Invalidates the texture hash, and sets the texture update time to the current time so that next texture load it will be re-cached. More...
 
std::string GetTextureForPath (const std::string &url, const std::string &type)
 Get a texture associated with the given path Used for retrieval of previously discovered images to save stat() on the filesystem all the time. More...
 
void SetTextureForPath (const std::string &url, const std::string &type, const std::string &texture)
 Set a texture associated with the given path Used for setting of previously discovered images to save stat() on the filesystem all the time. Should be used to set the actual image path, not the cached image path (the image will be cached at load time.) More...
 
void ClearTextureForPath (const std::string &url, const std::string &type)
 Clear a texture associated with the given path. More...
 
bool GetTextures (CVariant &items, const Filter &filter)
 
CDatabaseQueryRuleCreateRule () const override
 
CDatabaseQueryRuleCombinationCreateCombination () const override
 
- Public Member Functions inherited from CDatabase
bool IsOpen ()
 
virtual void Close ()
 
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)
 

Protected Member Functions

unsigned int GetURLHash (const std::string &url) const
 retrieve a hash for the given url Computes a hash of the current url to use for lookups in the database More...
 
void CreateTables () override
 
void CreateAnalytics () override
 
void UpdateTables (int version) override
 
int GetSchemaVersion () const override
 
const char * GetBaseDBName () const override
 
- 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.
 
virtual int GetMinSchemaVersion () const
 
int GetDBVersion ()
 
bool BuildSQL (const std::string &strQuery, const Filter &filter, std::string &strSQL)
 

Additional Inherited Members

- 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

◆ ClearTextureForPath()

void CTextureDatabase::ClearTextureForPath ( const std::string &  url,
const std::string &  type 
)

Clear a texture associated with the given path.

Parameters
urlpath that was used to find the texture
typetype of image to associate
textureURL of the texture to associate with the path
See also
GetTextureForPath, SetTextureForPath

◆ CreateAnalytics()

void CTextureDatabase::CreateAnalytics ( )
overrideprotectedvirtual
Todo:
Should the path index be a covering index? (we need only retrieve texture)

Implements CDatabase.

◆ GetTextureForPath()

std::string CTextureDatabase::GetTextureForPath ( const std::string &  url,
const std::string &  type 
)

Get a texture associated with the given path Used for retrieval of previously discovered images to save stat() on the filesystem all the time.

Parameters
urlpath that may be associated with a texture
typetype of image to look for
Returns
URL of the texture associated with the given path

◆ GetURLHash()

unsigned int CTextureDatabase::GetURLHash ( const std::string &  url) const
protected

retrieve a hash for the given url Computes a hash of the current url to use for lookups in the database

Parameters
urlurl to hash
Returns
a hash for this url

◆ InvalidateCachedTexture()

bool CTextureDatabase::InvalidateCachedTexture ( const std::string &  originalURL)

Invalidate a previously cached texture Invalidates the texture hash, and sets the texture update time to the current time so that next texture load it will be re-cached.

Parameters
urltexture path

◆ SetTextureForPath()

void CTextureDatabase::SetTextureForPath ( const std::string &  url,
const std::string &  type,
const std::string &  texture 
)

Set a texture associated with the given path Used for setting of previously discovered images to save stat() on the filesystem all the time. Should be used to set the actual image path, not the cached image path (the image will be cached at load time.)

Parameters
urlpath that was used to find the texture
typetype of image to associate
textureURL of the texture to associate with the path

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