blob: d88f2c8e6fcdf3da3c5d491e54939824e8d83014 [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// This file was auto-generated by the vanadium vdl tool.
// Source(s): media.vdl
package io.v.x.media_sharing;
/**
* Implementation of the {@link MediaSharingClient} interface.
*/
final class MediaSharingClientImpl implements io.v.x.media_sharing.MediaSharingClient {
private final io.v.v23.rpc.Client client;
private final java.lang.String vName;
/**
* Creates a new instance of {@link MediaSharingClientImpl}.
*
* @param client Vanadium client
* @param vName remote server name
*/
public MediaSharingClientImpl(io.v.v23.rpc.Client client, java.lang.String vName) {
this.client = client;
this.vName = vName;
}
private io.v.v23.rpc.Client getClient(io.v.v23.context.VContext context) {
return this.client != null ? client : io.v.v23.V.getClient(context);
}
// Methods from interface MediaSharingClient.
@Override
public void displayUrl(io.v.v23.context.VContext context, final java.lang.String url) throws io.v.v23.verror.VException {
displayUrl(context, url, null);
}
@Override
public void displayUrl(io.v.v23.context.VContext context, final java.lang.String url, io.v.v23.Options vOpts) throws io.v.v23.verror.VException {
// Start the call.
java.lang.Object[] _args = new java.lang.Object[]{ url };
java.lang.reflect.Type[] _argTypes = new java.lang.reflect.Type[]{ new com.google.common.reflect.TypeToken<java.lang.String>(){}.getType() };
final io.v.v23.rpc.Client.Call _call = getClient(context).startCall(context, this.vName, "displayUrl", _args, _argTypes, vOpts);
// Finish the call.
java.lang.reflect.Type[] _resultTypes = new java.lang.reflect.Type[]{};
_call.finish(_resultTypes);
}
@Override
public io.v.v23.vdl.ClientStream<byte[], java.lang.Void, java.lang.Void> displayBytes(io.v.v23.context.VContext context, final java.lang.String mediaType) throws io.v.v23.verror.VException {
return displayBytes(context, mediaType, null);
}
@Override
public io.v.v23.vdl.ClientStream<byte[], java.lang.Void, java.lang.Void> displayBytes(io.v.v23.context.VContext context, final java.lang.String mediaType, io.v.v23.Options vOpts) throws io.v.v23.verror.VException {
// Start the call.
java.lang.Object[] _args = new java.lang.Object[]{ mediaType };
java.lang.reflect.Type[] _argTypes = new java.lang.reflect.Type[]{ new com.google.common.reflect.TypeToken<java.lang.String>(){}.getType() };
final io.v.v23.rpc.Client.Call _call = getClient(context).startCall(context, this.vName, "displayBytes", _args, _argTypes, vOpts);
// Finish the call.
return new io.v.v23.vdl.ClientStream<byte[], java.lang.Void, java.lang.Void>() {
@Override
public void send(byte[] item) throws io.v.v23.verror.VException {
java.lang.reflect.Type type = new com.google.common.reflect.TypeToken<byte[]>() {}.getType();
_call.send(item, type);
}
@Override
public java.lang.Void recv() throws java.io.EOFException, io.v.v23.verror.VException {
java.lang.reflect.Type type = new com.google.common.reflect.TypeToken<java.lang.Void>() {}.getType();
java.lang.Object result = _call.recv(type);
try {
return (java.lang.Void)result;
} catch (java.lang.ClassCastException e) {
throw new io.v.v23.verror.VException("Unexpected result type: " + result.getClass().getCanonicalName());
}
}
@Override
public java.lang.Void finish() throws io.v.v23.verror.VException {
java.lang.reflect.Type[] resultTypes = new java.lang.reflect.Type[]{};
_call.finish(resultTypes);
return null;
}
};
}
}