Added PeerService.generateReport().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5467 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -40,4 +40,9 @@ public interface PeerService extends InvocationService
|
||||
* Requests that the specified action be invoked on this server.
|
||||
*/
|
||||
void invokeAction (Client client, byte[] serializedAction);
|
||||
|
||||
/**
|
||||
* Generates a server status report for this peer and returns it to the supplied listener.
|
||||
*/
|
||||
void generateReport (Client client, ResultListener listener);
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
package com.threerings.presents.peer.data;
|
||||
|
||||
import com.threerings.presents.client.Client;
|
||||
import com.threerings.presents.client.InvocationService;
|
||||
import com.threerings.presents.data.InvocationMarshaller;
|
||||
import com.threerings.presents.peer.client.PeerService;
|
||||
|
||||
@@ -35,8 +36,21 @@ import com.threerings.presents.peer.client.PeerService;
|
||||
public class PeerMarshaller extends InvocationMarshaller
|
||||
implements PeerService
|
||||
{
|
||||
/** The method id used to dispatch {@link #generateReport} requests. */
|
||||
public static final int GENERATE_REPORT = 1;
|
||||
|
||||
// from interface PeerService
|
||||
public void generateReport (Client arg1, InvocationService.ResultListener arg2)
|
||||
{
|
||||
InvocationMarshaller.ResultMarshaller listener2 = new InvocationMarshaller.ResultMarshaller();
|
||||
listener2.listener = arg2;
|
||||
sendRequest(arg1, GENERATE_REPORT, new Object[] {
|
||||
listener2
|
||||
});
|
||||
}
|
||||
|
||||
/** The method id used to dispatch {@link #invokeAction} requests. */
|
||||
public static final int INVOKE_ACTION = 1;
|
||||
public static final int INVOKE_ACTION = 2;
|
||||
|
||||
// from interface PeerService
|
||||
public void invokeAction (Client arg1, byte[] arg2)
|
||||
@@ -47,7 +61,7 @@ public class PeerMarshaller extends InvocationMarshaller
|
||||
}
|
||||
|
||||
/** The method id used to dispatch {@link #ratifyLockAction} requests. */
|
||||
public static final int RATIFY_LOCK_ACTION = 2;
|
||||
public static final int RATIFY_LOCK_ACTION = 3;
|
||||
|
||||
// from interface PeerService
|
||||
public void ratifyLockAction (Client arg1, NodeObject.Lock arg2, boolean arg3)
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
package com.threerings.presents.peer.server;
|
||||
|
||||
import com.threerings.presents.client.InvocationService;
|
||||
import com.threerings.presents.data.ClientObject;
|
||||
import com.threerings.presents.peer.data.NodeObject;
|
||||
import com.threerings.presents.peer.data.PeerMarshaller;
|
||||
@@ -53,6 +54,12 @@ public class PeerDispatcher extends InvocationDispatcher<PeerMarshaller>
|
||||
throws InvocationException
|
||||
{
|
||||
switch (methodId) {
|
||||
case PeerMarshaller.GENERATE_REPORT:
|
||||
((PeerProvider)provider).generateReport(
|
||||
source, (InvocationService.ResultListener)args[0]
|
||||
);
|
||||
return;
|
||||
|
||||
case PeerMarshaller.INVOKE_ACTION:
|
||||
((PeerProvider)provider).invokeAction(
|
||||
source, (byte[])args[0]
|
||||
|
||||
@@ -50,9 +50,6 @@ import com.threerings.io.Streamable;
|
||||
|
||||
import com.threerings.util.Name;
|
||||
|
||||
import com.threerings.presents.annotation.MainInvoker;
|
||||
import com.threerings.presents.client.Client;
|
||||
import com.threerings.presents.data.ClientObject;
|
||||
import com.threerings.presents.dobj.DObject;
|
||||
import com.threerings.presents.dobj.EntryAddedEvent;
|
||||
import com.threerings.presents.dobj.EntryRemovedEvent;
|
||||
@@ -60,17 +57,25 @@ import com.threerings.presents.dobj.EntryUpdatedEvent;
|
||||
import com.threerings.presents.dobj.ObjectAccessException;
|
||||
import com.threerings.presents.dobj.SetListener;
|
||||
import com.threerings.presents.dobj.Subscriber;
|
||||
|
||||
import com.threerings.presents.annotation.MainInvoker;
|
||||
import com.threerings.presents.client.Client;
|
||||
import com.threerings.presents.data.ClientObject;
|
||||
import com.threerings.presents.server.ClientManager;
|
||||
import com.threerings.presents.server.InvocationException;
|
||||
import com.threerings.presents.server.InvocationManager;
|
||||
import com.threerings.presents.server.PresentsClient;
|
||||
import com.threerings.presents.server.PresentsDObjectMgr;
|
||||
import com.threerings.presents.server.ReportManager;
|
||||
import com.threerings.presents.server.ShutdownManager;
|
||||
import com.threerings.presents.server.net.ConnectionManager;
|
||||
|
||||
import com.threerings.presents.peer.client.PeerService;
|
||||
import com.threerings.presents.peer.data.ClientInfo;
|
||||
import com.threerings.presents.peer.data.NodeObject;
|
||||
import com.threerings.presents.peer.net.PeerCreds;
|
||||
import com.threerings.presents.peer.server.persist.NodeRecord;
|
||||
import com.threerings.presents.peer.server.persist.NodeRepository;
|
||||
import com.threerings.presents.server.ClientManager;
|
||||
import com.threerings.presents.server.InvocationManager;
|
||||
import com.threerings.presents.server.PresentsClient;
|
||||
import com.threerings.presents.server.PresentsDObjectMgr;
|
||||
import com.threerings.presents.server.ShutdownManager;
|
||||
import com.threerings.presents.server.net.ConnectionManager;
|
||||
|
||||
import static com.threerings.presents.Log.log;
|
||||
|
||||
@@ -755,6 +760,13 @@ public abstract class PeerManager
|
||||
}
|
||||
}
|
||||
|
||||
// from interface PeerProvider
|
||||
public void generateReport (ClientObject caller, PeerService.ResultListener listener)
|
||||
throws InvocationException
|
||||
{
|
||||
listener.requestProcessed(_repmgr.generateReport());
|
||||
}
|
||||
|
||||
// from interface ClientManager.ClientObserver
|
||||
public void clientSessionDidStart (PresentsClient client)
|
||||
{
|
||||
@@ -1254,6 +1266,7 @@ public abstract class PeerManager
|
||||
// our service dependencies
|
||||
@Inject protected ConnectionManager _conmgr;
|
||||
@Inject protected ClientManager _clmgr;
|
||||
@Inject protected ReportManager _repmgr;
|
||||
@Inject protected PresentsDObjectMgr _omgr;
|
||||
@Inject protected InvocationManager _invmgr;
|
||||
@Inject protected @MainInvoker Invoker _invoker;
|
||||
|
||||
@@ -21,9 +21,11 @@
|
||||
|
||||
package com.threerings.presents.peer.server;
|
||||
|
||||
import com.threerings.presents.client.InvocationService;
|
||||
import com.threerings.presents.data.ClientObject;
|
||||
import com.threerings.presents.peer.client.PeerService;
|
||||
import com.threerings.presents.peer.data.NodeObject;
|
||||
import com.threerings.presents.server.InvocationException;
|
||||
import com.threerings.presents.server.InvocationProvider;
|
||||
|
||||
/**
|
||||
@@ -31,6 +33,12 @@ import com.threerings.presents.server.InvocationProvider;
|
||||
*/
|
||||
public interface PeerProvider extends InvocationProvider
|
||||
{
|
||||
/**
|
||||
* Handles a {@link PeerService#generateReport} request.
|
||||
*/
|
||||
void generateReport (ClientObject caller, InvocationService.ResultListener arg1)
|
||||
throws InvocationException;
|
||||
|
||||
/**
|
||||
* Handles a {@link PeerService#invokeAction} request.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user