transport.interface.ts 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import { Observable, Subject } from "rxjs";
  2. import { AdapterProfile, AdaptorTransmissionRole, RequestResponseConnectionAdapter } from "./connector.interface";
  3. import { MessageTransmissionTransmitter } from "../transmission/msg.transmission.transmitter";
  4. import { MessageTransmissionReceiver } from "../transmission/msg.transmission.receiver";
  5. export interface MessageTransmissionManager {
  6. // what the hell is this here for
  7. getTransmissionInstance(): MessageTransmission
  8. }
  9. export interface MessageTransmission {
  10. id: string,
  11. receiverId: string,
  12. transmitterId: string,
  13. transmitter: MessageTransmissionTransmitter,
  14. receiver: MessageTransmissionReceiver,
  15. requestResponse: MessageRequestResponse
  16. }
  17. export interface FisAppActor {
  18. incomingMessageBus: Subject<any>
  19. outgoingMessageBus: Subject<any>
  20. send(message: any): Observable<any>
  21. emit(message: any): void
  22. emitStream(message: any): void
  23. subscribeMessages(messageFilter: any): Observable<any>
  24. }
  25. export interface MessageTransmissionBase extends FisAppActor {
  26. msgRepositoryService: any
  27. transmissionRole: AdaptorTransmissionRole
  28. adaptorsArray: Array<AdapterProfile> // this is the one we'll be using to catter for multiple clients
  29. transmissionService: any
  30. adapterService: any
  31. getMessageBus(bus: Bus): Observable<any>
  32. getInfo(): TransmissionProfile
  33. }
  34. export interface MessageReceiver extends MessageTransmissionBase {
  35. receiverProfile: ReceiverProfile
  36. setReceiver(receiverProfile: ReceiverProfile, role: AdaptorTransmissionRole, event: TransmissionEvent): void
  37. }
  38. export interface MessageTransmitter extends MessageTransmissionBase {
  39. transmitterProfile: TransmitterProfile
  40. setTransmitter(transmitterProfile: TransmitterProfile, role: AdaptorTransmissionRole, event: TransmissionEvent): void
  41. }
  42. export interface MessageRequestResponse extends MessageTransmissionBase {
  43. transmitterInstance: MessageTransmissionTransmitter
  44. receiverInstance: MessageTransmissionReceiver
  45. setTransmissionProfile(transmissionInfo: MessageTransmissionTransmitter, receiverInfo: MessageTransmissionReceiver, role: AdaptorTransmissionRole, event: TransmissionEvent): void
  46. }
  47. export interface FisMessage {
  48. header: {
  49. messageID: string,
  50. messageName: `NotificationMessage` | `ResponseMessage` | `RequestMessage`
  51. },
  52. data: any
  53. }
  54. export interface TransmissionProfile {
  55. id: string,
  56. name: string,
  57. dateCreated: Date
  58. }
  59. export interface TransmitterProfile extends TransmissionProfile {
  60. }
  61. export interface ReceiverProfile extends TransmissionProfile {
  62. }
  63. export interface RequestResponseProfile extends TransmissionProfile {
  64. }
  65. export interface TransmissionMessage {
  66. receiverId: string,
  67. payload: FisMessage
  68. }
  69. export enum Bus {
  70. GeneralBus,
  71. ResponseMessageBus,
  72. ErrorMessageBus,
  73. NotificationMessageBus
  74. }
  75. export interface TransmissionEvent {
  76. id: string,
  77. event: 'New Receiver' | 'New Server' | 'Incoming Message' | `Outgoing Message`,
  78. data: any
  79. }
  80. export interface EventMessage {
  81. channelId: string,
  82. message: string,
  83. payload: any
  84. }