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
#define GGS_HOST @"localhost"
#define GGS_HOST @"ggs.jeena.net"
#define GGS_PORT 9000
#define NO_TIMEOUT -1

View file

@ -43,7 +43,7 @@ create_message({Command, Data}) ->
%% Assemble a message which can b
%e used as a reply to a client
create_message(Cmd, Enc, Acc, Data) ->
ggs_stats:message(),
ggs_stats:message(server),
Length = integer_to_list(string:len(Data)),
Msg = "Client-Command: " ++ Cmd ++ "\n" ++
"Client-Encoding: " ++ Enc ++ "\n" ++
@ -110,7 +110,7 @@ code_change(_OldVsn, State, _Extra) ->
prettify(Args, Data) ->
ggs_stats:message(),
ggs_stats:message(client),
case lists:keyfind("Server-Command", 1, Args) of
{_, Value} ->
{srv_cmd, Value, Args, Data};
@ -118,7 +118,7 @@ prettify(Args, Data) ->
case lists:keyfind("Game-Command", 1, Args) of
{_, Value} ->
{game_cmd, Value, Args, Data};
Other ->
_Other ->
ok
end
end.

View file

@ -1,15 +1,18 @@
-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).
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
terminate/2, code_change/3]).
-vsn(0).
-record(ate, { count = 0 }).
-record(ate, {
server_messages = 0,
client_messages = 0
}).
-define(SERVER, ?MODULE).
message() ->
gen_server:cast(ggs_stats, add_one).
message(Type) ->
gen_server:cast(ggs_stats, {add_one, Type}).
print() ->
gen_server:cast(ggs_stats, print).
@ -20,15 +23,27 @@ tick() ->
timer:apply_after(1000, ggs_stats, tick, []).
start_link() ->
gen_server:start_link({local, ?SERVER}, ?MODULE, [0], []).
gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).
init([Count]) ->
St = #ate{ count = Count },
init(_Args) ->
St = #ate{
server_messages = 0,
client_messages = 0
},
{ok, St}.
handle_cast(add_one, St) ->
NewSt = #ate { count = St#ate.count + 1},
handle_cast({add_one, Type}, St) ->
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};
handle_cast(print, St) ->