Commit ce113e9d1b7752063bb2ba19282ec015ca95471c
1 parent
c8462f47
Exists in
master
debug enviroment setup
Showing
6 changed files
with
88 additions
and
28 deletions
Show diff stats
.gitignore
cultural_matrix.lpi
... | ... | @@ -25,7 +25,7 @@ |
25 | 25 | </Target> |
26 | 26 | <SearchPaths> |
27 | 27 | <IncludeFiles Value="$(ProjOutDir)"/> |
28 | - <Libraries Value="/usr/lib/gcc/x86_64-linux-gnu/4.9"/> | |
28 | + <Libraries Value="/usr/lib/gcc/x86_64-linux-gnu/4.9/"/> | |
29 | 29 | <OtherUnitFiles Value="units;../../dependency/delphizmq;../../units"/> |
30 | 30 | <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> |
31 | 31 | </SearchPaths> |
... | ... | @@ -145,7 +145,7 @@ |
145 | 145 | </Target> |
146 | 146 | <SearchPaths> |
147 | 147 | <IncludeFiles Value="$(ProjOutDir)"/> |
148 | - <Libraries Value="/usr/lib/gcc/x86_64-linux-gnu/4.9"/> | |
148 | + <Libraries Value="/usr/lib/gcc/x86_64-linux-gnu/4.9/"/> | |
149 | 149 | <OtherUnitFiles Value="units;../../dependency/delphizmq;../../units"/> |
150 | 150 | <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> |
151 | 151 | </SearchPaths> | ... | ... |
cultural_matrix.lpr
... | ... | @@ -11,18 +11,29 @@ program cultural_matrix; |
11 | 11 | |
12 | 12 | {$mode objfpc}{$H+} |
13 | 13 | |
14 | +{$DEFINE DEBUG} | |
15 | + | |
14 | 16 | uses |
15 | 17 | {$IFDEF UNIX}{$IFDEF UseCThreads} |
16 | 18 | cthreads, |
17 | 19 | {$ENDIF}{$ENDIF} |
18 | 20 | Interfaces // this includes the LCL widgetset |
19 | - , StrUtils, Forms, Classes, sysutils, Dialogs | |
21 | + {$IFDEF DEBUG} | |
22 | + , Dialogs, FileUtil, LazFileUtils | |
23 | + {$IFDEF LINUX} | |
24 | + , BaseUnix | |
25 | + {$ENDIF} | |
26 | + {$ENDIF} | |
27 | + , StrUtils, Forms, Classes, sysutils | |
20 | 28 | , form_matrixgame, form_chooseactor, game_actors |
21 | 29 | , zhelpers |
22 | 30 | ; |
23 | 31 | |
24 | 32 | |
25 | 33 | var |
34 | + {$IFDEF DEBUG} | |
35 | + I : integer; | |
36 | + {$ENDIF} | |
26 | 37 | ID : TStringList; |
27 | 38 | F : string; |
28 | 39 | const |
... | ... | @@ -33,7 +44,23 @@ const |
33 | 44 | {$R *.res} |
34 | 45 | |
35 | 46 | begin |
36 | - //RequireDerivedFormResource := True; | |
47 | + {$IFDEF DEBUG} | |
48 | + for i:= 0 to 2 do | |
49 | + begin | |
50 | + if Pos((PathDelim+'P'+IntToStr(i+1)+PathDelim), Application.ExeName) > 0 then | |
51 | + Break; | |
52 | + F := ExtractFilePath(Application.ExeName)+'P'+IntToStr(i+1); | |
53 | + WriteLn(F); | |
54 | + if ForceDirectoriesUTF8(F) then // ensure we have always the newer version for tests | |
55 | + begin | |
56 | + CopyFile(Application.ExeName,F+PathDelim+ApplicationName,[cffOverwriteFile]); | |
57 | + {$IFDEF LINUX} | |
58 | + FpChmod(F+PathDelim+ApplicationName,S_IRWXU); | |
59 | + {$ENDIF} | |
60 | + end | |
61 | + else Exit; | |
62 | + end; | |
63 | + {$ENDIF} | |
37 | 64 | Application.Initialize; |
38 | 65 | F := ExtractFilePath(Application.ExeName)+PathDelim+'id'; |
39 | 66 | ID := TStringList.Create; |
... | ... | @@ -53,7 +80,9 @@ begin |
53 | 80 | on E: Exception do |
54 | 81 | begin |
55 | 82 | ID.Free; |
83 | + {$IFDEF DEBUG} | |
56 | 84 | ShowMessage(E.Message); |
85 | + {$ENDIF} | |
57 | 86 | Exit; |
58 | 87 | end; |
59 | 88 | end; | ... | ... |
units/game_control.pas
... | ... | @@ -2,6 +2,8 @@ unit game_control; |
2 | 2 | |
3 | 3 | {$mode objfpc}{$H+} |
4 | 4 | |
5 | +{$DEFINE DEBUG} | |
6 | + | |
5 | 7 | interface |
6 | 8 | |
7 | 9 | uses |
... | ... | @@ -537,9 +539,8 @@ begin |
537 | 539 | if MHas(K_STATUS) then ReceiveStatus; |
538 | 540 | |
539 | 541 | {$IFDEF DEBUG} |
540 | - AMessage.Append('MessageReceived'); | |
541 | 542 | for i:= 0 to AMessage.Count-1 do |
542 | - WriteLn(AMessage[i]); | |
543 | + WriteLn(i,':',AMessage[i]); | |
543 | 544 | {$ENDIF} |
544 | 545 | end; |
545 | 546 | |
... | ... | @@ -561,9 +562,7 @@ begin |
561 | 562 | if MHas(K_LOGIN) then ReplyLogin; |
562 | 563 | |
563 | 564 | {$IFDEF DEBUG} |
564 | - ARequest.Append('RequestReceived'); | |
565 | - for i:= 0 to ARequest.Count-1 do | |
566 | - WriteLn(ARequest[i]); | |
565 | + ARequest.Append(FZMQActor.ClassType.ClassName+':'+'AppendToRequest'); | |
567 | 566 | {$ENDIF} |
568 | 567 | end; |
569 | 568 | |
... | ... | @@ -573,9 +572,8 @@ procedure TGameControl.ReceiveReply(AReply: TStringList); |
573 | 572 | var i: integer; |
574 | 573 | begin |
575 | 574 | {$IFDEF DEBUG} |
576 | - AReply.Append('ReplyReceived'); | |
577 | 575 | for i:= 0 to AReply.Count-1 do |
578 | - WriteLn(AReply[i]); | |
576 | + WriteLn(i,':',AReply[i]); | |
579 | 577 | {$ENDIF} |
580 | 578 | end; |
581 | 579 | ... | ... |
units/game_zmq_actors.pas
... | ... | @@ -10,6 +10,8 @@ uses |
10 | 10 | //, zmq_client |
11 | 11 | ; |
12 | 12 | |
13 | + {$DEFINE DEBUG} | |
14 | + | |
13 | 15 | type |
14 | 16 | |
15 | 17 | { TZMQActor } |
... | ... | @@ -27,8 +29,8 @@ type |
27 | 29 | public |
28 | 30 | constructor Create(AOwner : TComponent; AID : UTF8String); virtual; overload; |
29 | 31 | procedure Start; virtual; |
30 | - procedure SendMessage(AMessage : array of UTF8string);virtual;abstract; | |
31 | - procedure Request(ARequest : array of UTF8string);virtual;abstract; | |
32 | + procedure SendMessage(AMessage : array of UTF8string);virtual; | |
33 | + procedure Request(ARequest : array of UTF8string);virtual; | |
32 | 34 | property OnMessageReceived : TMessRecvProc read FOnMessageReceived write FOnMessageReceived; |
33 | 35 | property OnRequestReceived : TReqRecvProc read FOnRequestReceived write FOnRequestReceived; |
34 | 36 | property OnReplyReceived : TMessRecvProc read FOnReplyReceived write FOnReplyReceived; |
... | ... | @@ -90,7 +92,6 @@ begin |
90 | 92 | FZMQServer := TZMQServerThread.Create(AID); |
91 | 93 | FZMQServer.OnMessageReceived:=@MessageReceived; |
92 | 94 | FZMQServer.OnRequestReceived:=@RequestReceived; |
93 | - | |
94 | 95 | end; |
95 | 96 | |
96 | 97 | destructor TZMQAdmin.Destroy; |
... | ... | @@ -106,16 +107,15 @@ end; |
106 | 107 | |
107 | 108 | procedure TZMQAdmin.Request(ARequest: array of UTF8string); |
108 | 109 | begin |
109 | - // do nothing, you are the server | |
110 | + {$IFDEF DEBUG} | |
111 | + WriteLn('WARNING:'+ClassType.ClassName+':'+'CannotSendRequests:'+ARequest[2]); | |
112 | + {$ENDIF} | |
110 | 113 | end; |
111 | 114 | |
112 | 115 | procedure TZMQAdmin.Start; |
113 | 116 | begin |
114 | 117 | inherited Start; |
115 | 118 | FZMQServer.Start; |
116 | - {$IFDEF DEBUG} | |
117 | - WriteLn('TZMQAdmin.Start'); | |
118 | - {$ENDIF} | |
119 | 119 | end; |
120 | 120 | |
121 | 121 | { TZMQPlayer } |
... | ... | @@ -123,13 +123,16 @@ end; |
123 | 123 | procedure TZMQPlayer.SendMessage(AMessage: array of UTF8string); |
124 | 124 | begin |
125 | 125 | {$IFDEF DEBUG} |
126 | - | |
126 | + inherited SendMessage(AMessage); | |
127 | 127 | {$ENDIF} |
128 | 128 | FZMQClient.Push(AMessage); |
129 | 129 | end; |
130 | 130 | |
131 | 131 | procedure TZMQPlayer.Request(ARequest: array of UTF8string); |
132 | 132 | begin |
133 | + {$IFDEF DEBUG} | |
134 | + inherited Request(ARequest); | |
135 | + {$ENDIF} | |
133 | 136 | FZMQClient.Request(ARequest); |
134 | 137 | end; |
135 | 138 | |
... | ... | @@ -152,25 +155,31 @@ procedure TZMQPlayer.Start; |
152 | 155 | begin |
153 | 156 | inherited Start; |
154 | 157 | FZMQClient.Start; |
155 | - {$IFDEF DEBUG} | |
156 | - WriteLn('TZMQPlayer.Start'); | |
157 | - {$ENDIF} | |
158 | 158 | end; |
159 | 159 | |
160 | 160 | { TZMQActor } |
161 | 161 | |
162 | 162 | procedure TZMQActor.MessageReceived(AMultipartMessage: TStringList); |
163 | 163 | begin |
164 | + {$IFDEF DEBUG} | |
165 | + WriteLn(ClassType.ClassName+':'+'ReceivedAMessage'); | |
166 | + {$ENDIF} | |
164 | 167 | if Assigned(FOnMessageReceived) then FOnMessageReceived(AMultipartMessage); |
165 | 168 | end; |
166 | 169 | |
167 | 170 | procedure TZMQActor.ReplyReceived(AMultipartMessage: TStringList); |
168 | 171 | begin |
172 | + {$IFDEF DEBUG} | |
173 | + WriteLn(ClassType.ClassName+':'+'ReceivedAReply'); | |
174 | + {$ENDIF} | |
169 | 175 | if Assigned(FOnReplyReceived) then FOnReplyReceived(AMultipartMessage); |
170 | 176 | end; |
171 | 177 | |
172 | 178 | procedure TZMQActor.RequestReceived(var AMultipartMessage: TStringList); |
173 | 179 | begin |
180 | + {$IFDEF DEBUG} | |
181 | + WriteLn(ClassType.ClassName+':'+'ReceivedARequest'); | |
182 | + {$ENDIF} | |
174 | 183 | if Assigned(FOnRequestReceived) then FOnRequestReceived(AMultipartMessage); |
175 | 184 | end; |
176 | 185 | |
... | ... | @@ -182,7 +191,21 @@ end; |
182 | 191 | procedure TZMQActor.Start; |
183 | 192 | begin |
184 | 193 | {$IFDEF DEBUG} |
185 | - WriteLn('TZMQActor.Start'); | |
194 | + WriteLn(ClassType.ClassName+':'+'Starting'); | |
195 | + {$ENDIF} | |
196 | +end; | |
197 | + | |
198 | +procedure TZMQActor.SendMessage(AMessage: array of UTF8string); | |
199 | +begin | |
200 | + {$IFDEF DEBUG} | |
201 | + WriteLn(ClassType.ClassName+':'+'SendingMessage:'+AMessage[1]); | |
202 | + {$ENDIF} | |
203 | +end; | |
204 | + | |
205 | +procedure TZMQActor.Request(ARequest: array of UTF8string); | |
206 | +begin | |
207 | + {$IFDEF DEBUG} | |
208 | + WriteLn(ClassType.ClassName+':'+'SendingRequest:'+ARequest[2]); | |
186 | 209 | {$ENDIF} |
187 | 210 | end; |
188 | 211 | ... | ... |
units/zmq_network.pas
... | ... | @@ -40,6 +40,7 @@ type |
40 | 40 | FMessage : TStringList; |
41 | 41 | FOnReplyReceived: TMessRecvProc; |
42 | 42 | FOnMessageReceived: TMessRecvProc; |
43 | + procedure ThreadStarted; | |
43 | 44 | procedure MessageReceived; |
44 | 45 | protected |
45 | 46 | procedure Execute; override; |
... | ... | @@ -69,7 +70,7 @@ type |
69 | 70 | FReplier : TZMQSocket; |
70 | 71 | FPoller : TZMQPoller; |
71 | 72 | FMessage : TStringList; |
72 | - procedure Connect; | |
73 | + procedure ThreadStart; | |
73 | 74 | procedure MessageReceived; |
74 | 75 | procedure RequestReceived; |
75 | 76 | protected |
... | ... | @@ -97,6 +98,12 @@ const |
97 | 98 | |
98 | 99 | { TZMQClientThread } |
99 | 100 | |
101 | +procedure TZMQClientThread.ThreadStarted; | |
102 | +begin | |
103 | + {$IFDEF DEBUG} | |
104 | + WriteLn(ClassType.ClassName+':'+'Started'); | |
105 | + {$ENDIF} | |
106 | +end; | |
100 | 107 | |
101 | 108 | procedure TZMQClientThread.MessageReceived; |
102 | 109 | begin |
... | ... | @@ -170,6 +177,7 @@ begin |
170 | 177 | inherited Destroy; |
171 | 178 | end; |
172 | 179 | |
180 | +// Send a blocking Request(identity, ' ', s1, .. sn) | |
173 | 181 | procedure TZMQClientThread.Request(AMultipartMessage: array of UTF8String); |
174 | 182 | var AReply : TStringList; |
175 | 183 | begin |
... | ... | @@ -194,10 +202,10 @@ end; |
194 | 202 | |
195 | 203 | |
196 | 204 | |
197 | -procedure TZMQServerThread.Connect; | |
205 | +procedure TZMQServerThread.ThreadStart; | |
198 | 206 | begin |
199 | 207 | {$IFDEF DEBUG} |
200 | - WriteLn('TZMQServerThread.Started'); | |
208 | + WriteLn(ClassType.ClassName+':'+'Started'); | |
201 | 209 | {$ENDIF} |
202 | 210 | end; |
203 | 211 | |
... | ... | @@ -217,7 +225,7 @@ var |
217 | 225 | LPollCount, |
218 | 226 | LMessagesCount : integer; |
219 | 227 | begin |
220 | - Synchronize(@Connect); | |
228 | + Synchronize(@ThreadStart); | |
221 | 229 | LPollCount := 0; |
222 | 230 | LMessagesCount := 0; |
223 | 231 | LMultipartMessage := TStringList.Create; | ... | ... |