Lines Matching refs:store

86 		Logging.info "store|node" "Permission denied: Domain %d not owner" (get_owner node);
98 (* represent a path in a store.
228 let get_root store = store.root
229 let set_root store root = store.root <- root
231 let get_quota store = store.quota
232 let set_quota store quota = store.quota <- quota
235 let path_mkdir store perm path =
245 store.root
247 Path.apply_modify store.root path do_mkdir
249 let path_write store perm path value =
262 Node.check_perm store.root perm Perms.WRITE;
263 Node.set_value store.root value, false
265 Path.apply_modify store.root path do_write, !node_created
267 let path_rm store perm path =
276 Node.del_all_children store.root
278 Path.apply_modify store.root path do_rm
280 let path_setperms store perm path perms =
282 Node.set_perms store.root perms
291 Path.apply_modify store.root path do_setperms
294 let get_node store path =
295 Path.get_node store.root path
297 let get_deepest_existing_node store path =
298 Path.get_deepest_existing_node store.root path
300 let read store perm path =
307 let ent = store.root in
311 Path.apply store.root path do_read
313 let ls store perm path =
316 (Node.get_children store.root)
322 Path.apply store.root path do_ls in
325 let getperms store perm path =
327 (Node.get_perms store.root)
333 Path.apply store.root path fct
335 let path_exists store path =
343 Path.apply store.root path check_exist
375 let dump_fct store f = traversal store.root f
376 let dump store out_chan = dump_store out_chan store.root
377 let dump_stdout store = dump_store stdout store.root
378 let dump_buffer store = dump_store_buf store.root
382 let set_node store path node orig_quota mod_quota =
383 let root = Path.set_node store.root path node in
384 store.root <- root;
385 Quota.merge orig_quota mod_quota store.quota
387 let write store perm path value =
388 let node, existing = get_deepest_existing_node store path in
392 Quota.check store.quota (-1) (String.length value)
395 Quota.check store.quota owner (String.length value);
396 let root, node_created = path_write store perm path value in
397 store.root <- root;
399 then Quota.add_entry store.quota owner
401 let mkdir store perm path =
402 let node, existing = get_deepest_existing_node store path in
405 if not (existing || (Perms.Connection.is_dom0 perm)) then Quota.check store.quota owner 0;
406 store.root <- path_mkdir store perm path;
407 Quota.add_entry store.quota owner
409 let rm store perm path =
410 let rmed_node = Path.get_node store.root path in
414 store.root <- path_rm store perm path;
415 Node.recurse (fun node -> Quota.del_entry store.quota (Node.get_owner node)) rmed_node
417 let setperms store perm path nperms =
418 match Path.get_node store.root path with
423 …if not ((old_owner = new_owner) || (Perms.Connection.is_dom0 perm)) then Quota.check store.quota n…
424 store.root <- path_setperms store perm path nperms;
425 Quota.del_entry store.quota old_owner;
426 Quota.add_entry store.quota new_owner
429 store: t; RecordField
440 let get_ops store perms = {
441 store = store;
442 write = write store perms;
443 mkdir = mkdir store perms;
444 rm = rm store perms;
445 setperms = setperms store perms;
446 ls = ls store perms;
447 read = read store perms;
448 getperms = getperms store perms;
449 path_exists = path_exists store;
458 let copy store = {
459 stat_transaction_coalesce = store.stat_transaction_coalesce;
460 stat_transaction_abort = store.stat_transaction_abort;
461 root = store.root;
462 quota = Quota.copy store.quota;
465 let mark_symbols store =
466 Node.recurse (fun node -> Symbol.mark_as_used node.Node.name) store.root
468 let incr_transaction_coalesce store =
469 store.stat_transaction_coalesce <- store.stat_transaction_coalesce + 1
470 let incr_transaction_abort store =
471 store.stat_transaction_abort <- store.stat_transaction_abort + 1
473 let stats store =
475 traversal store.root (fun path node ->
478 !nb_nodes, store.stat_transaction_abort, store.stat_transaction_coalesce