view src/implab/messaging/Destination.js @ 5:3d124d0b9078

improved declare/override, added override.before, override.after, override.hide, inherited.arguments.
author cin
date Fri, 16 Jun 2017 02:14:25 +0300
parents fc2517695ee1
children
line wrap: on
line source

define([ "dojo/_base/declare", "./Listener" ],

function(declare, Listener) {
    return declare(null, {
        _session : null,
        _destination : null,
        _listenerClass : null,

        constructor : function(session, destination, options) {
            if (!session)
                throw new Error("A session is required");
            if (!destination)
                throw new Error("A destination is required");

            this._session = session;
            this._destination = destination;
            if (options) {
                if (options.listenerClass)
                    this._listenerClass = options.listenerClass;
            }
        },

        listen : function(callback) {
            var factory = this._listenerClass || Listener;
            var listener = new factory(this._session, this._destination, {
                listener : callback
            });
            listener.start();

            return listener;
        }

    });
});