Page tree
Skip to end of metadata
Go to start of metadata

ON THIS PAGE

The registry object allows you to read from and write to the player registry (i.e. the persistent memory). The registry consists of named registry sections, and each registry section contains entries (key/value pairs).

regsitry IDL
[
    GarbageCollected
] interface Registry {                                                                                                                                          
	Promise <DOMString> read(DOMString sectionName, DOMString key);
	Promise <RegistrySection> read(DOMString sectionName);
	Promise <RegistryObject> read();
	Promise <void> write(DOMString sectionName, DOMString key, DOMString value);
	Promise <void> write(DOMString sectionName, RegistrySection section);
	Promise <void> write(RegistryObject);
};

Object Creation

To create a registry object, first load the brightsign/registry module using the Require() method. Then create an instance of the registry class.

var registryClass = require("@brightsign/registry");
var registry = new registryClass();

Registry

Use this interface for registry read/write operations. 

read()
Promise <DOMString> read(DOMString sectionName, DOMString key)

Returns the string registry value associated with the specified key. You must also specify the registry section where the key is stored.

Promise <RegistrySection> read(DOMString sectionName)

Returns the specified registry section in the following format: RegistrySection.{entry_key}.

Promise <RegistryObject> read()

Returns all registry sections in the following format: RegistryObject.{section_name}.{entry_key}.

write()
Promise <void> write(DOMString sectionName, DOMString key, DOMString value)

Writes a single registry entry to the specified registry section.

Promise <void> write(DOMString sectionName, RegistrySection section)

Writes the specified registry section to the registry. If the registry section does not exist, it will be created; otherwise, the entries will be added or updated in the existing registry section (preexisting registry entries that are not specified in the write operation will be unaffected).

Promise <void> write(RegistryObject)

Writes the specified registry sections/entries to the registry. Registry sections and entries that do not exist will be created, and existing entries will be updated (preexisting registry sections/entries that are not specified in the write operation will be unaffected).

Tip

To delete a registry entry or section, assign it a null value.

Note

All write() operations are flushed implicitly; flush calls are not necessary. 

Note

The single-entry write() method will not perform well when used to write multiple entries successively. For optimal performance, use the single-section write() method to write multiple entries to a single section and the full-registry method to write to multiple sections.

Important

While it is possible to read the entire registry, modfiy the return value, and write it back into the registry, this is not a reccomended practice: It may cause race conditions among different parts of the system that are attempting to write to the registry at the same time.

 

Example

var registryClass = require("@brightsign/registry");
var registry = new registryClass();
 
//Reads the entire registry to the log.
registry.read().then(function(registry) {
    console.log(JSON.stringify(registry));
});
 
//Reads the contents of the "networking" registry to the log.
registry.read("networking").then(
	function(registry){console.log(JSON.stringify(registry));});
 
//Writes multiple entries to multiple sections.
registry.write({networking:{ssh:"22", http_server:"8080"}, autorun:{devicesetupcomplete:"1"}} ).then(
	function(){console.log("Write Successful");});
 
//Updates a single section.
registry.write("networking", {ssh:"22", http_server:"8080"}).then(
	function(){console.log("Write Successful");});
 
//Deletes a registry section and entry, and creates a new section.
registry.write({networking:{ssh:"22", http_server:null}, autorun:null, section1:{test:"val"}} ).then(
	function(){console.log("Write Successful");});
  • No labels