For example InMemortyRpcClient can be created with a closed uTransport instance. It calls uTransport.registerListener in constructor which fails and never retried.
Do we want to allow creation of communication wrappers passing not opened uTransport instance? Then we need a callback interface from uTransport to notify its state changes.
Or we must fail wrapper creation with a closed transport as an argument. But then wrapper reference cannot be initialized ahead (before transport is connected) and the code should check for null before using it.
For example InMemortyRpcClient can be created with a closed uTransport instance. It calls uTransport.registerListener in constructor which fails and never retried. Do we want to allow creation of communication wrappers passing not opened uTransport instance? Then we need a callback interface from uTransport to notify its state changes. Or we must fail wrapper creation with a closed transport as an argument. But then wrapper reference cannot be initialized ahead (before transport is connected) and the code should check for null before using it.