mirror of https://github.com/sipwise/jitsi.git
parent
4f57d6fcd0
commit
092ea03b60
@ -0,0 +1,135 @@
|
||||
/*
|
||||
* Jitsi, the OpenSource Java VoIP and Instant Messaging client.
|
||||
*
|
||||
* Copyright @ 2015 Atlassian Pty Ltd
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package net.java.sip.communicator.impl.protocol.jabber.extensions.jitsimeet;
|
||||
|
||||
import net.java.sip.communicator.impl.protocol.jabber.extensions.*;
|
||||
|
||||
/**
|
||||
* The packet extension is used by Jicofo to broadcast versions of all video
|
||||
* conferencing system components. This packets extension is added to jicofo's
|
||||
* MUC presence. It will contain {@link Component} children which carry each
|
||||
* component's name and version.
|
||||
*
|
||||
* @author Pawel Domas
|
||||
*/
|
||||
public class ComponentVersionsExtension
|
||||
extends AbstractPacketExtension
|
||||
{
|
||||
/**
|
||||
* The XML element name of {@link ComponentVersionsExtension}.
|
||||
*/
|
||||
public static final String ELEMENT_NAME = "versions";
|
||||
|
||||
/**
|
||||
* The name of XML sub-elements which carry the info about particular
|
||||
* component's version.
|
||||
*/
|
||||
public static final String COMPONENT_ELEMENT_NAME = "component";
|
||||
|
||||
/**
|
||||
* Constant for {@link Component} name used to signal the version of
|
||||
* conference focus.
|
||||
*/
|
||||
public static final String COMPONENT_FOCUS = "focus";
|
||||
|
||||
/**
|
||||
* Constant for {@link Component} name used to signal the version of
|
||||
* XMPP server.
|
||||
*/
|
||||
public static final String COMPONENT_XMPP_SERVER = "xmpp";
|
||||
|
||||
/**
|
||||
* Constant for {@link Component} name used to signal the version of
|
||||
* the videobridge.
|
||||
*/
|
||||
public static final String COMPONENT_VIDEOBRIDGE = "videobridge";
|
||||
|
||||
/**
|
||||
* The XML element namespace of {@link ComponentVersionsExtension}.
|
||||
*/
|
||||
public static final String NAMESPACE = "http://jitsi.org/jitmeet";
|
||||
|
||||
/**
|
||||
* Creates an {@link AbstractPacketExtension} instance for the specified
|
||||
* <tt>namespace</tt> and <tt>elementName</tt>.
|
||||
*/
|
||||
public ComponentVersionsExtension()
|
||||
{
|
||||
super(NAMESPACE, ELEMENT_NAME);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds component's version to this extension.
|
||||
*
|
||||
* @param componentName the name of the component for which
|
||||
* child {@link Component} extension will be added.
|
||||
* @param versionStr human readable string that describes component's
|
||||
* version.
|
||||
*/
|
||||
public void addComponentVersion(String componentName, String versionStr)
|
||||
{
|
||||
Component v = new Component();
|
||||
|
||||
v.setName(componentName);
|
||||
v.setText(versionStr);
|
||||
|
||||
addChildExtension(v);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component child element of {@link ComponentVersionsExtension}. The name
|
||||
* of the component is carried in name attribute and the version string is
|
||||
* the text value.
|
||||
*/
|
||||
public class Component
|
||||
extends AbstractPacketExtension
|
||||
{
|
||||
/**
|
||||
* The name of that attribute that carries component's name.
|
||||
*/
|
||||
private final String NAME_ATTR_NAME = "name";
|
||||
|
||||
/**
|
||||
* Creates new instance of {@link Component} packet extension.
|
||||
*/
|
||||
public Component()
|
||||
{
|
||||
super(NAMESPACE, COMPONENT_ELEMENT_NAME);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of the name attribute.
|
||||
* @return <tt>String</tt> which describes the name of video
|
||||
* conferencing system component.
|
||||
*/
|
||||
public String getName()
|
||||
{
|
||||
return getAttributeAsString(NAME_ATTR_NAME);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets new value for the component's name attribute.
|
||||
* @param name a <tt>String</tt> which describes the name of video
|
||||
* conferencing system component.
|
||||
*/
|
||||
public void setName(String name)
|
||||
{
|
||||
setAttribute(NAME_ATTR_NAME, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue