added different stats messages
This commit is contained in:
parent
28ef543265
commit
f705aa40b9
4 changed files with 392 additions and 375 deletions
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
@implementation GGSNetwork
|
@implementation GGSNetwork
|
||||||
|
|
||||||
#define GGS_HOST @"localhost"
|
#define GGS_HOST @"ggs.jeena.net"
|
||||||
#define GGS_PORT 9000
|
#define GGS_PORT 9000
|
||||||
#define NO_TIMEOUT -1
|
#define NO_TIMEOUT -1
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -43,7 +43,7 @@ create_message({Command, Data}) ->
|
||||||
%% Assemble a message which can b
|
%% Assemble a message which can b
|
||||||
%e used as a reply to a client
|
%e used as a reply to a client
|
||||||
create_message(Cmd, Enc, Acc, Data) ->
|
create_message(Cmd, Enc, Acc, Data) ->
|
||||||
ggs_stats:message(),
|
ggs_stats:message(server),
|
||||||
Length = integer_to_list(string:len(Data)),
|
Length = integer_to_list(string:len(Data)),
|
||||||
Msg = "Client-Command: " ++ Cmd ++ "\n" ++
|
Msg = "Client-Command: " ++ Cmd ++ "\n" ++
|
||||||
"Client-Encoding: " ++ Enc ++ "\n" ++
|
"Client-Encoding: " ++ Enc ++ "\n" ++
|
||||||
|
@ -110,7 +110,7 @@ code_change(_OldVsn, State, _Extra) ->
|
||||||
|
|
||||||
|
|
||||||
prettify(Args, Data) ->
|
prettify(Args, Data) ->
|
||||||
ggs_stats:message(),
|
ggs_stats:message(client),
|
||||||
case lists:keyfind("Server-Command", 1, Args) of
|
case lists:keyfind("Server-Command", 1, Args) of
|
||||||
{_, Value} ->
|
{_, Value} ->
|
||||||
{srv_cmd, Value, Args, Data};
|
{srv_cmd, Value, Args, Data};
|
||||||
|
@ -118,7 +118,7 @@ prettify(Args, Data) ->
|
||||||
case lists:keyfind("Game-Command", 1, Args) of
|
case lists:keyfind("Game-Command", 1, Args) of
|
||||||
{_, Value} ->
|
{_, Value} ->
|
||||||
{game_cmd, Value, Args, Data};
|
{game_cmd, Value, Args, Data};
|
||||||
Other ->
|
_Other ->
|
||||||
ok
|
ok
|
||||||
end
|
end
|
||||||
end.
|
end.
|
||||||
|
|
|
@ -1,15 +1,18 @@
|
||||||
-module(ggs_stats).
|
-module(ggs_stats).
|
||||||
-export([start_link/0, message/0, print/0, tick/0]).
|
-export([start_link/0, message/1, print/0, tick/0]).
|
||||||
-behaviour(gen_server).
|
-behaviour(gen_server).
|
||||||
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
|
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
|
||||||
terminate/2, code_change/3]).
|
terminate/2, code_change/3]).
|
||||||
-vsn(0).
|
-vsn(0).
|
||||||
|
|
||||||
-record(ate, { count = 0 }).
|
-record(ate, {
|
||||||
|
server_messages = 0,
|
||||||
|
client_messages = 0
|
||||||
|
}).
|
||||||
-define(SERVER, ?MODULE).
|
-define(SERVER, ?MODULE).
|
||||||
|
|
||||||
message() ->
|
message(Type) ->
|
||||||
gen_server:cast(ggs_stats, add_one).
|
gen_server:cast(ggs_stats, {add_one, Type}).
|
||||||
|
|
||||||
print() ->
|
print() ->
|
||||||
gen_server:cast(ggs_stats, print).
|
gen_server:cast(ggs_stats, print).
|
||||||
|
@ -20,15 +23,27 @@ tick() ->
|
||||||
timer:apply_after(1000, ggs_stats, tick, []).
|
timer:apply_after(1000, ggs_stats, tick, []).
|
||||||
|
|
||||||
start_link() ->
|
start_link() ->
|
||||||
gen_server:start_link({local, ?SERVER}, ?MODULE, [0], []).
|
gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).
|
||||||
|
|
||||||
|
|
||||||
init([Count]) ->
|
init(_Args) ->
|
||||||
St = #ate{ count = Count },
|
St = #ate{
|
||||||
|
server_messages = 0,
|
||||||
|
client_messages = 0
|
||||||
|
},
|
||||||
{ok, St}.
|
{ok, St}.
|
||||||
|
|
||||||
handle_cast(add_one, St) ->
|
handle_cast({add_one, Type}, St) ->
|
||||||
NewSt = #ate { count = St#ate.count + 1},
|
case Type of
|
||||||
|
server -> NewSt = #ate {
|
||||||
|
server_messages = St#ate.server_messages + 1,
|
||||||
|
client_messages = St#ate.client_messages
|
||||||
|
};
|
||||||
|
client -> NewSt = #ate {
|
||||||
|
server_messages = St#ate.server_messages,
|
||||||
|
client_messages = St#ate.client_messages + 1
|
||||||
|
}
|
||||||
|
end,
|
||||||
{noreply, NewSt};
|
{noreply, NewSt};
|
||||||
|
|
||||||
handle_cast(print, St) ->
|
handle_cast(print, St) ->
|
||||||
|
|
Reference in a new issue