fix(core): update to transparent universe

This commit is contained in:
2018-05-28 12:07:25 +02:00
parent 0e0ffb7634
commit fe91459510
15 changed files with 134 additions and 480 deletions
+7 -6
View File
@@ -12,26 +12,27 @@ import { rxjs } from 'smartrx';
* universe store handles the creation, storage and retrieval of messages.
*/
export class UniverseCache {
// ========
// INSTANCE
// ========
public standardMessageExpiry: number;
public destructionTime: number = 60000;
/**
* stores messages for this instance
*/
public messageCache = new Objectmap<UniverseMessage>();
public messageMap = new Objectmap<UniverseMessage>();
/**
* stores the channels that are available within the universe
*/
public channelCache = new Objectmap<UniverseChannel>();
public channelMap = new Objectmap<UniverseChannel>();
/**
* allows messages to be processed in a blacklist mode for further analysis
*/
public blackListChannel = new UniverseChannel(this, 'blacklist', 'nada');
private lastId: number = 0; // stores the last id
constructor(standardMessageExpiryArg: number) {
this.standardMessageExpiry = standardMessageExpiryArg;
}
@@ -44,14 +45,14 @@ export class UniverseCache {
public async addMessage(messageArg: UniverseMessage) {
messageArg.setUniverseCache(this);
UniverseChannel.authorizeAMessageForAChannel(this, messageArg);
this.messageCache.add(messageArg);
this.messageMap.add(messageArg);
}
/**
* Read a message from the UniverseStore
*/
public readMessagesYoungerThan(unixTimeArg?: number): Observable<UniverseMessage> {
const messageObservable = rxjs.Observable.from(this.messageCache.getArray()).filter(
const messageObservable = rxjs.Observable.from(this.messageMap.getArray()).filter(
messageArg => {
return messageArg.timestamp.isYoungerThanMilliSeconds(this.destructionTime);
}