Skip to content

Commit

Permalink
Add error throwing.
Browse files Browse the repository at this point in the history
  • Loading branch information
DaveDavenport committed May 6, 2012
1 parent 5a54f45 commit 915fa66
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 10 deletions.
31 changes: 22 additions & 9 deletions EnergyPoint.vala
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ struct EnergyPoint
public int power;
}

errordomain ErrorEnergyStorage {
OPENCREATE,
PREPARE_STATEMENT
}
/**
* Energy Storage
*/
Expand All @@ -27,13 +31,21 @@ class EnergyStorage
private Statement start_date_stmt;
private Statement get_data_stmt;




/**
* Create a new Storage.
*/
public EnergyStorage(string db_filename)
public EnergyStorage(string db_filename) throws ErrorEnergyStorage
{
_filename = db_filename;
Sqlite.Database.open(db_filename, out db);
int returnv = Sqlite.Database.open(db_filename, out db);

if(returnv != Sqlite.OK)
{
throw new ErrorEnergyStorage.OPENCREATE("Failed to open/create database: %s", db.errmsg());
}

// Create the DB
const string create_db = """
Expand All @@ -56,7 +68,7 @@ class EnergyStorage

if(db.prepare_v2(insert_db_str,-1, out insert_ep) == 1)
{
GLib.error("Failed to create stmt: %s", db.errmsg());
throw new ErrorEnergyStorage.PREPARE_STATEMENT("Failed to create stmt: %s", db.errmsg());
}


Expand All @@ -65,18 +77,18 @@ class EnergyStorage
""";
if(db.prepare_v2(insert_db_str,-1, out insert_ep) == 1)
{
GLib.error("Failed to create stmt: %s", db.errmsg());
throw new ErrorEnergyStorage.PREPARE_STATEMENT("Failed to create stmt: %s", db.errmsg());
}
const string transaction_stop_str = """
COMMIT;
""";
if(db.prepare_v2(transaction_start_str,-1, out transaction_start) == 1)
{
GLib.error("Failed to create stmt: %s", db.errmsg());
throw new ErrorEnergyStorage.PREPARE_STATEMENT("Failed to create stmt: %s", db.errmsg());
}
if(db.prepare_v2(transaction_stop_str,-1, out transaction_stop) == 1)
{
GLib.error("Failed to create stmt: %s", db.errmsg());
throw new ErrorEnergyStorage.PREPARE_STATEMENT("Failed to create stmt: %s", db.errmsg());
}

const string stop_date_stmt_str = """
Expand All @@ -85,7 +97,7 @@ class EnergyStorage

if(db.prepare_v2(stop_date_stmt_str,-1, out stop_date_stmt) == 1)
{
GLib.error("Failed to create stmt: %s", db.errmsg());
throw new ErrorEnergyStorage.PREPARE_STATEMENT("Failed to create stmt: %s", db.errmsg());
}

const string start_date_stmt_str = """
Expand All @@ -94,15 +106,15 @@ class EnergyStorage

if(db.prepare_v2(start_date_stmt_str,-1, out start_date_stmt) == 1)
{
GLib.error("Failed to create stmt: %s", db.errmsg());
throw new ErrorEnergyStorage.PREPARE_STATEMENT("Failed to create stmt: %s", db.errmsg());
}

const string get_data_stmt_str = """
SELECT * FROM data WHERE time >= ? AND time <= ? ORDER BY time ASC;
""";
if(db.prepare_v2(get_data_stmt_str,-1, out get_data_stmt) == 1)
{
GLib.error("Failed to create stmt: %s", db.errmsg());
throw new ErrorEnergyStorage.PREPARE_STATEMENT("Failed to create stmt: %s", db.errmsg());
}
}

Expand Down Expand Up @@ -250,6 +262,7 @@ class EnergyStorage

if(eps == null) return 0.0;


var first = eps.first().data;
double val = 0.0;
foreach(var ep in eps)
Expand Down
9 changes: 8 additions & 1 deletion main.vala
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,14 @@ int main (string[] argv)
/* Get user data dir */
var udd = GLib.Environment.get_user_data_dir();
var path = GLib.Path.build_filename(udd, "es.sqlite3");
EnergyStorage es = new EnergyStorage(path);
EnergyStorage es;
try {
es = new EnergyStorage(path);
} catch (GLib.Error e) {
stdout.printf("Failed to open/create database: %s: %s\n",
e.message, path);
return 0;
}

if(argv.length > 1)
{
Expand Down

0 comments on commit 915fa66

Please sign in to comment.