File

C:/GoDev/src/TCSTK-Angular/projects/tibco-tcstk/tc-core-lib/src/lib/common/tc-core-queue-comm.ts

Index

Properties
Methods

Constructor

constructor()

Methods

clearMessages
clearMessages(name: string)
Parameters :
Name Type Optional
name string No
Returns : void
createQueueIfNotExists
createQueueIfNotExists(name: string)
Parameters :
Name Type Optional
name string No
Returns : void
getMessage
getMessage(name: string)
Parameters :
Name Type Optional
name string No
Returns : Observable<any>
sendMessage
sendMessage(name: string, message: string)
Parameters :
Name Type Optional
name string No
message string No
Returns : void

Properties

queues
Type : Array<literal type>
Default value : [ {name: 'sample.queue', subject: new Subject<any>()} ]
import {Injectable} from '@angular/core';
import {Observable, Subject} from 'rxjs';

@Injectable({providedIn: 'root'})
export class MessageQueueService {

  queues: Array<{ name: string, subject: Subject<any> }> = [
    {name: 'sample.queue', subject: new Subject<any>()}
  ];

  constructor() {
     console.log('Queue Message service Created...');
  }

  sendMessage(name: string, message: string) {
    this.createQueueIfNotExists(name);
    this.queues.filter(x => x.name === name)[0].subject.next({text: message});
  }

  clearMessages(name: string) {
    this.createQueueIfNotExists(name);
    this.queues.filter(x => x.name === name)[0].subject.next();
  }

  getMessage(name: string): Observable<any> {
    this.createQueueIfNotExists(name);
    return this.queues.filter(x => x.name === name)[0].subject.asObservable();
  }

  createQueueIfNotExists(name: string) {
    let queueExist = false;
    for (const q of this.queues) {
      if (q.name === name) {
        // console.log('Queue Exist: ' + q.name);
        queueExist = true;
      }
    }
    if (!queueExist) {
      console.log('Creating Queue: ' + name);
      const tempQueue = {name: name, subject: new Subject<any>()};
      this.queues.push(tempQueue);
    }
  }
}

result-matching ""

    No results matching ""