All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.red5.server.net.rtmp.message.StreamAction Maven / Gradle / Ivy

package org.red5.server.net.rtmp.message;

import java.util.HashMap;
import java.util.Map;

/**
 * Represents all the actions which may be permitted on a stream.
 * 
 * @author Paul Gregoire
 */
public enum StreamAction {
	CONNECT("connect"), DISCONNECT("disconnect"), CREATE_STREAM("createStream"), DELETE_STREAM("deleteStream"), CLOSE_STREAM(
			"closeStream"), INIT_STREAM("initStream"), RELEASE_STREAM("releaseStream"), PUBLISH("publish"), PAUSE(
			"pause"), PAUSE_RAW("pauseRaw"), SEEK("seek"), PLAY("play"), PLAY2("play2"), STOP("disconnect"), RECEIVE_VIDEO(
			"receiveVideo"), RECEIVE_AUDIO("receiveAudio"), CUSTOM("");

	//presize to fit all enums in
	private final static Map map = new HashMap(StreamAction.values().length);

	//the stream action this enum is for
	private final String actionString;

	StreamAction(String actionString) {
		this.actionString = actionString;
	}

	public String getActionString() {
		return actionString;
	}

	public static StreamAction getEnum(String actionString) {
		//fill the map if its empty
		if (map.isEmpty()) {
			//do this only once
			for (StreamAction action : values()) {
				map.put(action.getActionString(), action);
			}
		}
		//look up the action from the predefined set
		StreamAction match = map.get(actionString);
		if (match != null) {
			return match;
		}
		//return an action representing a custom type
		return CUSTOM;
	}

	public boolean equals(StreamAction action) {
		return action.getActionString().equals(actionString);
	}

	public boolean equals(String actionString) {
		return getActionString().equals(actionString);
	}

	public String toString() {
		return actionString;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy