-- -- gcsd -- -- gcsd the generic command sequencer daemon can be used to serialize -- commands sent over various paralell communication channels to a -- single command output. It can be seen as a multiplexer for any -- kind of communication between a single resource and various clients -- which want to submit commands to it or query information from it. -- gcsd is written in C and Lua. The goal is to provide an easy to -- understand high level API based on Lua which can be used to -- implement the business logic of the so formed multiplexer daemon. -- -- -- Copyright (C) 2009-2010 Markus Grueneis -- Christian Pointner -- -- This file is part of gcsd. -- -- gcsd is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- any later version. -- -- gcsd is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with gcsd. If not, see . -- dispatch_tables = {} function dispatch_tables:load_handler_tables_file(filename) if (type(filename) ~= "nil") then if (type(filename) ~= "string") then log.printf(log.ERROR, "filename must be of type 'string' and denote a valid path") return defines.KILL_DAEMON end local chunk, err = loadfile(filename) if (not chunk) then log.printf(log.ERROR, "failed to load dispatch table: %s", err) return defines.KILL_DAEMON end commands, responses = chunk() if commands then command_table:register_handler_table(commands) end if responses then response_table:register_handler_table(responses) end log.printf(log.NOTICE, "loaded dispatch tables from file %s", filename) end return defines.OK end