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

org.red5.server.api.service.IServiceCapableConnection Maven / Gradle / Ivy

/*
 * RED5 Open Source Media Server - https://github.com/Red5/
 * 
 * Copyright 2006-2016 by respective authors (see below). All rights reserved.
 * 
 * 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 org.red5.server.api.service;

import org.red5.server.api.IConnection;
import org.red5.server.net.rtmp.status.Status;

/**
 * Connection that has options to invoke and handle remote calls
 */
// TODO: this should really extend IServiceInvoker
public interface IServiceCapableConnection extends IConnection {
    /**
     * Invokes service using remoting call object.
     * 
     * @param call
     *            Service call object
     */
    void invoke(IServiceCall call);

    /**
     * Invoke service using call and channel.
     * 
     * @param call
     *            Service call
     * @param channel
     *            Channel used
     */
    void invoke(IServiceCall call, int channel);

    /**
     * Invoke method by name.
     * 
     * @param method
     *            Called method name
     */
    void invoke(String method);

    /**
     * Invoke method by name with callback.
     * 
     * @param method
     *            Called method name
     * @param callback
     *            Callback
     */
    void invoke(String method, IPendingServiceCallback callback);

    /**
     * Invoke method with parameters.
     * 
     * @param method
     *            Method name
     * @param params
     *            Invocation parameters passed to method
     */
    void invoke(String method, Object[] params);

    /**
     * Invoke method with parameters.
     *
     * @param method
     *            by name
     * @param params
     *            method params
     * @param callback
     *            callback
     */
    void invoke(String method, Object[] params, IPendingServiceCallback callback);

    /**
     * Notify method.
     *
     * @param call
     *            service call
     */
    void notify(IServiceCall call);

    /**
     * Notify method with channel id.
     *
     * @param call
     *            service call
     * @param channel
     *            channel id
     */
    void notify(IServiceCall call, int channel);

    /**
     * Notify method.
     *
     * @param method
     *            by name
     */
    void notify(String method);

    /**
     * Notify method with parameters.
     * 
     * @param method
     *            by name
     * @param params
     *            method params
     */
    void notify(String method, Object[] params);

    /**
     * Sends a status object to the connection.
     * 
     * @param status
     *            Status
     */
    void status(Status status);

    /**
     * Sends a status object to the connection on a given channel.
     * 
     * @param status
     *            Status
     * @param channel
     *            channel id
     */
    void status(Status status, int channel);

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy