terriajs
Version:
Geospatial data visualization platform.
59 lines (48 loc) • 2.16 kB
JavaScript
;
import defaultValue from 'terriajs-cesium/Source/Core/defaultValue';
import serializeToJson from '../Core/serializeToJson';
import updateFromJson from '../Core/updateFromJson';
/**
* Represents polling information for a Catalog Item.
*
* @alias Polling
* @constructor
*
* @param {Object} [options] The values of the properties of the new instance.
* @param {String|Number} [options.seconds] The number of seconds to wait before polling for new data.
* @param {String} [options.url] The URL from which to poll for new data.
* @param {Boolean} [options.replace] Should the newly polled data replace the existing data (true), or be appended to it (false)?
*/
var Polling = function(options) {
options = defaultValue(options, defaultValue.EMPTY_OBJECT);
/**
* Gets or sets the number of seconds to wait before polling for new data.
* If this.pollUrl is defined, it polls this.pollUrl and adds the data received to the existing TableStructure.
* If this.pollUrl is undefined, it polls this.url and replaces its TableStructure with the new one.
* If undefined (the default) or 0, no polling occurs.
* @type {Number}
* @default undefined
*/
this.seconds = options.seconds;
/**
* Gets or sets the URL from which to poll for new data.
* If defined, the data received is added to the existing TableStructure. Otherwise, it replaces the TableStructure.
* @type {String}
* @default undefined
*/
this.url = options.url;
/**
* Gets or sets a flag which says whether polled data should replace the existing data, or appended to it.
* If defined, the data received is added to the existing TableStructure. Otherwise, it replaces the TableStructure.
* @type {Boolean}
* @default false
*/
this.replace = options.replace;
};
Polling.prototype.updateFromJson = function(json, options) {
return updateFromJson(this, json, options);
};
Polling.prototype.serializeToJson = function(options) {
return serializeToJson(this, undefined, options);
};
module.exports = Polling;