presidium-db-client-server 0.1.5 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/DatabaseServer.js +47 -0
  2. package/package.json +1 -1
package/DatabaseServer.js CHANGED
@@ -5,6 +5,7 @@
5
5
  require("rubico/global")
6
6
  const HTTP = require("presidium/HTTP")
7
7
  const DiskHashTable = require("presidium/DiskHashTable")
8
+ const DiskSortedHashTable = require("presidium/DiskSortedHashTable")
8
9
  const DatabaseHandler = require("./DatabaseHandler")
9
10
 
10
11
  /**
@@ -107,6 +108,52 @@ class DatabaseServer {
107
108
  }
108
109
  this.server.close()
109
110
  }
111
+
112
+ /**
113
+ * @name registerDiskHashTable
114
+ *
115
+ * @docs
116
+ * ```specscript
117
+ * registerDiskHashTable(tableName string, config {
118
+ * storagePath: string,
119
+ * headerPath: string,
120
+ * initialLength: number,
121
+ * itemSize: number,
122
+ * resizeRatio: number,
123
+ * resizeFactor: number,
124
+ * }) -> Promise<>
125
+ * ```
126
+ */
127
+ async registerDiskHashTable(tableName, config) {
128
+ const ht = new DiskHashTable(config)
129
+ await ht.init()
130
+ await this.manifestHt.set(tableName, JSON.stringify(config))
131
+ this.hts.set(tableName, ht)
132
+ }
133
+
134
+ /**
135
+ * @name registerDiskSortedHashTable
136
+ *
137
+ * @docs
138
+ * ```specscript
139
+ * registerDiskSortedHashTable(tableName string, config {
140
+ * storagePath: string,
141
+ * headerPath: string,
142
+ * initialLength: number,
143
+ * itemSize: number,
144
+ * sortValueType: "number"|"string",
145
+ * degree: number,
146
+ * resizeRatio: number,
147
+ * resizeFactor: number,
148
+ * }) -> Promise<>
149
+ * ```
150
+ */
151
+ async registerDiskSortedHashTable(tableName, config) {
152
+ const ht = new DiskSortedHashTable(config)
153
+ await ht.init()
154
+ await this.manifestHt.set(tableName, JSON.stringify(config))
155
+ this.hts.set(tableName, ht)
156
+ }
110
157
  }
111
158
 
112
159
  module.exports = DatabaseServer
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "presidium-db-client-server",
3
- "version": "0.1.5",
3
+ "version": "0.2.0",
4
4
  "description": "Presidium DB client and server library",
5
5
  "author": "Richard Tong",
6
6
  "license": "CFOSS",