description and source-codefunction Manager(port, host, username, password, events) {
var obj = {}
, context = {}
, properties = ['on', 'once', 'addListener', 'removeListener', 'removeAllListeners',
'listeners', 'setMaxListeners', 'emit'];
context.emitter = new EventEmitter();
context.held = [];
properties.map(function(property){
Object.defineProperty(obj, property, {
value: context.emitter[property].bind(context.emitter)
});
})
obj.options = {
port: port,
host: host || "",
username: username || "",
password: password || "",
events: events || false
};
obj.connect = ManagerConnect.bind(obj, context);
obj.keepConnected = ManagerKeepConnected.bind(obj, context);
obj.login = ManagerLogin.bind(obj, context);
obj.action = ManagerAction.bind(obj, context);
obj.disconnect = ManagerDisconnect.bind(obj, context);
obj.isConnected = ManagerIsConnected.bind(obj, context);
obj.connected = obj.isConnected;
obj.on('rawevent', ManagerEvent.bind(obj, context));
obj.on('error', function (err) {});
if (port){
obj.connect(
obj.options.port,
obj.options.host,
obj.options.username ? obj.login.bind(obj, obj.options.username, password, events) : undefined
);
}
return obj;
}