@openhps/core
Version:
Open Hybrid Positioning System - Core component
37 lines • 1.03 kB
JavaScript
import { DataService } from './DataService';
import { MemoryDataService } from './MemoryDataService';
/**
* Basic key value data service. This data service can be used to communicate
* between workers and the main thread.
*/
export class KeyValueDataService extends DataService {
constructor(uid, dataServiceDriver) {
super(dataServiceDriver);
if (!dataServiceDriver) {
this.driver = new MemoryDataService(Object, {
serialize: d => d,
deserialize: d => d
});
this.driver.dataType = Object;
}
this.uid = uid || this.constructor.name;
}
/**
* Get the value of a key
* @param {string} key Key
* @returns {Promise<any>} Promise of the value
*/
getValue(key) {
return this.findByUID(key);
}
/**
* Set a value
* @param {string} key Key to use
* @param {any} value Value to store
* @returns {Promise<void>} Promise of setting the value
*/
setValue(key, value) {
this.emit('set', key, value);
return this.insert(key, value);
}
}