added different stats messages

This commit is contained in:
Jeena Paradies 2011-04-26 16:55:48 +02:00
parent 28ef543265
commit f705aa40b9
4 changed files with 392 additions and 375 deletions

View file

@ -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

View file

@ -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.

View file

@ -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) ->