diff --git a/games/Pong/Classes/GGSNetwork.m b/games/Pong/Classes/GGSNetwork.m
index 32f53f0..45e7719 100644
--- a/games/Pong/Classes/GGSNetwork.m
+++ b/games/Pong/Classes/GGSNetwork.m
@@ -11,7 +11,7 @@
@implementation GGSNetwork
-#define GGS_HOST @"localhost"
+#define GGS_HOST @"ggs.jeena.net"
#define GGS_PORT 9000
#define NO_TIMEOUT -1
diff --git a/games/Pong/Pong.xcodeproj/project.xcworkspace/xcuserdata/jeena.xcuserdatad/UserInterfaceState.xcuserstate b/games/Pong/Pong.xcodeproj/project.xcworkspace/xcuserdata/jeena.xcuserdatad/UserInterfaceState.xcuserstate
index f79dc54..03c6390 100644
--- a/games/Pong/Pong.xcodeproj/project.xcworkspace/xcuserdata/jeena.xcuserdatad/UserInterfaceState.xcuserstate
+++ b/games/Pong/Pong.xcodeproj/project.xcworkspace/xcuserdata/jeena.xcuserdatad/UserInterfaceState.xcuserstate
@@ -11,7 +11,7 @@
$class
CF$UID
- 183
+ 184
NS.keys
@@ -213,11 +213,11 @@
CF$UID
- 50
+ 54
CF$UID
- 54
+ 58
CF$UID
@@ -517,25 +517,6 @@
41
NS.keys
-
-
- CF$UID
- 34
-
-
- CF$UID
- 35
-
-
- CF$UID
- 36
-
-
- CF$UID
- 37
-
-
- NS.objects
CF$UID
@@ -545,42 +526,13 @@
CF$UID
48
-
- CF$UID
- 15
-
CF$UID
49
-
-
- 324402616.78700799
- {0, 678}
- {207, 0}
-
- $class
-
- CF$UID
- 41
-
- NS.keys
-
CF$UID
- 34
-
-
- CF$UID
- 35
-
-
- CF$UID
- 36
-
-
- CF$UID
- 37
+ 50
NS.objects
@@ -603,6 +555,58 @@
+ PrimaryDocumentTimestamp
+ PrimaryDocumentVisibleCharacterRange
+ HideAllIssues
+ PrimaryDocumentSelectedCharacterRange
+ 325520518.22232997
+ {0, 682}
+ {211, 0}
+
+ $class
+
+ CF$UID
+ 41
+
+ NS.keys
+
+
+ CF$UID
+ 34
+
+
+ CF$UID
+ 35
+
+
+ CF$UID
+ 36
+
+
+ CF$UID
+ 37
+
+
+ NS.objects
+
+
+ CF$UID
+ 55
+
+
+ CF$UID
+ 56
+
+
+ CF$UID
+ 15
+
+
+ CF$UID
+ 57
+
+
+
324400740.10611397
{0, 531}
{0, 0}
@@ -616,19 +620,19 @@
CF$UID
- 55
+ 34
CF$UID
- 56
+ 35
CF$UID
- 57
+ 36
CF$UID
- 58
+ 37
NS.objects
@@ -647,14 +651,10 @@
CF$UID
- 53
+ 57
- PrimaryDocumentTimestamp
- PrimaryDocumentVisibleCharacterRange
- HideAllIssues
- PrimaryDocumentSelectedCharacterRange
324347076.57831001
{328, 2297}
@@ -667,19 +667,19 @@
CF$UID
- 55
+ 34
CF$UID
- 56
+ 35
CF$UID
- 57
+ 36
CF$UID
- 58
+ 37
NS.objects
@@ -698,7 +698,7 @@
CF$UID
- 53
+ 57
@@ -1059,7 +1059,7 @@
102
NS.time
- 324402614.75854403
+ 325520486.09508002
$classes
@@ -1070,7 +1070,7 @@
$classname
NSDate
- Today at 17:50
+ Today at 16:21
$classes
@@ -1280,11 +1280,11 @@
CF$UID
- 296
+ 298
CF$UID
- 146
+ 138
CF$UID
@@ -1292,7 +1292,7 @@
CF$UID
- 297
+ 299
CF$UID
@@ -1355,23 +1355,23 @@
CF$UID
- 146
+ 138
CF$UID
- 64
+ 139
CF$UID
- 240
+ 241
CF$UID
- 247
+ 248
CF$UID
- 286
+ 289
CF$UID
@@ -1379,18 +1379,20 @@
CF$UID
- 295
+ 64
- IDEEditorArea
+ IDETabLabel
IDEShowNavigator
- AssistantEditorsLayout
+ IDEEditorArea
IDEWorkspaceTabControllerUtilityAreaSplitView
IDENavigatorArea
IDEWorkspaceTabControllerDesignAreaSplitView
IDEShowUtilities
- IDETabLabel
+ AssistantEditorsLayout
+ GGSNetwork.m
+
$class
@@ -1399,14 +1401,6 @@
NS.keys
-
- CF$UID
- 138
-
-
- CF$UID
- 139
-
CF$UID
140
@@ -1431,9 +1425,6 @@
CF$UID
145
-
- NS.objects
-
CF$UID
146
@@ -1442,13 +1433,24 @@
CF$UID
147
+
+ NS.objects
+
CF$UID
- 190
+ 138
CF$UID
- 146
+ 148
+
+
+ CF$UID
+ 191
+
+
+ CF$UID
+ 138
CF$UID
@@ -1456,16 +1458,16 @@
CF$UID
- 219
-
-
- CF$UID
- 227
+ 220
CF$UID
228
+
+ CF$UID
+ 229
+
ShowDebuggerArea
@@ -1476,7 +1478,6 @@
DebuggerSplitView
DefaultPersistentRepresentations
layoutTree
-
$class
@@ -1487,14 +1488,14 @@
CF$UID
- 148
+ 149
NS.objects
CF$UID
- 149
+ 150
@@ -1509,14 +1510,14 @@
CF$UID
- 150
+ 151
NS.objects
CF$UID
- 151
+ 152
@@ -1525,14 +1526,10 @@
$class
CF$UID
- 183
+ 184
NS.keys
-
- CF$UID
- 152
-
CF$UID
153
@@ -1541,12 +1538,16 @@
CF$UID
154
+
+ CF$UID
+ 155
+
NS.objects
CF$UID
- 155
+ 156
CF$UID
@@ -1554,7 +1555,7 @@
CF$UID
- 188
+ 189
@@ -1565,13 +1566,13 @@
$class
CF$UID
- 175
+ 176
NS.objects
CF$UID
- 156
+ 157
@@ -1583,10 +1584,6 @@
NS.keys
-
- CF$UID
- 157
-
CF$UID
158
@@ -1611,37 +1608,41 @@
CF$UID
163
-
- NS.objects
-
CF$UID
164
+
+ NS.objects
+
CF$UID
165
CF$UID
- 179
+ 166
CF$UID
- 184
-
-
- CF$UID
- 169
+ 180
CF$UID
185
+
+ CF$UID
+ 170
+
CF$UID
186
+
+ CF$UID
+ 187
+
FileDataType
@@ -1656,22 +1657,22 @@
$class
CF$UID
- 178
+ 179
DocumentLocation
CF$UID
- 176
+ 177
DomainIdentifier
CF$UID
- 166
+ 167
IdentifierPath
CF$UID
- 167
+ 168
IndexOfDocumentIdentifier
@@ -1684,21 +1685,21 @@
$class
CF$UID
- 175
+ 176
NS.objects
CF$UID
- 168
+ 169
CF$UID
- 171
+ 172
CF$UID
- 173
+ 174
@@ -1706,12 +1707,12 @@
$class
CF$UID
- 170
+ 171
Identifier
CF$UID
- 169
+ 170
GGSNetwork.m
@@ -1728,12 +1729,12 @@
$class
CF$UID
- 170
+ 171
Identifier
CF$UID
- 172
+ 173
Classes
@@ -1741,12 +1742,12 @@
$class
CF$UID
- 170
+ 171
Identifier
CF$UID
- 174
+ 175
Pong
@@ -1763,7 +1764,7 @@
$class
CF$UID
- 177
+ 178
documentURL
@@ -1798,36 +1799,36 @@
$class
CF$UID
- 183
+ 184
NS.keys
CF$UID
- 34
+ 47
CF$UID
- 35
+ 48
CF$UID
- 36
+ 49
CF$UID
- 37
+ 50
NS.objects
CF$UID
- 180
+ 181
CF$UID
- 181
+ 182
CF$UID
@@ -1835,13 +1836,13 @@
CF$UID
- 182
+ 183
- 324402616.78781998
- {0, 678}
- {207, 0}
+ 325520518.22270298
+ {0, 682}
+ {211, 0}
$classes
@@ -1867,7 +1868,7 @@
NS.relative
CF$UID
- 187
+ 188
file://localhost/Users/jeena/Student/GGS/games/Pong/Classes/GGSNetwork.m
@@ -1875,13 +1876,13 @@
$class
CF$UID
- 175
+ 176
NS.objects
CF$UID
- 189
+ 190
@@ -1894,10 +1895,6 @@
NS.keys
-
- CF$UID
- 191
-
CF$UID
192
@@ -1918,6 +1915,10 @@
CF$UID
196
+
+ CF$UID
+ 197
+
NS.objects
@@ -1927,11 +1928,11 @@
CF$UID
- 197
+ 198
CF$UID
- 199
+ 200
CF$UID
@@ -1939,19 +1940,19 @@
CF$UID
- 210
+ 211
CF$UID
- 216
+ 217
LayoutFocusMode
console
- IDEDebuggerAreaSplitView
- LayoutMode
IDEDebugArea_SplitView
+ LayoutMode
+ IDEDebuggerAreaSplitView
variables
$class
@@ -1963,7 +1964,7 @@
CF$UID
- 198
+ 199
NS.objects
@@ -1985,14 +1986,14 @@
CF$UID
- 200
+ 201
NS.objects
CF$UID
- 201
+ 202
@@ -2007,11 +2008,11 @@
CF$UID
- 202
+ 203
CF$UID
- 207
+ 208
@@ -2019,28 +2020,28 @@
$class
CF$UID
- 183
+ 184
NS.keys
CF$UID
- 203
+ 204
CF$UID
- 204
+ 205
NS.objects
CF$UID
- 205
+ 206
CF$UID
- 206
+ 207
@@ -2052,28 +2053,28 @@
$class
CF$UID
- 183
+ 184
NS.keys
CF$UID
- 203
+ 204
CF$UID
- 204
+ 205
NS.objects
CF$UID
- 208
+ 209
CF$UID
- 209
+ 210
@@ -2089,14 +2090,14 @@
CF$UID
- 200
+ 201
NS.objects
CF$UID
- 211
+ 212
@@ -2110,11 +2111,11 @@
CF$UID
- 212
+ 213
CF$UID
- 214
+ 215
@@ -2122,28 +2123,28 @@
$class
CF$UID
- 183
+ 184
NS.keys
CF$UID
- 203
+ 204
CF$UID
- 204
+ 205
NS.objects
CF$UID
- 205
+ 206
CF$UID
- 213
+ 214
@@ -2152,28 +2153,28 @@
$class
CF$UID
- 183
+ 184
NS.keys
CF$UID
- 203
+ 204
CF$UID
- 204
+ 205
NS.objects
CF$UID
- 208
+ 209
CF$UID
- 215
+ 216
@@ -2188,14 +2189,14 @@
CF$UID
- 217
+ 218
NS.objects
CF$UID
- 218
+ 219
@@ -2211,14 +2212,14 @@
CF$UID
- 200
+ 201
NS.objects
CF$UID
- 220
+ 221
@@ -2232,11 +2233,11 @@
CF$UID
- 221
+ 222
CF$UID
- 224
+ 225
@@ -2244,28 +2245,28 @@
$class
CF$UID
- 183
+ 184
NS.keys
CF$UID
- 203
+ 204
CF$UID
- 204
+ 205
NS.objects
CF$UID
- 222
+ 223
CF$UID
- 223
+ 224
@@ -2275,33 +2276,33 @@
$class
CF$UID
- 183
+ 184
NS.keys
CF$UID
- 203
+ 204
CF$UID
- 204
+ 205
NS.objects
CF$UID
- 225
+ 226
CF$UID
- 226
+ 227
IDEDebuggerArea
- 224
+ 202
$class
@@ -2317,7 +2318,7 @@
$class
CF$UID
- 239
+ 240
geniusEditorContextNode
@@ -2327,19 +2328,19 @@
primaryEditorContextNode
CF$UID
- 229
+ 230
rootLayoutTreeNode
CF$UID
- 236
+ 237
$class
CF$UID
- 238
+ 239
children
@@ -2351,36 +2352,36 @@
documentArchivableRepresentation
CF$UID
- 230
+ 231
orientation
0
parent
CF$UID
- 236
+ 237
$class
CF$UID
- 178
+ 179
DocumentLocation
CF$UID
- 176
+ 177
DomainIdentifier
CF$UID
- 166
+ 167
IdentifierPath
CF$UID
- 231
+ 232
IndexOfDocumentIdentifier
@@ -2392,14 +2393,10 @@
$class
CF$UID
- 175
+ 176
NS.objects
-
- CF$UID
- 232
-
CF$UID
233
@@ -2408,42 +2405,46 @@
CF$UID
234
+
+ CF$UID
+ 235
+
$class
CF$UID
- 170
+ 171
Identifier
CF$UID
- 169
+ 170
$class
CF$UID
- 170
+ 171
Identifier
CF$UID
- 172
+ 173
$class
CF$UID
- 170
+ 171
Identifier
CF$UID
- 235
+ 236
Pong
@@ -2451,12 +2452,12 @@
$class
CF$UID
- 238
+ 239
children
CF$UID
- 237
+ 238
contentType
0
@@ -2477,13 +2478,13 @@
$class
CF$UID
- 175
+ 176
NS.objects
CF$UID
- 229
+ 230
@@ -2515,14 +2516,14 @@
CF$UID
- 200
+ 201
NS.objects
CF$UID
- 241
+ 242
@@ -2536,11 +2537,11 @@
CF$UID
- 242
+ 243
CF$UID
- 245
+ 246
@@ -2548,28 +2549,28 @@
$class
CF$UID
- 183
+ 184
NS.keys
CF$UID
- 203
+ 204
CF$UID
- 204
+ 205
NS.objects
CF$UID
- 243
+ 244
CF$UID
- 244
+ 245
@@ -2579,32 +2580,32 @@
$class
CF$UID
- 183
+ 184
NS.keys
CF$UID
- 203
+ 204
CF$UID
- 204
+ 205
NS.objects
CF$UID
- 243
+ 244
CF$UID
- 246
+ 247
- 238
+ 216
$class
@@ -2613,10 +2614,6 @@
NS.keys
-
- CF$UID
- 248
-
CF$UID
249
@@ -2625,20 +2622,24 @@
CF$UID
250
+
+ CF$UID
+ 251
+
NS.objects
+
+ CF$UID
+ 252
+
CF$UID
251
CF$UID
- 248
-
-
- CF$UID
- 268
+ 271
@@ -2653,10 +2654,6 @@
NS.keys
-
- CF$UID
- 252
-
CF$UID
253
@@ -2681,17 +2678,13 @@
CF$UID
258
-
- NS.objects
-
CF$UID
259
-
- CF$UID
- 15
-
+
+ NS.objects
+
CF$UID
260
@@ -2700,17 +2693,25 @@
CF$UID
15
+
+ CF$UID
+ 261
+
CF$UID
15
CF$UID
- 262
+ 15
CF$UID
- 265
+ 263
+
+
+ CF$UID
+ 268
@@ -2721,12 +2722,12 @@
IDESCMStatusFilteringEnabled
IDESelectedObjects
IDEExpandedItemsSet
- {{0, 0}, {213, 658}}
+ {{0, 0}, {213, 636}}
$class
CF$UID
- 261
+ 262
NS.objects
@@ -2744,13 +2745,13 @@
$class
CF$UID
- 175
+ 176
NS.objects
CF$UID
- 263
+ 264
@@ -2764,27 +2765,8 @@
CF$UID
- 264
+ 265
-
- CF$UID
- 172
-
-
- CF$UID
- 169
-
-
-
- Pong
-
- $class
-
- CF$UID
- 261
-
- NS.objects
-
CF$UID
266
@@ -2795,17 +2777,24 @@
+ Pong
+ Classes
+ GGSNetwork.m
$class
CF$UID
- 104
+ 262
NS.objects
CF$UID
- 264
+ 269
+
+
+ CF$UID
+ 270
@@ -2819,11 +2808,25 @@
CF$UID
- 264
+ 265
+
+
+
+
+ $class
+
+ CF$UID
+ 104
+
+ NS.objects
+
+
+ CF$UID
+ 265
CF$UID
- 172
+ 266
@@ -2835,18 +2838,6 @@
NS.keys
-
- CF$UID
- 269
-
-
- CF$UID
- 270
-
-
- CF$UID
- 271
-
CF$UID
272
@@ -2875,13 +2866,6 @@
CF$UID
278
-
- NS.objects
-
-
- CF$UID
- 15
-
CF$UID
279
@@ -2890,6 +2874,17 @@
CF$UID
280
+
+ CF$UID
+ 281
+
+
+ NS.objects
+
+
+ CF$UID
+ 15
+
CF$UID
282
@@ -2898,26 +2893,34 @@
CF$UID
283
-
- CF$UID
- 15
-
-
- CF$UID
- 15
-
-
- CF$UID
- 284
-
-
- CF$UID
- 15
-
CF$UID
285
+
+ CF$UID
+ 286
+
+
+ CF$UID
+ 15
+
+
+ CF$UID
+ 15
+
+
+ CF$UID
+ 287
+
+
+ CF$UID
+ 15
+
+
+ CF$UID
+ 288
+
IDEErrorFilteringEnabled
@@ -2930,12 +2933,12 @@
IDECollapsedTypes
IDERecentFilteringEnabled
IDECollapsedGroups
- {{0, 0}, {213, 636}}
+ {{0, 0}, {213, 614}}
$class
CF$UID
- 281
+ 284
NS.objects
@@ -2954,7 +2957,7 @@
$class
CF$UID
- 281
+ 284
NS.objects
@@ -2972,7 +2975,7 @@
$class
CF$UID
- 281
+ 284
NS.objects
@@ -2981,7 +2984,7 @@
$class
CF$UID
- 281
+ 284
NS.objects
@@ -2996,14 +2999,14 @@
CF$UID
- 200
+ 201
NS.objects
CF$UID
- 287
+ 290
@@ -3017,15 +3020,15 @@
CF$UID
- 288
+ 291
CF$UID
- 290
+ 293
CF$UID
- 292
+ 295
@@ -3033,17 +3036,17 @@
$class
CF$UID
- 183
+ 184
NS.keys
CF$UID
- 203
+ 204
CF$UID
- 204
+ 205
NS.objects
@@ -3054,7 +3057,7 @@
CF$UID
- 289
+ 292
@@ -3063,28 +3066,28 @@
$class
CF$UID
- 183
+ 184
NS.keys
CF$UID
- 203
+ 204
CF$UID
- 204
+ 205
NS.objects
CF$UID
- 129
+ 131
CF$UID
- 291
+ 294
@@ -3093,39 +3096,38 @@
$class
CF$UID
- 183
+ 184
NS.keys
CF$UID
- 203
+ 204
CF$UID
- 204
+ 205
NS.objects
CF$UID
- 293
+ 296
CF$UID
- 294
+ 297
IDEUtilitiesArea
260
- GGSNetwork.m
$class
CF$UID
- 175
+ 176
NS.objects
@@ -3135,7 +3137,7 @@
- {{160, 0}, {1116, 778}}
+ {{1411, -567}, {1116, 778}}
$top
diff --git a/src/ggs_protocol.erl b/src/ggs_protocol.erl
index a0f68a3..39e0a6f 100644
--- a/src/ggs_protocol.erl
+++ b/src/ggs_protocol.erl
@@ -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.
diff --git a/src/ggs_stats.erl b/src/ggs_stats.erl
index c3a94b6..1d5888e 100644
--- a/src/ggs_stats.erl
+++ b/src/ggs_stats.erl
@@ -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) ->