1//============================================================================
2//
3// SSSS tt lll lll
4// SS SS tt ll ll
5// SS tttttt eeee ll ll aaaa
6// SSSS tt ee ee ll ll aa
7// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator"
8// SS SS tt ee ll ll aa aa
9// SSSS ttt eeeee llll llll aaaaa
10//
11// Copyright (c) 1995-2019 by Bradford W. Mott, Stephen Anthony
12// and the Stella Team
13//
14// See the file "License.txt" for information on usage and redistribution of
15// this file, and for a DISCLAIMER OF ALL WARRANTIES.
16//============================================================================
17
18#include "SettingsDb.hxx"
19#include "Logger.hxx"
20#include "SqliteError.hxx"
21
22// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
23SettingsDb::SettingsDb(
24 const string& databaseDirectory,
25 const string& databaseName
26) : myDatabaseDirectory(databaseDirectory),
27 myDatabaseName(databaseName)
28{}
29
30// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
31bool SettingsDb::initialize()
32{
33 try {
34 myDb = make_unique<SqliteDatabase>(myDatabaseDirectory, myDatabaseName);
35 myDb->initialize();
36
37 mySettingsRepository = make_unique<KeyValueRepositorySqlite>(*myDb, "settings");
38 mySettingsRepository->initialize();
39 }
40 catch (SqliteError err) {
41 Logger::info("sqlite DB " + myDb->fileName() + " failed to initialize: " + err.message);
42
43 myDb.reset();
44 mySettingsRepository.reset();
45
46 return false;
47 }
48
49 return true;
50}
51