org.etsi.uri.gcm.api.control.MulticastController Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of fractal-gcm-api Show documentation
Show all versions of fractal-gcm-api Show documentation
Grid Component Model Standardization
The newest version!
/*
* ################################################################
*
* Fractal GCM Management API
*
* Copyright (C) 2009 INRIA, University of
* Nice-Sophia Antipolis, ActiveEon
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Contact: [email protected]
*
* Authors: INRIA, University of Nice-Sophia Antipolis, ActiveEon.
*
* ################################################################
*/
package org.etsi.uri.gcm.api.control;
import org.objectweb.fractal.api.Interface;
import org.objectweb.fractal.api.NoSuchInterfaceException;
import org.objectweb.fractal.api.control.IllegalBindingException;
import org.objectweb.fractal.api.control.IllegalLifeCycleException;
/**
* Component interface to control multicast interfaces of the component to which
* it belongs, notably bindings on multicast interfaces. This interface is an
* extension of the {@link CollectiveInterfaceController} interface.
*
* @author INRIA, University of Nice-Sophia Antipolis, ActiveEon
* @see CollectiveInterfaceController
*/
public interface MulticastController extends CollectiveInterfaceController {
/**
* Removes a binding between a multicast interface of the component to which
* this interface belongs and a server interface of a component.
*
* @param multicastItfName
* Name of a multicast interface of the component to which this
* interface belongs.
* @param serverItf
* Reference on a server interface of a component which can be
* cast to {@link Interface} thanks to the introspection
* capabilities provided by the server component.
* @throws NoSuchInterfaceException
* If there is no such multicast interface.
* @throws IllegalBindingException
* If an error related to binding occurs.
* @throws IllegalLifeCycleException
* If the component to which this interface belongs is not in an
* appropriate state to perform this operation.
*/
public void unbindGCMMulticast(String multicastItfName, Object serverItf)
throws NoSuchInterfaceException, IllegalBindingException,
IllegalLifeCycleException;
/**
* Checks if a multicast interface of the component to which this interface
* belongs is bound to one of the given server interfaces.
*
* @param multicastItfName
* Name of a multicast interface of the component to which this
* interface belongs.
* @param serverItfs
* Array of references on server interfaces of components which
* can be cast to {@link Interface} thanks to the introspection
* capabilities provided by the server components.
* @return true if this multicast interface is bound to one of
* these server interfaces, false otherwise.
* @throws NoSuchInterfaceException
* If there is no such multicast interface.
*/
public boolean isBoundTo(String multicastItfName, Object[] serverItfs)
throws NoSuchInterfaceException;
/**
* Returns the server interfaces to which a multicast interface of the
* component to which this interface belongs is bound.
*
* @param multicastItfName
* Name of a multicast interface of the component to which this
* interface belongs.
* @return Server interfaces to which this multicast interface is bound, or
* null if it is not bound.
* @throws NoSuchInterfaceException
* If there is no such multicast interface.
*/
Object[] lookupGCMMulticast(String multicastItfName)
throws NoSuchInterfaceException;
}