UNPKG

domotz-remote-pawn

Version:

Domotz Agent

55 lines (48 loc) 1.61 kB
/** This file is part of Domotz Agent. * Copyright (C) 2016 Domotz Ltd * * Domotz Agent 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 * (at your option) any later version. * * Domotz Agent 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 Domotz Agent. If not, see <http://www.gnu.org/licenses/>. **/ /** * Created by tom on 23/09/15. */ var nmapDiscoveryCache = function(configuration) { var discovery = configuration.discovery; var expirationDate = discovery ? discovery.refresh : 30; var buffer, date; function refresh() { buffer = []; date = 0; console.debug('Refresh Nmap Cache. Expired in %s get request.', expirationDate); } refresh(); return { get: function() { var b = buffer; date++; if (date === expirationDate) { refresh(); } return b; }, set: function(b) { buffer = b; }, push: function (dev) { console.debug('Push dev into Cache: ' + JSON.stringify(dev)); buffer.push(dev); } }; }; module.exports.factory = nmapDiscoveryCache;