general.interface.ts 1.9 KB

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