TypeChannelMessenger class abstract
Stores instance pairs and handles communication for TypeChannels.
Type channels allow for types/classes of different languages to communicate
(e.g. a Camera
class in Dart may want to communicate with a Camera
class
in Java). The Camera
class in Dart may want to control when the Java
Camera
class should call a static method, instantiate a new instance, or
call methods on that instance.
To control specific instances for a type channel, this class pairs Dart instances to instances in another language (e.g. Java/Obj-c). This API refers to this as an instance pair.
A paired object then acts as the key to communicate with it's paired object in another language and can be used to represent its paired instance when passed as an argument.
TypeChannelMessenger 1 TypeChannelMessenger 2 |------------------| |------------------| | Dart Instances |<--------->| Java Instances | |------------------| |------------------|
- A visual representation of communicating TypeChannelMessengers.
Constructors
Properties
- converter → InstanceConverter
-
Attempts to convert objects to PairedInstances and vice-versa.
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- instanceManager → InstanceManager
-
Maintains access to instances.
no setter
- messageDispatcher → TypeChannelMessageDispatcher
-
Dispatches messages to other TypeChannelMessengers.
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
createNewInstancePair(
String channelName, Object instance, List< Object?> arguments, {required bool owner}) → Future<PairedInstance?> -
Create a new PairedInstance to be paired with
instance
. -
disposeInstancePair(
Object instance) → Future< void> -
Dispose the instance pair containing
instance
. -
getChannelHandler(
String channelName) → TypeChannelHandler< Object> ? - Retrieve the registered TypeChannelHandler for a type channel.
-
getPairedObject(
PairedInstance pairedInstance) → Object? -
Retrieve the
Object
paired topairedInstance
. -
getPairedPairedInstance(
Object instance) → PairedInstance? -
Retrieve the PairedInstance paired to
instance
. -
isPaired(
Object instance) → bool -
Whether
instance
is paired with a PairedInstance. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onReceiveCreateNewInstancePair(
String channelName, PairedInstance pairedInstance, List< Object?> arguments, {required bool owner}) → Object? - Create and store a new instance pair for a type channel.
-
onReceiveDisposeInstancePair(
PairedInstance pairedInstance) → void -
Dispose of the pair containing
pairedInstance
. -
onReceiveInvokeMethod(
String channelName, PairedInstance pairedInstance, String methodName, List< Object?> arguments) → Object? -
Invoke a method on
pairedInstance
for a type channel. -
onReceiveInvokeStaticMethod(
String channelName, String methodName, List< Object?> arguments) → Object? - Invoke a static method for a type channel.
-
registerHandler(
String channelName, TypeChannelHandler< Object> handler) → void -
Sets a TypeChannelHandler for a type channel with
channelName
. -
sendInvokeMethod(
String channelName, Object instance, String methodName, List< Object?> arguments) → Future<Object?> -
Send a message to invoke a method on the PairedInstance paired with
instance
. -
sendInvokeStaticMethod(
String channelName, String methodName, List< Object?> arguments) → Future<Object?> -
Invoke static method
methodName
on type channel ofchannelName
. -
toString(
) → String -
A string representation of this object.
inherited
-
unregisterHandler(
String channelName) → void -
Removes a TypeChannelHandler for the type channel of
channelName
.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited