You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.5 KiB
69 lines
1.5 KiB
/**
|
|
* Copyright (c) 2013 Yahoo! Inc. All rights reserved.
|
|
*
|
|
* Copyrights licensed under the MIT License. See the accompanying LICENSE file
|
|
* for terms.
|
|
*/
|
|
|
|
|
|
var assert = require('assert');
|
|
|
|
/**
|
|
* ZooKeeper client state class.
|
|
*
|
|
* @class State
|
|
* @constructor
|
|
* @private
|
|
* @param name {String} The name of the state.
|
|
* @param code {Number} The code of the state.
|
|
*/
|
|
function State(name, code) {
|
|
assert(
|
|
name && typeof name === 'string',
|
|
'name must be a non-empty string.'
|
|
);
|
|
assert(typeof code === 'number', 'type must be a number.');
|
|
|
|
this.name = name;
|
|
this.code = code;
|
|
}
|
|
|
|
/**
|
|
* Return the name of the state.
|
|
* @method getName
|
|
* @return {String} The name o fhte state.
|
|
*/
|
|
State.prototype.getName = function () {
|
|
return this.name;
|
|
};
|
|
|
|
/**
|
|
* Return the code of the state.
|
|
* @method getCode
|
|
* @return {Number} The code of the state.
|
|
*/
|
|
State.prototype.getCode = function () {
|
|
return this.code;
|
|
};
|
|
|
|
/**
|
|
* Return a string representation of the state.
|
|
*
|
|
* @method toString
|
|
* @return {String} The string representation of the state.
|
|
*/
|
|
State.prototype.toString = function () {
|
|
return this.name + '[' + this.code + ']';
|
|
};
|
|
|
|
// Exported state constants
|
|
var STATES = {
|
|
DISCONNECTED : new State('DISCONNECTED', 0),
|
|
SYNC_CONNECTED : new State('SYNC_CONNECTED', 3),
|
|
AUTH_FAILED : new State('AUTH_FAILED', 4),
|
|
CONNECTED_READ_ONLY : new State('CONNECTED_READ_ONLY', 5),
|
|
SASL_AUTHENTICATED : new State('SASL_AUTHENTICATED', 6),
|
|
EXPIRED : new State('EXPIRED', -122)
|
|
};
|
|
|
|
module.exports = STATES;
|
|
|