comparison src/implab/messaging/Client.js @ 0:fc2517695ee1

Initial commit, draft import of existing work
author cin
date Thu, 01 Jun 2017 13:20:03 +0300
parents
children 7d7059d2a810
comparison
equal deleted inserted replaced
-1:000000000000 0:fc2517695ee1
1 define(
2 [ "dojo/_base/declare", "dojo/_base/lang", "dojo/Evented", "../_LogMixin" ],
3
4 function(declare, lang, Evented, _LogMixin) {
5 return declare([ Evented, _LogMixin ], {
6 _session : null,
7 _destination : null,
8 _id : null,
9
10 constructor : function(session, destination, options) {
11 this._destination = destination;
12 this._session = session;
13 },
14
15 getDestination : function() {
16 return this._destination;
17 },
18
19 start : function() {
20 var me = this;
21 return me._session.createClient(me.prepareOptions({})).then(
22 function(id) {
23 me._id = id;
24 return me;
25 });
26 },
27
28 prepareOptions : function(options) {
29 var me = this;
30 options.mode = me.getMode();
31 options.destination = me.getDestination();
32 options.client = function(msg) {
33 me.process(msg);
34 };
35 return options;
36 },
37
38 process : function(msg) {
39 this.warn("Messages are not acceped by this client");
40 },
41
42 stop : function() {
43 var me = this;
44 if (me._id) {
45 me.log("stop");
46 return me._session.deleteClient({'clientId': me._id}).then(function() {
47 me._id = null;
48 return me;
49 });
50 }
51 },
52
53 toString : function() {
54 return "["
55 + [
56 this.getMode().toUpperCase(),
57 this.getDestination(),
58 this._id ].join(',') + "]";
59 }
60 });
61 });