00001 #ifndef MYTHDB_H_
00002 #define MYTHDB_H_
00003
00004 #include <QMap>
00005 #include <QString>
00006 #include <QVariant>
00007 #include "mythbaseexp.h"
00008 #include "mythdbcon.h"
00009 #include "mythdbparams.h"
00010
00011 class MythDBPrivate;
00012 class MDBManager;
00013
00014 class MBASE_PUBLIC MythDB
00015 {
00016 friend class MSqlQuery;
00017 public:
00018 MDBManager *GetDBManager(void);
00019
00020 static QString GetError(const QString &where, const MSqlQuery &query);
00021 static void DBError(const QString &where, const MSqlQuery &query);
00022 static QString DBErrorMessage(const QSqlError &err);
00023
00024 DatabaseParams GetDatabaseParams(void) const;
00025 void SetDatabaseParams(const DatabaseParams ¶ms);
00026
00027 void SetLocalHostname(const QString &name);
00028 QString GetHostName(void) const;
00029
00030 void IgnoreDatabase(bool bIgnore);
00031 bool IsDatabaseIgnored(void) const;
00032
00033 void SetSuppressDBMessages(bool bUpgraded);
00034 bool SuppressDBMessages(void) const;
00035
00036 void ClearSettingsCache(const QString &key = QString());
00037 void ActivateSettingsCache(bool activate = true);
00038 void OverrideSettingForSession(const QString &key, const QString &newValue);
00039 void ClearOverrideSettingForSession(const QString &key);
00040
00041 void SaveSetting(const QString &key, int newValue);
00042 void SaveSetting(const QString &key, const QString &newValue);
00043 bool SaveSettingOnHost(const QString &key, const QString &newValue,
00044 const QString &host);
00045 bool ClearSetting(const QString &key);
00046 bool ClearSettingOnHost(const QString &key, const QString &host);
00047
00048 bool GetSettings(QMap<QString,QString> &_key_value_pairs);
00049
00050 QString GetSetting( const QString &key, const QString &defaultval);
00051 int GetNumSetting( const QString &key, int defaultval);
00052 double GetFloatSetting(const QString &key, double defaultval);
00053
00054 QString GetSetting( const QString &key);
00055 int GetNumSetting( const QString &key);
00056 double GetFloatSetting(const QString &key);
00057
00058 QString GetSettingOnHost(
00059 const QString &key, const QString &host, const QString &defaultval);
00060 int GetNumSettingOnHost(
00061 const QString &key, const QString &host, int defaultval);
00062 double GetFloatSettingOnHost(
00063 const QString &key, const QString &host, double defaultval);
00064
00065 QString GetSettingOnHost( const QString &key, const QString &host);
00066 int GetNumSettingOnHost( const QString &key, const QString &host);
00067 double GetFloatSettingOnHost(const QString &key, const QString &host);
00068
00069 void GetResolutionSetting(const QString &type, int &width, int &height,
00070 double& forced_aspect, double &refreshrate,
00071 int index=-1);
00072 void GetResolutionSetting(const QString &type, int &width, int &height,
00073 int index=-1);
00074
00075 void WriteDelayedSettings(void);
00076
00077 void SetHaveDBConnection(bool connected);
00078 void SetHaveSchema(bool schema);
00079 bool HaveSchema(void) const;
00080 bool HaveValidDatabase(void) const;
00081
00082 static MythDB *getMythDB();
00083 static void destroyMythDB();
00084 static QString toCommaList(const QMap<QString, QVariant> &bindings,
00085 uint indent = 0, uint softMaxColumn = 80);
00086
00087 protected:
00088 MythDB();
00089 ~MythDB();
00090
00091 private:
00092 MythDBPrivate *d;
00093 };
00094
00095 MBASE_PUBLIC MythDB *GetMythDB();
00096 MBASE_PUBLIC void DestroyMythDB();
00097
00098 #endif