general.interface.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /* General interface used for office work/ */
  2. import { Observable, Subject } from "rxjs"
  3. export interface ConnectionState {
  4. status: 'BUFFER' | 'DIRECT_PUBLISH';
  5. reason?: string;
  6. payload?: any;
  7. }
  8. export interface MessageLog {
  9. appLogLocId: string,
  10. appData: {
  11. msgId: string,
  12. msgLogDateTime: string,
  13. msgDateTime: string, s
  14. msgTag: string[],
  15. msgPayload: string
  16. }
  17. }
  18. export interface ServerResponse {
  19. confirmationMessage: string,
  20. msgId: string
  21. }
  22. // https://grpc.io/docs/what-is-grpc/core-concepts/
  23. export interface GrpcConnectionType {
  24. instanceType: '' | 'server' | 'client'
  25. }
  26. export interface Message {
  27. id: string,
  28. message: MessageLog | string
  29. }
  30. export type State = -1 | 0 | 1 // For status chain effect
  31. export interface ConnectionAttribute {
  32. ConnectionID: ConnectionID,
  33. outGoing: StreamAttribute,
  34. inComing: StreamAttribute,
  35. connectionStatus: Subject<ConnectionState>
  36. }
  37. export interface StreamAttribute {
  38. StreamID?: string,
  39. PublisherID?: string,
  40. SubscriberID?: string,
  41. PublisherInstance?: any,
  42. SubscriberInstance?: any,
  43. MessageToBePublished: Observable<Message> | null
  44. MessageToBeReceived: Subject<Message> | null
  45. }
  46. export interface ConnectionRequest {
  47. database?: string,
  48. server: ServerRequest,
  49. client: ClientRequest
  50. }
  51. export interface ServerRequest {
  52. name: string,
  53. serverUrl: string,
  54. connectionType: 'GRPC' | 'HTTP' | 'Socket',
  55. messageToBePublishedFromApplication: Subject<Message>
  56. }
  57. export interface ClientRequest {
  58. name: string,
  59. targetServer: string,
  60. connectionType: 'GRPC' | 'HTTP' | 'Socket',
  61. messageToBeReceivedFromRemote: Subject<Message>
  62. }
  63. export interface ConnectionID {
  64. local: string,
  65. remote: string
  66. }
  67. export interface OutGoingInfo {
  68. StreamID: string,
  69. PublisherID: string,
  70. SubscriberID: string
  71. }