// DEALINGS IN THE SOFTWARE.
#include "Resource.h"
+#include "Util.h"
#ifdef HAVE_CONFIG_H
# include "../config.h"
# include <stdio.h>
#endif // HAVE_STDIO_H
-#include <assert.h>
+bool Resource::m_initialized = false;
-obResource::obResource(const std::string &file) {
+Resource::Resource(const std::string &file) {
setFile(file);
m_modified = false;
m_database = NULL;
m_autosave = true;
+ if (!m_initialized) {
+ XrmInitialize();
+ m_initialized = true;
+ }
}
-obResource::obResource() {
+Resource::Resource() {
m_modified = false;
m_database = NULL;
m_autosave = true;
+ if (!m_initialized) {
+ XrmInitialize();
+ m_initialized = true;
+ }
}
-obResource::~obResource() {
+Resource::~Resource() {
if (m_database != NULL)
XrmDestroyDatabase(m_database);
}
-void obResource::setFile(const std::string &file) {
+void Resource::setFile(const std::string &file) {
m_file = file;
}
-void obResource::setAutoSave(bool autosave) {
+void Resource::setAutoSave(bool autosave) {
m_autosave = autosave;
}
-void obResource::save() {
- assert(m_database != NULL);
+void Resource::save() {
+ ASSERT(m_database != NULL);
XrmPutFileDatabase(m_database, m_file.c_str());
m_modified = false;
}
-bool obResource::load() {
+bool Resource::load() {
if (m_database != NULL)
XrmDestroyDatabase(m_database);
m_modified = false;
return true;
}
-void obResource::setValue(const std::string &rname, bool value) {
- assert(m_database != NULL);
+void Resource::create() {
+ if (m_database != NULL)
+ XrmDestroyDatabase(m_database);
+ m_modified = false;
+ ASSERT(NULL != (m_database = XrmGetStringDatabase("")));
+}
+
+void Resource::setValue(const std::string &rname, bool value) {
+ ASSERT(m_database != NULL);
const char *val = (value ? "True" : "False");
std::string rc_string = rname + ": " + val;
save();
}
-void obResource::setValue(const std::string &rname, int value) {
+void Resource::setValue(const std::string &rname, int value) {
setValue(rname, (long)value);
}
-void obResource::setValue(const std::string &rname, long value) {
- assert(m_database != NULL);
+void Resource::setValue(const std::string &rname, long value) {
+ ASSERT(m_database != NULL);
char val[11];
sprintf(val, "%ld", value);
save();
}
-void obResource::setValue(const std::string &rname, const char *value) {
- assert(m_database != NULL);
+void Resource::setValue(const std::string &rname, const char *value) {
+ ASSERT(m_database != NULL);
+ ASSERT(value != NULL);
std::string rc_string = rname + ": " + value;
XrmPutLineResource(&m_database, rc_string.c_str());
save();
}
-void obResource::setValue(const std::string &rname, const std::string &value) {
- assert(m_database != NULL);
+void Resource::setValue(const std::string &rname, const std::string &value) {
+ ASSERT(m_database != NULL);
std::string rc_string = rname + ": " + value;
XrmPutLineResource(&m_database, rc_string.c_str());
save();
}
-bool obResource::getValue(const std::string &rname, const std::string &rclass,
+bool Resource::getValue(const std::string &rname, const std::string &rclass,
bool &value) const {
- assert(rclass.c_str() != NULL);
- assert(m_database != NULL);
+ ASSERT(rclass.c_str() != NULL);
+ ASSERT(m_database != NULL);
char *rettype;
XrmValue retvalue;
return true;
}
-bool obResource::getValue(const std::string &rname, const std::string &rclass,
+bool Resource::getValue(const std::string &rname, const std::string &rclass,
long &value) const {
- assert(m_database != NULL);
+ ASSERT(m_database != NULL);
char *rettype;
XrmValue retvalue;
return true;
}
-bool obResource::getValue(const std::string &rname, const std::string &rclass,
+bool Resource::getValue(const std::string &rname, const std::string &rclass,
std::string &value) const {
- assert(m_database != NULL);
+ ASSERT(m_database != NULL);
char *rettype;
XrmValue retvalue;