/******************************************************************************* * Copyright (c) 2004 Composent, Inc. and others. All rights reserved. This * program and the accompanying materials are made available under the terms of * the Eclipse Public License v1.0 which accompanies this distribution, and is * available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: Composent, Inc. - initial API and implementation ******************************************************************************/ package org.eclipse.ecf.core.sharedobject; import org.eclipse.ecf.core.identity.ID; import org.eclipse.ecf.core.sharedobject.events.ISharedObjectEvent; import org.eclipse.ecf.core.sharedobject.util.QueueException; /** * Implementers which represent the one-way associations between SharedObject * instances within the scope of a given ISharedObjectContainer * * @see ISharedObjectManager#connectSharedObjects(ID, ID[]) */ public interface ISharedObjectConnector { /** * Get sender ID for connector * * @return ID of shared object that is sender for this connection. Will not * return null */ public ID getSenderID(); /** * Get receiver IDs for connector * * @return ID[] of the shared objects that are the receivers for this * connection. Will not return null, but may return empty ID[] */ public ID[] getReceiverIDs(); /** * Enqueue an ISharedObjectEvent to all the receivers for connector * * @param event * to enqueue. Must not be null. * @throws QueueException * thrown if some problem enqueing to any receivers */ public void enqueue(ISharedObjectEvent event) throws QueueException; /** * Enqueue a set of ISharedObjectEvents to all the receivers for connector * * @param events [] * of events to enqueue. Must not be null. * @throws QueueException * thrown if some problem enqueing to any receivers */ public void enqueue(ISharedObjectEvent[] events) throws QueueException; /** * Dispose of this ISharedObjectConnector */ public void dispose(); }