internal Datastore(DatastoreManager manager, TextReader reader) { _manager = manager; _tables = new Dictionary <string, Table>(); using (var jsonReader = new JsonTextReader(reader)) { if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.StartObject) { throw new DatastoreException("Error loading datastore snapshot. Expected StartObject but was " + jsonReader.TokenType); } if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.PropertyName) { throw new DatastoreException("Error loading datastore snapshot. Expected PropertyName 'id' but was " + jsonReader.TokenType); } if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.String) { throw new DatastoreException("Error loading datastore snapshot. Expected String but was " + jsonReader.TokenType); } Id = (string)jsonReader.Value; if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.PropertyName) { throw new DatastoreException("Error loading datastore snapshot. Expected PropertyName 'handle' but was " + jsonReader.TokenType); } if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.String) { throw new DatastoreException("Error loading datastore snapshot. Expected String but was " + jsonReader.TokenType); } Handle = (string)jsonReader.Value; if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.PropertyName) { throw new DatastoreException("Error loading datastore snapshot. Expected PropertyName 'rev' but was " + jsonReader.TokenType); } if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.Integer) { throw new DatastoreException("Error loading datastore snapshot. Expected Integer but was " + jsonReader.TokenType); } Rev = (long)jsonReader.Value; if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.PropertyName) { throw new DatastoreException("Error loading datastore snapshot. Expected PropertyName 'tables' but was " + jsonReader.TokenType); } if (!jsonReader.Read() || jsonReader.TokenType != JsonToken.StartObject) { throw new DatastoreException("Error loading datastore snapshot. Expected StartObject but was " + jsonReader.TokenType); } while (jsonReader.Read() && jsonReader.TokenType == JsonToken.PropertyName) { var table = new Table(_manager, this, (string)jsonReader.Value); _tables.Add(table.Id, table); table.Load(jsonReader); } if (jsonReader.TokenType != JsonToken.EndObject) { throw new DatastoreException("Error loading datastore snapshot. Expected EndObject but was " + jsonReader.TokenType); } } }
internal Table(DatastoreManager manager, Datastore store, string id) { Datastore = store; Id = id; _manager = manager; _rows = new Dictionary <string, Row>(); _pendingChanges = new List <JArray>(); }
internal Datastore(DatastoreManager manager, string id, string handle) { Id = id; Handle = handle; Rev = 0; _manager = manager; _tables = new Dictionary <string, Table>(); }