summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Hood <0x6e6562@gmail.com>2008-07-06 22:12:38 +0100
committerBen Hood <0x6e6562@gmail.com>2008-07-06 22:12:38 +0100
commitb985a1832ba273eb7589bac5a3c44da130067d43 (patch)
tree121a8f51f2173f34f2b084e281e789a07a6431fd
parentccdf9a6065af6fb7523b25b694ea8e62c27a776f (diff)
downloadrabbitmq-server-b985a1832ba273eb7589bac5a3c44da130067d43.tar.gz
Tightened up the code in rabbit_realm a little bit
-rw-r--r--src/rabbit_realm.erl22
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).