From d6bdcc8895e38e8b4a61dd6e550103bce44e71b3 Mon Sep 17 00:00:00 2001 From: Sebastian Reichel Date: Wed, 27 Mar 2013 00:06:53 +0100 Subject: handle errors --- src/scanner-session/scannersession.vala | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'src/scanner-session/scannersession.vala') diff --git a/src/scanner-session/scannersession.vala b/src/scanner-session/scannersession.vala index 6926ba9..5d87cc8 100644 --- a/src/scanner-session/scannersession.vala +++ b/src/scanner-session/scannersession.vala @@ -23,13 +23,17 @@ public class ScannerSessionImplementation { private Database db; private AudioPlayer audio; + private SerialDevice dev; public signal void msg(MessageType type, string message); public ScannerSessionImplementation() { try { db = Bus.get_proxy_sync(BusType.SESSION, "io.mainframe.shopsystem.Database", "/io/mainframe/shopsystem/database"); + dev = Bus.get_proxy_sync(BusType.SESSION, "io.mainframe.shopsystem.SerialDevice", "/io/mainframe/shopsystem/device"); audio = Bus.get_proxy_sync(BusType.SESSION, "io.mainframe.shopsystem.AudioPlayer", "/io/mainframe/shopsystem/audio"); + + dev.received_barcode.connect(handle_barcode); } catch(IOError e) { error("IOError: %s\n", e.message); } @@ -46,7 +50,7 @@ public class ScannerSessionImplementation { logged_in = false; } - private bool login(int user) { + private bool login(int user) throws IOError { this.user = user; try { this.name = db.get_username(user); @@ -60,7 +64,18 @@ public class ScannerSessionImplementation { return true; } - private bool interpret(string scannerdata) { + private void handle_barcode(string scannerdata) { + try { + if(interpret(scannerdata)) + dev.blink(1000); + } catch(IOError e) { + send_message(MessageType.ERROR, "IOError: %s", e.message); + } catch(DatabaseError e) { + send_message(MessageType.ERROR, "DatabaseError: %s", e.message); + } + } + + private bool interpret(string scannerdata) throws DatabaseError, IOError { if(scannerdata.has_prefix("USER ")) { string str_id = scannerdata.substring(5); int32 id = int.parse(str_id); -- cgit v1.2.3