123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import { interval, map, Subject } from "rxjs";
- import { ActorBase } from "../base/actor.base"
- import { ActorInterface, ActorMessage, ActorProfile } from "../interface/actor.sample";
- import { FisMessage } from "../interface/interface";
- class TestA extends ActorBase<{ message: string }> {
- // instantiate new actor
- constructor() {
- super();
- }
- }
- class TestB extends ActorBase<{ message: string }> {
- constructor() {
- super();
- }
- }
- function publishMessage<T>(actorProfile: ActorProfile, output: Subject<ActorMessage<T>>) {
- let count = 0
- interval(1000).pipe(
- map(time => {
- count++
- return {
- actorProfile: actorProfile,
- payload: {
- message: `Message${count} from TEST A`
- }
- } as ActorMessage<T>
- })
- ).subscribe(output)
- }
- function doThese<T>(actorProfile: ActorProfile, input: Subject<ActorMessage<T>>, output: Subject<ActorMessage<T>>, actor: ActorInterface<T>, subscribers: ActorProfile[]) {
- console.log(`${actorProfile.actorName} initiating ${actor ? `subscription to designated target` : `...`}`)
- // start logging to see if the correct messages are in
- // input = new Subject()
- input.subscribe(message => {
- console.log(`${actorProfile.actorName} Incoming Bus`, message)
- })
- // output = new Subject()
- output.subscribe(message => {
- // console.log(`${actorProfile.actorName} Outgoing Bus`, message)
- })
- // connect to target and see what happens
- let unsubscribable = actor.subscribe(actorProfile, input)
- // subscribers.find(obj => obj.actorId === )
- // start publishing messages
- publishMessage<T>(actorProfile, output)
- }
- let testA = new TestA()
- let testB = new TestB()
|