"use strict";
const util = require("util");
const events = require("events");
/**
* Creates a new instance of DataCollection
* @param {String} name Name of the data object.
* @classdesc Describes a table or a view
* @alias module:metadata~DataCollection
* @constructor
* @abstract
*/
function DataCollection(name) {
events.EventEmitter.call(this);
this.setMaxListeners(0);
// private
Object.defineProperty(this, "loading", {
value: false,
enumerable: false,
writable: true,
});
Object.defineProperty(this, "loaded", {
value: false,
enumerable: false,
writable: true,
});
/**
* Name of the object
* @type {String}
*/
this.name = name;
/**
* False-positive probability for SSTable Bloom filters.
* @type {number}
*/
this.bloomFilterFalsePositiveChance = 0;
/**
* Level of caching: all, keys_only, rows_only, none
* @type {String}
*/
this.caching = null;
/**
* A human readable comment describing the table.
* @type {String}
*/
this.comment = null;
/**
* Specifies the time to wait before garbage collecting tombstones (deletion markers)
* @type {number}
*/
this.gcGraceSeconds = 0;
/**
* Compaction strategy class used for the table.
* @type {String}
*/
this.compactionClass = null;
/**
* Associative-array containing the compaction options keys and values.
* @type {Object}
*/
this.compactionOptions = null;
/**
* Associative-array containing the compression options.
* @type {Object}
*/
this.compression = null;
/**
* Specifies the probability of read repairs being invoked over all replicas in the current data center.
* @type {number}
*/
this.localReadRepairChance = 0;
/**
* Specifies the probability with which read repairs should be invoked on non-quorum reads. The value must be
* between 0 and 1.
* @type {number}
*/
this.readRepairChance = 0;
/**
* An associative Array containing extra metadata for the table.
*
* For Apache Cassandra versions prior to 3.0.0, this method always returns `null`.
* @type {Object}
*/
this.extensions = null;
/**
* When compression is enabled, this option defines the probability
* with which checksums for compressed blocks are checked during reads.
* The default value for this options is 1.0 (always check).
*
* For Apache Cassandra versions prior to 3.0.0, this method always returns `null`.
* @type {Number|null}
*/
this.crcCheckChance = null;
/**
* Whether the populate I/O cache on flush is set on this table.
* @type {Boolean}
*/
this.populateCacheOnFlush = false;
/**
* Returns the default TTL for this table.
* @type {Number}
*/
this.defaultTtl = 0;
/**
* * Returns the speculative retry option for this table.
* @type {String}
*/
this.speculativeRetry = "NONE";
/**
* Returns the minimum index interval option for this table.
*
* Note: this option is available in Apache Cassandra 2.1 and above, and will return `null` for
* earlier versions.
* @type {Number|null}
*/
this.minIndexInterval = 128;
/**
* Returns the maximum index interval option for this table.
*
* Note: this option is available in Apache Cassandra 2.1 and above, and will return `null` for
* earlier versions.
* @type {Number|null}
*/
this.maxIndexInterval = 2048;
/**
* Array describing the table columns.
* @type {Array}
*/
this.columns = null;
/**
* An associative Array of columns by name.
* @type {Object}
*/
this.columnsByName = null;
/**
* Array describing the columns that are part of the partition key.
* @type {Array}
*/
this.partitionKeys = [];
/**
* Array describing the columns that form the clustering key.
* @type {Array}
*/
this.clusteringKeys = [];
/**
* Array describing the clustering order of the columns in the same order as the clusteringKeys.
* @type {Array}
*/
this.clusteringOrder = [];
/**
* An associative Array containing nodesync options for this table.
*
* For DSE versions prior to 6.0.0, this method always returns {@code null}. If nodesync
* was not explicitly configured for this table this method will also return {@code null}.
* @type {Object}
*/
this.nodesync = null;
}
util.inherits(DataCollection, events.EventEmitter);
module.exports = DataCollection;