Files
narya/src/java/com/threerings/presents/dobj/RootDObjectManager.java
T
Michael Bayne bc9f53396c Revamped distributed object creation. There was no particular reason to create
distributed objects by reflection since we don't allow clients to create
objects, furthermore we needn't do it asynchronously. The object creation
methods were moved into the server-side only interface and made "immediate", so
the caller creates a derived instance of DObject and registers it with the
system instead of creating it with a Subscriber callback.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4342 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-08-23 23:46:48 +00:00

57 lines
2.2 KiB
Java

//
// $Id$
//
// Narya library - tools for developing networked games
// Copyright (C) 2002-2004 Three Rings Design, Inc., All Rights Reserved
// http://www.threerings.net/code/narya/
//
// 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.1 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
package com.threerings.presents.dobj;
/**
* The root distributed object manager extends the basic distributed
* object manager interface with methods that can only be guaranteed to
* work in the virtual machine that is hosting the distributed objects in
* question. VMs that operate proxies of objects can only implement the
* basic distributed object manager interface.
*/
public interface RootDObjectManager extends DObjectManager
{
/**
* Looks up and returns the requested distributed object in the dobj
* table, returning null if no object exists with that oid.
*/
public DObject getObject (int oid);
/**
* Registers a distributed object instance of the supplied class with the
* system and assigns it an oid. When the call returns the object will be
* registered with the system and its oid will have been assigned.
*
* @return the registered object for the caller's convenience.
*/
public <T extends DObject> T registerObject (T object);
/**
* Requests that the specified object be destroyed. Once destroyed an
* object is removed from the runtime system and may no longer have
* events dispatched on it.
*
* @param oid The object id of the distributed object to be destroyed.
*/
public void destroyObject (int oid);
}