|
|
|
@ -81,28 +81,53 @@ abstract class Transport {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sealed interface Event {
|
|
|
|
|
fun post(status: TransportStatusCode)
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Base Event that represents action that happened on Transport
|
|
|
|
|
*
|
|
|
|
|
* @property status event status code
|
|
|
|
|
* @constructor Create Event
|
|
|
|
|
*/
|
|
|
|
|
sealed class Event(private val status: TransportStatusCode)
|
|
|
|
|
|
|
|
|
|
data class StatusChanged (
|
|
|
|
|
/**
|
|
|
|
|
* Data class to notify status changes
|
|
|
|
|
* Equivalent to transport.h: signal_statuschange_t
|
|
|
|
|
*
|
|
|
|
|
* @property newStatus event status code
|
|
|
|
|
* @constructor Create StatusChanged Event
|
|
|
|
|
*/
|
|
|
|
|
data class StatusChanged(
|
|
|
|
|
val newStatus: TransportStatusCode
|
|
|
|
|
) : Event {
|
|
|
|
|
override fun post(status: TransportStatusCode) {
|
|
|
|
|
TODO("Not yet implemented")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
class OnSent ( // Data class to notify message sent
|
|
|
|
|
) : Event(newStatus)
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Data class to notify message sent
|
|
|
|
|
* Equivalent to transport.h: signal_sendto_result_t
|
|
|
|
|
*
|
|
|
|
|
* @property status event status code
|
|
|
|
|
* @property messageId message id
|
|
|
|
|
* @property address address message was sent to
|
|
|
|
|
* @property rating rating of the message sent
|
|
|
|
|
* @property result Result with Message sent on success or Exception on Failure
|
|
|
|
|
* @constructor Create OnSent Event
|
|
|
|
|
*/
|
|
|
|
|
data class OnSent(
|
|
|
|
|
val status: TransportStatusCode,
|
|
|
|
|
val messageId: String,
|
|
|
|
|
val address: String,
|
|
|
|
|
val rating: Rating,
|
|
|
|
|
val result: Result<Message> // Result is the sent message on success or an Exception on failure
|
|
|
|
|
) : Event {
|
|
|
|
|
override fun post(status: TransportStatusCode) {
|
|
|
|
|
TODO("Not yet implemented")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
val result: Result<Message>
|
|
|
|
|
) : Event(status)
|
|
|
|
|
|
|
|
|
|
interface OnReceive : Event { // Notify message received to call receiveNext
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* Data class to notify message received
|
|
|
|
|
* Equivalent to transport.h: signal_incoming_message_t
|
|
|
|
|
*
|
|
|
|
|
* @property status event status code
|
|
|
|
|
* @property message message received
|
|
|
|
|
* @constructor Create OnReceive Event
|
|
|
|
|
*/
|
|
|
|
|
data class OnReceive(
|
|
|
|
|
val status: TransportStatusCode,
|
|
|
|
|
val message: Message
|
|
|
|
|
) : Event(status)
|