static <DATA> AsyncStream<DATA> getStream(Class<DATA> dataClass, String provider, String streamId) { return BasicRuntime.getRuntime().getStream(provider, dataClass, streamId); } }
/** * Invokes a remote method. * * @param oneWay if the target should send the response back. * @param methodId the target method id * @param params parameters for the method, must all be serializable. * @param <R> generic parameter to make the compiler happy. * @return a task that will contain the returned value, or if one-way a task indicating if the message could be send. */ @SuppressWarnings("unchecked") protected <R> Task<R> invoke(final Method method, final boolean oneWay, final int methodId, final Object[] params) { return (Task<R>) (runtime != null ? runtime : BasicRuntime.getRuntime()).invoke(this, method, oneWay, methodId, params); }
@Override public <T> T clone(T object) { try { ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); ObjectOutput outputStream = createObjectOutput(BasicRuntime.getRuntime(), byteArrayOutputStream); outputStream.writeObject(object); byte[] bytes = byteArrayOutputStream.toByteArray(); ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes); ObjectInput inputStream = createObjectInput(BasicRuntime.getRuntime(), byteArrayInputStream); return (T) inputStream.readObject(); } catch (IOException | ClassNotFoundException e) { throw new IllegalArgumentException(e); } } }
@Override public Object read(Kryo kryo, Input input, Class type) { ReferenceReplacement replacement = kryo.readObject(input, ReferenceReplacement.class); if (replacement.address != null) { return BasicRuntime.getRuntime().getRemoteObserverReference(replacement.address, (Class<ActorObserver>) replacement.interfaceClass, replacement.id); } return BasicRuntime.getRuntime().getReference(replacement.interfaceClass, replacement.id); } }
private void ensureStream() { if (actualStream == null) { if (runtime == null) { runtime = BasicRuntime.getRuntime(); } if (runtime == null) { throw new IllegalStateException("Can't find the actor runtime"); } AsyncStream<T> stream = runtime.getStream(provider, dataClass, streamId); if (stream instanceof AsyncStreamReference) { actualStream = ((AsyncStreamReference<T>) stream).actualStream; } else { actualStream = stream; } } } }
@Override public Object read(Kryo kryo, Input input, Class type) { ReferenceReplacement replacement = kryo.readObject(input, ReferenceReplacement.class); return BasicRuntime.getRuntime().getReference(replacement.interfaceClass, replacement.id); } }
@Override public RemoteReference read(Kryo kryo, Input input, Class type) { ReferenceReplacement replacement = kryo.readObject(input, ReferenceReplacement.class); return BasicRuntime.getRuntime().getReference((Class<RemoteReference>) replacement.interfaceClass, replacement.id); } }
@Override public void write(Kryo kryo, Output output, Object object) { ActorObserver objectReference = BasicRuntime.getRuntime().registerObserver(null, (ActorObserver) object); RemoteReference reference = (RemoteReference) objectReference; ReferenceReplacement replacement = new ReferenceReplacement(); replacement.address = reference.address; replacement.interfaceClass = reference._interfaceClass(); replacement.id = reference.id; kryo.writeObject(output, replacement); }
static <DATA> AsyncStream<DATA> getStream(Class<DATA> dataClass, String provider, String streamId) { return BasicRuntime.getRuntime().getStream(provider, dataClass, streamId); } }
/** * Invokes a remote method. * * @param oneWay if the target should send the response back. * @param methodId the target method id * @param params parameters for the method, must all be serializable. * @param <R> generic parameter to make the compiler happy. * @return a task that will contain the returned value, or if one-way a task indicating if the message could be send. */ @SuppressWarnings("unchecked") protected <R> Task<R> invoke(final Method method, final boolean oneWay, final int methodId, final Object[] params) { return (Task<R>) (runtime != null ? runtime : BasicRuntime.getRuntime()).invoke(this, method, oneWay, methodId, params); }
private void ensureStream() { if (actualStream == null) { if (runtime == null) { runtime = BasicRuntime.getRuntime(); } if (runtime == null) { throw new IllegalStateException("Can't find the actor runtime"); } AsyncStream<T> stream = runtime.getStream(provider, dataClass, streamId); if (stream instanceof AsyncStreamReference) { actualStream = ((AsyncStreamReference<T>) stream).actualStream; } else { actualStream = stream; } } } }