Package com.kurento.demo.webrtc.chat

Source Code of com.kurento.demo.webrtc.chat.Connection

/*
* (C) Copyright 2014 Kurento (http://kurento.org/)
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser General Public License
* (LGPL) version 2.1 which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/lgpl-2.1.html
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
*/
package com.kurento.demo.webrtc.chat;

import java.util.ArrayList;
import java.util.List;

import com.kurento.kmf.content.ContentEvent;
import com.kurento.kmf.content.ContentSession;
import com.kurento.kmf.media.WebRtcEndpoint;

/**
* Connection in the video conference chat room.
*
* @author Boni Garcia (bgarcia@gsyc.es)
* @since 3.0.7
*/
public class Connection {

  private Transmitter transmitter;

  private List<Receiver> receivers;

  private int receiversSize;

  public Connection(int chatSize) {
    // The number of receivers is the chat size less one (the transmitter)
    receiversSize = chatSize - 1;
    receivers = new ArrayList<Receiver>(receiversSize);
  }

  public boolean allElementsPresent() {
    return allReceiversPresent() && transmitter != null;
  }

  public boolean allReceiversPresent() {

    return receivers.size() == receiversSize;
  }

  public boolean addReceiver(WebRtcEndpoint receiver,
      ContentSession contentSession) {
    if (allReceiversPresent()) {
      return false;
    }
    receivers.add(new Receiver(receiver, contentSession));
    return true;
  }

  public void connectTransmitter(List<Receiver> receivers) {
    for (Receiver receiver : receivers) {
      if (!receiver.isConnected()) {
        transmitter.getWebRtcEndpoint().connect(
            receiver.getWebRtcEndpoint());
        receiver.getContentSession().publishEvent(
            new ContentEvent("nickname", transmitter.getNick()));
        receiver.setConnected(true);
        break;
      }
    }
  }

  public void connectReceivers(Transmitter transmitter) {
    for (Receiver receiver : receivers) {
      if (!receiver.isConnected()) {
        transmitter.getWebRtcEndpoint().connect(
            receiver.getWebRtcEndpoint());
        receiver.getContentSession().publishEvent(
            new ContentEvent("nickname", transmitter.getNick()));
        receiver.setConnected(true);
        break;
      }
    }
  }

  public Transmitter getTransmitter() {
    return transmitter;
  }

  public void setTransmitter(WebRtcEndpoint webRtcEndpoint, String nick) {
    this.transmitter = new Transmitter(webRtcEndpoint, nick);
  }

  public List<Receiver> getReceivers() {
    return receivers;
  }

}
TOP

Related Classes of com.kurento.demo.webrtc.chat.Connection

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.