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

org.red5.server.api.so.ISharedObjectService 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.so;

import java.util.Set;

import org.red5.server.api.scope.IScope;
import org.red5.server.api.scope.IScopeService;

/**
 * Service that manages shared objects for given scope.
 * 
 */
public interface ISharedObjectService extends IScopeService {

    public static String BEAN_NAME = "sharedObjectService";

    /**
     * Get a set of the shared object names.
     * 
     * @param scope
     *            the scope to return the shared object names from
     * @return set containing the shared object names
     */
    public Set getSharedObjectNames(IScope scope);

    /**
     * Create a new shared object.
     * 
     * @param scope
     *            the scope to create the shared object in
     * @param name
     *            the name of the shared object
     * @param persistent
     *            will the shared object be persistent
     * @return 
     * true
     * 
* * if the shared object was created or already exists, otherwise * *
     * false
     * 
*/ public boolean createSharedObject(IScope scope, String name, boolean persistent); /** * Get a shared object by name. * * @param scope * the scope to get the shared object from * @param name * the name of the shared object * @return shared object, or * *
     * null
     * 
* * if not found */ public ISharedObject getSharedObject(IScope scope, String name); /** * Get a shared object by name and create it if it doesn't exist. * * @param scope * the scope to get the shared object from * @param name * the name of the shared object * @param persistent * should the shared object be created persistent * @return the shared object */ public ISharedObject getSharedObject(IScope scope, String name, boolean persistent); /** * Check if a shared object exists. * * @param scope * the scope to check for the shared object * @param name * the name of the shared object * @return
     * true
     * 
* * if the shared object exists, otherwise * *
     * false
     * 
*/ public boolean hasSharedObject(IScope scope, String name); /** *

* Deletes persistent shared objects specified by name and clears all properties from active shared objects (persistent and nonpersistent). The name parameter specifies the name of a shared object, which can include a slash (/) as a delimiter between directories in the path. The last element in the path can contain wildcard patterns (for example, a question mark [?] and an asterisk [*]) or a shared object name. * The clearSharedObjects() method traverses the shared object hierarchy along the specified path and clears all the shared objects. Specifying a slash (/) clears all the shared objects associated with an application instance. *

*

* The following values are possible for the soPath parameter:
* / clears all local and persistent shared objects associated with the instance.
* /foo/bar clears the shared object /foo/bar; if bar is a directory name, no shared objects are deleted.
* /foo/bar/* clears all shared objects stored under the instance directory /foo/bar. The bar directory is also deleted if no persistent shared objects are in use within this namespace.
* /foo/bar/XX?? clears all shared objects that begin with XX, followed by any two characters. If a directory name matches this specification, all the shared objects within this directory are cleared. *

*

* If you call the clearSharedObjects() method and the specified path matches a shared object that is currently active, all its properties are deleted, and a "clear" event is sent to all subscribers of the shared object. If it is a persistent shared object, the persistent store is also cleared. *

*
* * @param scope * the scope to check for the shared object * @param name * the name of the shared object * @return true if the shared object at the specified path was deleted; otherwise, false. If using wildcard characters to delete multiple files, the method returns true only if all the shared objects matching the wildcard pattern were successfully deleted; otherwise, it will return false. */ public boolean clearSharedObjects(IScope scope, String name); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy