Dart Documentationbot_asyncSendValuePort<TInput, TOutput>

SendValuePort<TInput, TOutput> class

class SendValuePort<TInput, TOutput> {
  final Func1<TInput, TOutput> _func;
  final Func1<Dynamic, TInput> inputDeserializer;
  final Func1<TOutput, Dynamic> outputSerializer;

  SendValuePort(this._func, {this.inputDeserializer, this.outputSerializer}) {
    port.receive((Dynamic rawValue, SendPort reply) {
      final value = _deserialize(rawValue);

      FutureValueResult<TOutput> _message;
      try {
        final TOutput output = _func(value);
        _message = new FutureValueResult<TOutput>(output, outputSerializer);
      } catch (ex) {
        // TODO: I'd love to use real exceptions here
        // but they blow up over the wire
        // so: to string!
        final String exString = ex.toString();
        _message = new FutureValueResult<TOutput>.fromException(exString);
      }

      final map = _message.toMap();
      reply.send(map);
    });
  }

  TInput _deserialize(Dynamic input) {
    if(inputDeserializer == null) {
      return input;
    } else {
      return inputDeserializer(input);
    }
  }
}

Constructors

new SendValuePort(Func1 _func, [Func1 inputDeserializer, Func1 outputSerializer]) #

SendValuePort(this._func, {this.inputDeserializer, this.outputSerializer}) {
  port.receive((Dynamic rawValue, SendPort reply) {
    final value = _deserialize(rawValue);

    FutureValueResult<TOutput> _message;
    try {
      final TOutput output = _func(value);
      _message = new FutureValueResult<TOutput>(output, outputSerializer);
    } catch (ex) {
      // TODO: I'd love to use real exceptions here
      // but they blow up over the wire
      // so: to string!
      final String exString = ex.toString();
      _message = new FutureValueResult<TOutput>.fromException(exString);
    }

    final map = _message.toMap();
    reply.send(map);
  });
}

Properties

final Func1 inputDeserializer #

final Func1<Dynamic, TInput> inputDeserializer;

final Func1 outputSerializer #

final Func1<TOutput, Dynamic> outputSerializer;

final Type runtimeType #

inherited from Object

A representation of the runtime type of the object.

external Type get runtimeType;

Operators

bool operator ==(other) #

inherited from Object

The equality operator.

The default behavior for all Objects is to return true if and only if this and other are the same object.

If a subclass overrides the equality operator it should override the hashCode method as well to maintain consistency.

bool operator ==(other) => identical(this, other);

Methods

int hashCode() #

inherited from Object

Get a hash code for this object.

All objects have hash codes. Hash codes are guaranteed to be the same for objects that are equal when compared using the equality operator ==. Other than that there are no guarantees about the hash codes. They will not be consistent between runs and there are no distribution guarantees.

If a subclass overrides hashCode it should override the equality operator as well to maintain consistency.

external int hashCode();

noSuchMethod(String name, List args) #

inherited from Object

noSuchMethod is invoked when users invoke a non-existant method on an object. The name of the method and the arguments of the invocation are passed to noSuchMethod. If noSuchMethod returns a value, that value becomes the result of the original invocation.

The default behavior of noSuchMethod is to throw a noSuchMethodError.

external Dynamic noSuchMethod(String name, List args);

const Object() #

inherited from Object

Creates a new Object instance.

Object instances have no meaningful state, and are only useful through their identity. An Object instance is equal to itself only.

const Object();

new SendValuePort(Func1 _func, [Func1 inputDeserializer, Func1 outputSerializer]) #

SendValuePort(this._func, {this.inputDeserializer, this.outputSerializer}) {
  port.receive((Dynamic rawValue, SendPort reply) {
    final value = _deserialize(rawValue);

    FutureValueResult<TOutput> _message;
    try {
      final TOutput output = _func(value);
      _message = new FutureValueResult<TOutput>(output, outputSerializer);
    } catch (ex) {
      // TODO: I'd love to use real exceptions here
      // but they blow up over the wire
      // so: to string!
      final String exString = ex.toString();
      _message = new FutureValueResult<TOutput>.fromException(exString);
    }

    final map = _message.toMap();
    reply.send(map);
  });
}

String toString() #

inherited from Object

Returns a string representation of this object.

external String toString();