(self)
| 1248 | } |
| 1249 | |
| 1250 | function insRelation(self) { |
| 1251 | |
| 1252 | if (!self.ready || self.states.relation) |
| 1253 | return; |
| 1254 | |
| 1255 | var doc = self.pending.relation.shift(); |
| 1256 | if (doc) { |
| 1257 | |
| 1258 | var rel = self.$relations[doc.name]; |
| 1259 | if (rel == null) { |
| 1260 | doc.callback(new Error('GraphDB: Relation "{0}" not found.'.format(doc.name))); |
| 1261 | return; |
| 1262 | } |
| 1263 | |
| 1264 | if (rel.locked || !rel.ready) { |
| 1265 | self.pending.relation.push(doc); |
| 1266 | setTimeout(insRelation, DELAY, self); |
| 1267 | return; |
| 1268 | } |
| 1269 | |
| 1270 | self.states.relation = true; |
| 1271 | |
| 1272 | if (doc.connect) { |
| 1273 | addRelation(self, rel, doc.indexA, doc.indexB, function(err, id) { |
| 1274 | self.states.relation = false; |
| 1275 | doc.callback(err, id); |
| 1276 | setImmediate(insRelation, self); |
| 1277 | }); |
| 1278 | } else { |
| 1279 | remRelation(self, rel, doc.indexA, doc.indexB, function(err, id) { |
| 1280 | self.states.relation = false; |
| 1281 | doc.callback(err, id); |
| 1282 | setImmediate(insRelation, self); |
| 1283 | }); |
| 1284 | } |
| 1285 | } |
| 1286 | } |
| 1287 | |
| 1288 | GP.create = function(filename, documentsize, callback) { |
| 1289 | var self = this; |
no test coverage detected