📄 sessiondescription.java
字号:
/*
* SessionDescription.java
*
* Created on November 19, 2003, 10:38 AM
*/
package gov.nist.applet.phone.media.util;
import gov.nist.applet.phone.media.MediaManager;
/**
* A utility class to parse the session addresses.
* @author DERUELLE Jean
*/
public class SessionDescription {
private String address = null;
private int destPort;
private int localPort;
private int timeToLive = 1;
private String audioFormat=null;
private String videoFormat=null;
private String transportProtocol=null;
/**
* Constructor Parse the session given in parameter
* and initializes the address, the port and the Time To Live
* @param session - the session from which to parse the session
*/
public SessionDescription (String session) {
parseSessionDescription (session);
}
/**
* Constructor
*/
public SessionDescription () {
}
/**
* Parse the session in a Session Label which contains the address,
* the port and the time to live
* @param session - the session to parse
* @throws java.lang.IllegalArgumentException if the session is not valid
*/
public void parseSessionDescription (String session) throws IllegalArgumentException {
//If the session exists
session=session.trim();
if (session != null && session.length() > 0) {
int endAddress = session.indexOf('/');
//if there is no slash, the session is not valid
if (endAddress == -1)
throw new IllegalArgumentException();
else {
//Get the address
this.address = session.substring(0, endAddress);
int destEndPort = session.indexOf('/', endAddress+1);
//if there is no second slash, the session is invalid
if (destEndPort != -1) {
//Get the destination port
try{
this.destPort = Integer.parseInt(session.substring(endAddress+1,destEndPort));
}
catch(NumberFormatException nfe){
System.out.println(session.substring(endAddress+1) +" is not a valid port");
throw new IllegalArgumentException();
}
int localEndPort = session.indexOf('/', destEndPort+1);
//if there is no third slash, we get the local port and let the
//time to live by default
if (localEndPort == -1) {
//Get the port
try{
this.localPort = Integer.parseInt(session.substring(destEndPort+1));
}
catch(NumberFormatException nfe){
System.out.println(session.substring(destEndPort+1) +" is not a valid port");
throw new IllegalArgumentException();
}
}
//if there is a third slash
else {
try{
//Get the port
this.localPort = Integer.parseInt(session.substring(destEndPort+1, localEndPort));
}
catch(NumberFormatException nfe){
System.out.println(session.substring(destEndPort+1, localEndPort) +" is not a valid port");
throw new IllegalArgumentException();
}
try{
//Get the Time To Live
this.timeToLive = Integer.parseInt(session.substring(localEndPort + 1));
}
catch(NumberFormatException nfe){
System.out.println(session.substring(localEndPort + 1) +" is not a valid Time To Live");
throw new IllegalArgumentException();
}
}
}
else{
throw new IllegalArgumentException();
}
}
}
else
throw new IllegalArgumentException();
}
/**
* Return the address of the session
* @return the address of the session
*/
public String getAddress(){
return address;
}
/**
* Set the address of the session
* @param address - the address of the session
*/
public void setAddress(String address){
this.address=address;
}
/**
* Return the destination port of the session
* @return the destination port of the session
*/
public int getDestinationPort() {
return destPort;
}
/**
* Set the destination port of the session
* @param port - the destination port of the session
*/
public void setDestinationPort(int port) {
this.destPort = port;
}
/**
* Return the local port of the session
* @return the local port of the session
*/
public int getLocalPort() {
return localPort;
}
/**
* Set the local port of the session
* @param port - the local port of the session
*/
public void setLocalPort(int port) {
this.localPort = port;
}
/**
* Return the Time To Live of the session
* @return the Time To Live of the session
*/
public int getTimeToLive(){
return timeToLive;
}
/**
* Set the Time To Live of the session
* @param timeToLive - the Time To Live of the session
*/
public void setTimeToLive (int timeToLive ){
this.timeToLive=timeToLive;
}
/**
* Retrieve the Audio Format of the session
* @return the Audio Format of the session
*/
public String getAudioFormat (){
return audioFormat;
}
/**
* Set the Audio Format of the session
* @param audioFormat - the Audio Format of the session
*/
public void setAudioFormat (String audioFormat ){
this.audioFormat=MediaManager.findCorrespondingJmfFormat(audioFormat);
}
/**
* Retrieve the Video Format of the session
* @return the Video Format of the session
*/
public String getVideoFormat (){
return videoFormat;
}
/**
* Set the Video Format of the session
* @param videoFormat - video Format the of the session
*/
public void setVideoFormat(String videoFormat ){
this.videoFormat=MediaManager.findCorrespondingJmfFormat(videoFormat);
}
/**
* Retrieve the transport protocol underlying to RTP of the session
* @return the transport protocol underlying to RTP of the session
*/
public String getTransportProtocol(){
return transportProtocol;
}
/**
* Set the transport protocol underlying to RTP of the session
* @param transportProtocol - the transport protocol underlying to RTP of the session
*/
public void setTransportProtocol(String transportProtocol){
this.transportProtocol=transportProtocol;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -