⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 misc_supp.erl

📁 OTP是开放电信平台的简称
💻 ERL
字号:
%% ``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 via the world wide web 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.%% %% The Initial Developer of the Original Code is Ericsson Utvecklings AB.%% Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings%% AB. All Rights Reserved.''%% %%     $Id$%%-module(misc_supp).%%%---------------------------------------------------------------------%%% Description:%%% This module contains MISCellaneous routines for the SUPPort tools.%%% 1) The function format_pdict/3 is called by every process that%%%    wants to format its process dictionary.  %%% 2) Very generic functions such as, multi_map, is_string...%%%%%% This module is a part of the BOS.  (format_pdict is called from%%% init, memsup, disksup, overload (but not the fileserver since it%%% formats its pdict its own way).)%%%----------------------------------------------------------------------export([format_pdict/3, format_tuples/2, assq/2, passq/2, is_string/1, 	 multi_map/2]).%%-----------------------------------------------------------------%% Uses format_tuples to format the data in process dictionary.%% This function is called from format_status_info by several modules%% that want to format its process dictionary.%% Args: Exclude is: list of atoms to exclude%%-----------------------------------------------------------------format_pdict(normal, _PDict, _Exclude) ->    [];format_pdict(all, PDict, Exclude) ->    case format_tuples(PDict, ['$sys_dict$' | Exclude]) of        [] -> [];        Data -> [{newline, 1} | Data]    end.%%-----------------------------------------------------------------%% Format all Key value tuples except for the Keys in the%% Exclude list.%%-----------------------------------------------------------------format_tuples(KeyValues, Exclude) ->    case format_tuples(KeyValues, Exclude, []) of	[] -> [];	Data -> [{data, Data}]    end.format_tuples([], _Exclude, Res) -> Res;format_tuples([{Key, Value} | T], Exclude, Res) ->    case lists:member(Key, Exclude) of	true ->	    format_tuples(T, Exclude, Res);	false ->	    format_tuples(T, Exclude, [{Key, Value} | Res])    end.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% "Very" generic misc stuff:%%--------------------------------------------------assq(Key, List) ->    case lists:keysearch(Key, 1, List) of	{value, {Key, Val}} -> {value, Val};	_ -> false    end.%% Primitive assq. Use to get items from a process dictionary list.passq(Key, List) ->    case lists:keysearch(Key, 1, List) of	{value, {Key, Val}} -> Val;	_ -> undefined    end.%% This one doesn't treat [] as a string (as io_lib:char_list)is_string([]) -> false;is_string(X) -> is_string_2(X).is_string_2([]) -> true;is_string_2([H|T]) when is_integer(H), H >= $ , H =< 255 ->    is_string_2(T);is_string_2(_) -> false.%%-----------------------------------------------------------------%% Pre: ListOfLists is a list of N lists, each of length M.%%      Func is a function of arity N.%% Returns: A list of length M where element Y is the result of%%          applying Func on [Elem(Y, List1), ..., Elem(Y, ListN)].%%-----------------------------------------------------------------multi_map(_Func, [[] | _ListOfLists]) -> [];multi_map(Func, ListOfLists) ->    [apply(Func, lists:map(fun(List) -> hd(List) end, ListOfLists)) |     multi_map(Func,	       lists:map(fun(List) -> tl(List) end, ListOfLists))].

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -