/// <summary> /// Construtor opcional para aplicação fornecer tanto o consumidor quanto o observador da sessão. /// <para>Esse construtor é opcional porque a aplicação sempre pode adicionar outros consumidores ou outros observadores no <see cref="CollaborationSession"/> quando inicia a colaboração através do <see cref="EasyCollaboration.StartCollaboration()"/>.</para> /// </summary> /// <param name="context">contexto do OpenBus, objeto responsável pelo gerenciamento de conexões</param> /// <param name="consumer">consumidor do canal de eventos</param> /// <param name="observer">observador da sessão de colaboração</param> /// <exception cref="ArgumentException">caso o <c>consumer</c> não implemente <see cref="MarshalByRefObject"/> além da interface <see cref="EventConsumer"/></exception> /// <exception cref="ArgumentException">caso o <c>observer</c> não implemente <see cref="MarshalByRefObject"/> além da interface <see cref="CollaborationObserver"/></exception> public EasyCollaboration(OpenBusContext context, EventConsumer consumer, CollaborationObserver observer) : this(context, observer) { if ((consumer != null) && !(consumer is MarshalByRefObject)) { throw new ArgumentException("EventConsumer object must implement MarshalByRefObject also", "consumer"); } _consumer = consumer; }
/// <summary> /// Construtor opcional para aplicação fornecer um objeto para observação da sessão. /// <para>Esse construtor é opcional porque a aplicação sempre pode adicionar outros consumidores ou outros observadores no <see cref="CollaborationSession"/> quando inicia a colaboração através do <see cref="EasyCollaboration.StartCollaboration()"/>.</para> /// </summary> /// <param name="context">contexto do OpenBus, objeto responsável pelo gerenciamento de conexões</param> /// <param name="observer">observador da sessão de colaboração</param> /// <exception cref="ArgumentException">caso o <c>observer</c> não implemente <see cref="MarshalByRefObject"/> além da interface <see cref="CollaborationObserver"/></exception> public EasyCollaboration(OpenBusContext context, CollaborationObserver observer) : this(context) { if ((observer != null) && !(observer is MarshalByRefObject)) { throw new ArgumentException("CollaborationObserver object must implement MarshalByRefObject also", "observer"); } _observer = observer; }
public void ExitCollaboration() { lock (_locker) { try { DeactivateConsumer(); DeactivateObserver(); Logger.Info("Collaboration finished"); } finally { _subsId = 0; _obsId = 0; _theSession = null; _consumer = null; _observer = null; _collabs = null; _sessions = null; } } }
/// <summary> /// Construtor padrão, nesse caso a biblioteca vai usar implementações /// básicas de <see cref="EventConsumer"/> e <see cref="CollaborationObserver"/>. /// <seealso cref="EasyCollaboration.Consumer"/> /// </summary> /// <param name="context">contexto do OpenBus, objeto responsável pelo gerenciamento de conexões</param> public EasyCollaboration(OpenBusContext context) { _context = context; _observer = new EasyCollaboration.Observer(); _consumer = new EasyCollaboration.Consumer(); }