1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
%%
%% %CopyrightBegin%
%%
%% Copyright Ericsson AB 2020-2020. All Rights Reserved.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
%% You may obtain a copy of the License at
%%
%% http://www.apache.org/licenses/LICENSE-2.0
%%
%% Unless required by applicable law or agreed to in writing, software
%% distributed under the License is distributed on an "AS IS" BASIS,
%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
%% See the License for the specific language governing permissions and
%% limitations under the License.
%%
%% %CopyrightEnd%
%%
-module(esock_iow_lib).
-export([
format_counters/1, format_counters/2, format_counters/3,
iprint/1, iprint/2,
eprint/1, eprint/2,
f/2,
fts/0, fts/1
]).
%% ---------------------------------------------------------------------
format_counters(Counters) ->
format_counters(traffic, Counters).
format_counters(Type, Counters) when (Type =:= listen) orelse (Type =:= traffic) ->
format_counters(" ", Type, Counters).
format_counters(Prefix, traffic, Counters) ->
ReadByte = proplists:get_value(read_byte, Counters, -1),
ReadFails = proplists:get_value(read_fails, Counters, -1),
ReadPkg = proplists:get_value(read_pkg, Counters, -1),
ReadPkgMax = proplists:get_value(read_pkg_max, Counters, -1),
ReadTries = proplists:get_value(read_tries, Counters, -1),
ReadWaits = proplists:get_value(read_waits, Counters, -1),
WriteByte = proplists:get_value(write_byte, Counters, -1),
WriteFails = proplists:get_value(write_fails, Counters, -1),
WritePkg = proplists:get_value(write_pkg, Counters, -1),
WritePkgMax = proplists:get_value(write_pkg_max, Counters, -1),
WriteTries = proplists:get_value(write_tries, Counters, -1),
WriteWaits = proplists:get_value(write_waits, Counters, -1),
f("~n~sNumber Of Read Bytes: ~p"
"~n~sNumber Of Read Fails: ~p"
"~n~sNumber Of Read Packages: ~p"
"~n~sNumber Of Read Tries: ~p"
"~n~sNumber Of Read Waits: ~p"
"~n~sMax Read Package Size: ~p"
"~n~sNumber Of Write Bytes: ~p"
"~n~sNumber Of Write Fails: ~p"
"~n~sNumber Of Write Packages: ~p"
"~n~sNumber Of Write Tries: ~p"
"~n~sNumber Of Write Waits: ~p"
"~n~sMax Write Package Size: ~p",
[Prefix, ReadByte,
Prefix, ReadFails,
Prefix, ReadPkg,
Prefix, ReadTries,
Prefix, ReadWaits,
Prefix, ReadPkgMax,
Prefix, WriteByte,
Prefix, WriteFails,
Prefix, WritePkg,
Prefix, WriteTries,
Prefix, WriteWaits,
Prefix, WritePkgMax]);
format_counters(Prefix, listen, Counters) ->
AccSuccess = proplists:get_value(acc_success, Counters, -1),
AccFails = proplists:get_value(acc_fails, Counters, -1),
AccTries = proplists:get_value(acc_tries, Counters, -1),
AccWaits = proplists:get_value(acc_waits, Counters, -1),
f("~n~sNumber Of Successful Accepts: ~p"
"~n~sNumber Of Failed Accepts: ~p"
"~n~sNumber Of Accept Attempts: ~p"
"~n~sNumber Of Accept Waits: ~p",
[Prefix, AccSuccess,
Prefix, AccFails,
Prefix, AccTries,
Prefix, AccWaits]).
%% ---------------------------------------------------------------------
iprint(F) ->
iprint(F, []).
iprint(F, A) ->
print("INFO", F, A).
eprint(F) ->
iprint(F, []).
eprint(F, A) ->
print("ERROR", F, A).
print(Pre, F, A) ->
io:format("*** ~s *** ~s ~n" ++ F ++ "~n~n", [Pre, fts() | A]).
f(F, A) ->
lists:flatten(io_lib:format(F, A)).
ts() ->
os:timestamp().
fts() ->
fts(ts()).
fts({_N1, _N2, N3} = TS) ->
{_Date, Time} = calendar:now_to_local_time(TS),
{Hour,Min,Sec} = Time,
f("~.2.0w:~.2.0w:~.2.0w.4~w", [Hour, Min, Sec, round(N3/1000)]).
|