| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -2,28 +2,23 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#include <db/db.h> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#include <db/statements/builder/SelectStatementBuilder.h> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#include <util/calendar_parsing.h> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#include <util/notifications.h> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					namespace db { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  void fetch_alarms(sql::Database *db, uint32_t interval) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    std::time_t now = std::time(nullptr); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    stmt::Statement select_alarms = stmt::Statement::select().columns("dtstart, summary, description").from_table("alarms").inner_join("events", "events.rowid = alarms.eventID").where("dtstart<? AND dtstart>?").close(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    DEBUG << select_alarms.str(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    stmt::Statement select_alarms = stmt::Statement::select().columns("absolute_trigger, summary, description").from_table("alarms").inner_join("events", "events.id = alarms.event_id").where("absolute_trigger > " + std::to_string(now) + " AND absolute_trigger < " + std::to_string(now + interval)).close(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    try { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      sql::Statement query(*db, select_alarms.str()); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      query.bind(1, now + interval); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      query.bind(2, now); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      DEBUG << query.getExpandedSQL(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      while (query.executeStep()) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        uint32_t dtstart = query.getColumn(0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      while (query.executeStep()) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        uint32_t absolute_trigger = query.getColumn(0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        std::string summary = query.getColumn(1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        std::string description = query.getColumn(2); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        DEBUG << dtstart << ", " << summary << ", " << description; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        util::notify(description, summary + std::to_string(absolute_trigger - now)); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    catch (std::exception& e) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } catch (std::exception& e) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        std::cout << "Exception: " << e.what() << std::endl; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  } | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
					 | 
				
				 | 
				
					
  |