diff options
author | Ben Hood <0x6e6562@gmail.com> | 2008-07-06 22:12:38 +0100 |
---|---|---|
committer | Ben Hood <0x6e6562@gmail.com> | 2008-07-06 22:12:38 +0100 |
commit | b985a1832ba273eb7589bac5a3c44da130067d43 (patch) | |
tree | 121a8f51f2173f34f2b084e281e789a07a6431fd | |
parent | ccdf9a6065af6fb7523b25b694ea8e62c27a776f (diff) | |
download | rabbitmq-server-b985a1832ba273eb7589bac5a3c44da130067d43.tar.gz |
Tightened up the code in rabbit_realm a little bit
-rw-r--r-- | src/rabbit_realm.erl | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/rabbit_realm.erl b/src/rabbit_realm.erl index 46071ed5..2ededb5f 100644 --- a/src/rabbit_realm.erl +++ b/src/rabbit_realm.erl @@ -109,25 +109,21 @@ list_vhost_realms(VHostPath) -> VHostPath, fun () -> mnesia:read({vhost_realm, VHostPath}) end))]. -add(Name = #resource{kind = realm}, R = #resource{name = Resource}) -> - Table = realm_table_for_resource(R), - Fun = fun() -> mnesia:write({Table,Name,Resource}) end, - manage_link(Fun,Name). +add(Realm = #resource{kind = realm}, Resource = #resource{}) -> + manage_link(fun mnesia:write/1, Realm, Resource). -delete(Name = #resource{kind = realm}, R = #resource{name = Resource}) -> - Table = realm_table_for_resource(R), - Fun = fun() -> mnesia:delete_object({Table,Name,Resource}) end, - manage_link(Fun,Name). +delete(Realm = #resource{kind = realm}, Resource = #resource{}) -> + manage_link(fun mnesia:delete_object/1, Realm, Resource). % This links or unlinks a resource to a realm -manage_link(Action, Realm) -> +manage_link(Action, Realm = #resource{kind = realm, name = RealmName}, + Resource = #resource{name = ResourceName}) -> + Table = realm_table_for_resource(Resource), rabbit_misc:execute_mnesia_transaction( fun () -> case mnesia:read({realm, Realm}) of - [] -> - mnesia:abort(not_found); - [_] -> - apply(Action,[]) + [] -> mnesia:abort(not_found); + [_] -> Action({Table, RealmName, ResourceName}) end end). |