diff options
Diffstat (limited to 'lib/tv/src/tv_ets_rpc.erl')
-rw-r--r-- | lib/tv/src/tv_ets_rpc.erl | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/lib/tv/src/tv_ets_rpc.erl b/lib/tv/src/tv_ets_rpc.erl deleted file mode 100644 index ec2fde30ac..0000000000 --- a/lib/tv/src/tv_ets_rpc.erl +++ /dev/null @@ -1,140 +0,0 @@ -%% -%% %CopyrightBegin% -%% -%% Copyright Ericsson AB 1998-2009. All Rights Reserved. -%% -%% The contents of this file are subject to the Erlang Public License, -%% Version 1.1, (the "License"); you may not use this file except in -%% compliance with the License. You should have received a copy of the -%% Erlang Public License along with this software. If not, it can be -%% retrieved online at http://www.erlang.org/. -%% -%% Software distributed under the License is distributed on an "AS IS" -%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -%% the License for the specific language governing rights and limitations -%% under the License. -%% -%% %CopyrightEnd% --module(tv_ets_rpc). - - - --export([all/2, - info/4, - new/4, - tab2list/3, - insert/4, - lookup/4, - delete/4 - ]). - - - - -all(_Node, true) -> - chk(catch ets:all()); -all(Node, false) -> - chk(catch rpc:block_call(Node, ets, all, [])). - - - - -info(_Node, true, TabId, What) -> - chk(catch ets:info(TabId, What)); -info(Node, false, TabId, What) -> - chk(catch rpc:block_call(Node, ets, info, [TabId, What])). - - - - -new(_Node, true, TabName, Options) -> - case catch ets:new(TabName, Options) of - {TabName, Pid} when is_pid(Pid) -> - {TabName,Pid}; - {TabNo, Pid} when is_pid(Pid) -> - {TabNo,Pid}; - OtherResult -> - chk(OtherResult) - end; -new(Node, false, TabName, Options) -> - case catch rpc:block_call(Node, ets, new, [TabName, Options]) of - {TabName, Pid} when is_pid(Pid) -> - {TabName,Pid}; - {TabNo, Pid} when is_pid(Pid) -> - {TabNo, Pid}; - OtherResult -> - chk(OtherResult) - end. - - - - -tab2list(_Node, true, TabId) -> - chk(catch ets:tab2list(TabId)); -tab2list(Node, false, TabId) -> - chk(catch rpc:call(Node, ets, tab2list, [TabId])). - - - - -insert(_Node, true, TabId, Object) -> - chk(catch ets:insert(TabId, Object)); -insert(Node, false, TabId, Object) -> - chk(catch rpc:call(Node, ets, insert, [TabId, Object])). - - - - -lookup(_Node, true, TabId, Key) -> - chk(catch ets:lookup(TabId, Key)); -lookup(Node, false, TabId, Key) -> - chk(catch rpc:call(Node, ets, lookup, [TabId, Key])). - - - - -delete(_Node, true, TabId, Key) -> - chk(catch ets:delete(TabId, Key)); -delete(Node, false, TabId, Key) -> - chk(catch rpc:call(Node, ets, delete, [TabId, Key])). - - - - -chk(Result) -> - case Result of - undefined -> - throw(no_table); - _Anything when is_list(Result) -> - Result; - _Anything when is_atom(Result) -> - Result; - _Anything when is_integer(Result) -> - Result; - _Anything when is_pid(Result) -> - Result; - - %% Messages received when node is down. - {badrpc, nodedown} -> - throw(nodedown); - {'EXIT', nodedown} -> - throw(nodedown); - {'EXIT', {{badarg, {gen, set_monitor_node, _Args}}, _Reason}} -> - throw(nodedown); - - %% Messages received when table doesn't exist. - {'EXIT', {badarg, {ets,local_info,_Args}}} -> - %% Due to inconsistencies in R2D and earlier versions: - %% ets:info/1 returned 'undefined' when table didn't - %% exist, while ets:info/2 returned the exit-signal - %% above. This was corrected in R3A - now both functions - %% return 'undefined' :-) - throw(no_table); - {badrpc, {'EXIT', {badarg,_Reason}}} -> - throw(no_table); - {'EXIT', {badarg,_Reason}} -> - throw(no_table); - Error when is_tuple(Error) -> - throw({unexpected_error,Error}) - end. - |