starting to implement new sharedObjects idea

This commit is contained in:
Kevin Jahns 2015-11-30 15:56:45 +01:00
parent f6c5051472
commit 8d14a9cbba
2 changed files with 12 additions and 13 deletions

View File

@ -186,10 +186,13 @@ module.exports = function (Y /* :any */) {
} }
} }
getNextOpId () { getNextOpId () {
if (this.userId == null) { if (this._temporaryUserIdGenerator != null) {
return this._temporaryUserIdGenerator()
} else if (this.userId == null) {
throw new Error('OperationStore not yet initialized!') throw new Error('OperationStore not yet initialized!')
} else {
return [this.userId, this.opClock++]
} }
return [this.userId, this.opClock++]
} }
/* /*
Apply a list of operations. Apply a list of operations.

View File

@ -111,18 +111,14 @@ class YConfig {
this.connector = new Y[opts.connector.name](this, opts.connector) this.connector = new Y[opts.connector.name](this, opts.connector)
this.db.requestTransaction(function * requestTransaction () { this.db.requestTransaction(function * requestTransaction () {
// create initial Map type // create initial Map type
var model = { this.store._temporaryUserIdGenerator = function () {
id: ['_', 0], return ['_', 0]
struct: 'Map',
type: 'Map',
map: {}
} }
yield* this.store.tryExecute.call(this, model) var typeid = yield* Y.Map.createType.call(this)
var root = yield* this.getType(model.id) var type = yield* this.getType(typeid)
this.store.y.root = root this.store.y.root = type
setTimeout(function () { this.store._temporaryUserIdGenerator = null
callback() setTimeout(callback, 0)
}, 0)
}) })
} }
isConnected () { isConnected () {