15 |
15 |
16 "{ NameSpace: Smalltalk }" |
16 "{ NameSpace: Smalltalk }" |
17 |
17 |
18 SystemStatusMonitor subclass:#ExternalStreamMonitor |
18 SystemStatusMonitor subclass:#ExternalStreamMonitor |
19 instanceVariableNames:'semaphores streams filterOpenStreamsOnlyHolder |
19 instanceVariableNames:'semaphores streams filterOpenStreamsOnlyHolder |
20 filterSocketsOnlyHolder filterConnectedSocketsOnlyHolder' |
20 filterPipesOnlyHolder filterSocketsOnlyHolder |
|
21 filterConnectedSocketsOnlyHolder' |
21 classVariableNames:'' |
22 classVariableNames:'' |
22 poolDictionaries:'' |
23 poolDictionaries:'' |
23 category:'Monitors-ST/X' |
24 category:'Monitors-ST/X' |
24 ! |
25 ! |
25 |
26 |
91 ^ |
92 ^ |
92 #(Menu |
93 #(Menu |
93 ( |
94 ( |
94 (MenuItem |
95 (MenuItem |
95 label: 'Open Streams Only' |
96 label: 'Open Streams Only' |
|
97 indication: filterOpenStreamsOnlyHolder |
96 hideMenuOnActivated: false |
98 hideMenuOnActivated: false |
97 indication: filterOpenStreamsOnlyHolder |
|
98 ) |
99 ) |
99 (MenuItem |
100 (MenuItem |
100 label: '-' |
101 label: '-' |
101 ) |
102 ) |
102 (MenuItem |
103 (MenuItem |
|
104 label: 'Pipes Only' |
|
105 indication: filterPipesOnlyHolder |
|
106 hideMenuOnActivated: false |
|
107 ) |
|
108 (MenuItem |
|
109 label: '-' |
|
110 ) |
|
111 (MenuItem |
103 label: 'Sockets Only' |
112 label: 'Sockets Only' |
|
113 indication: filterSocketsOnlyHolder |
104 hideMenuOnActivated: false |
114 hideMenuOnActivated: false |
105 indication: filterSocketsOnlyHolder |
|
106 ) |
115 ) |
107 (MenuItem |
116 (MenuItem |
108 label: 'Connected Sockets Only' |
117 label: 'Connected Sockets Only' |
|
118 indication: filterConnectedSocketsOnlyHolder |
109 hideMenuOnActivated: false |
119 hideMenuOnActivated: false |
110 indication: filterConnectedSocketsOnlyHolder |
|
111 ) |
120 ) |
112 ) |
121 ) |
113 nil |
122 nil |
114 nil |
123 nil |
115 ) |
124 ) |
203 ! |
212 ! |
204 |
213 |
205 filterOpenStreamsOnlyHolder |
214 filterOpenStreamsOnlyHolder |
206 filterOpenStreamsOnlyHolder isNil ifTrue:[ |
215 filterOpenStreamsOnlyHolder isNil ifTrue:[ |
207 filterOpenStreamsOnlyHolder := true asValue. |
216 filterOpenStreamsOnlyHolder := true asValue. |
208 filterSocketsOnlyHolder onChangeSend:#filterOpenStreamsOnlyHolder to:self. |
217 filterOpenStreamsOnlyHolder onChangeSend:#filterOpenStreamsOnlyHolderChanged to:self. |
209 ]. |
218 ]. |
210 ^ filterOpenStreamsOnlyHolder |
219 ^ filterOpenStreamsOnlyHolder |
211 |
220 |
212 "Modified: / 09-10-2018 / 11:16:44 / Claus Gittinger" |
221 "Modified: / 29-10-2018 / 15:44:11 / Claus Gittinger" |
|
222 ! |
|
223 |
|
224 filterPipesOnlyHolder |
|
225 filterPipesOnlyHolder isNil ifTrue:[ |
|
226 filterPipesOnlyHolder := false asValue. |
|
227 filterPipesOnlyHolder onChangeSend:#filterPipesOnlyHolderChanged to:self. |
|
228 ]. |
|
229 ^ filterPipesOnlyHolder |
|
230 |
|
231 "Created: / 29-10-2018 / 15:36:07 / Claus Gittinger" |
213 ! |
232 ! |
214 |
233 |
215 filterSocketsOnlyHolder |
234 filterSocketsOnlyHolder |
216 filterSocketsOnlyHolder isNil ifTrue:[ |
235 filterSocketsOnlyHolder isNil ifTrue:[ |
217 filterSocketsOnlyHolder := false asValue. |
236 filterSocketsOnlyHolder := false asValue. |
244 |
263 |
245 shown ifTrue:[ |
264 shown ifTrue:[ |
246 newList := ExternalStream allSubInstances. |
265 newList := ExternalStream allSubInstances. |
247 newList := newList reject:#isExecutor. |
266 newList := newList reject:#isExecutor. |
248 |
267 |
249 self filterSocketsOnlyHolder value ifTrue:[ |
|
250 newList := newList select:[:eachStream | eachStream isSocket]. |
|
251 ]. |
|
252 self filterOpenStreamsOnlyHolder value ifTrue:[ |
268 self filterOpenStreamsOnlyHolder value ifTrue:[ |
253 newList := newList select:[:eachStream | eachStream isOpen]. |
269 newList := newList select:[:eachStream | eachStream isOpen]. |
254 ]. |
270 ]. |
255 self filterConnectedSocketsOnlyHolder value ifTrue:[ |
271 |
256 newList := newList select:[:eachStream | eachStream isSocket and:[eachStream isConnected]]. |
272 self filterPipesOnlyHolder value ifTrue:[ |
|
273 newList := newList select:[:eachStream | eachStream isPipeStream]. |
|
274 ] ifFalse:[ |
|
275 self filterSocketsOnlyHolder value ifTrue:[ |
|
276 newList := newList select:[:eachStream | eachStream isSocket]. |
|
277 ]. |
|
278 self filterConnectedSocketsOnlyHolder value ifTrue:[ |
|
279 newList := newList select:[:eachStream | eachStream isSocket and:[eachStream isConnected]]. |
|
280 ]. |
257 ]. |
281 ]. |
258 |
282 |
259 newList sort:[:s1 :s2 | |
283 newList sort:[:s1 :s2 | |
260 s1 className < s2 className |
284 s1 className < s2 className |
261 or:[ s1 className = s2 className |
285 or:[ s1 className = s2 className |
266 self updateStatus:newList |
290 self updateStatus:newList |
267 ]. |
291 ]. |
268 ]. |
292 ]. |
269 self installDelayedUpdate. |
293 self installDelayedUpdate. |
270 |
294 |
271 "Modified (comment): / 29-10-2018 / 15:32:00 / Claus Gittinger" |
295 "Modified: / 29-10-2018 / 15:39:43 / Claus Gittinger" |
272 ! |
296 ! |
273 |
297 |
274 updateStatus:newStreamsList |
298 updateStatus:newStreamsList |
275 "update status display of semaphores" |
299 "update status display of semaphores" |
276 |
300 |
518 "Modified: / 31-01-1997 / 22:33:27 / cg" |
542 "Modified: / 31-01-1997 / 22:33:27 / cg" |
519 "Modified (comment): / 07-04-2017 / 14:28:01 / cg" |
543 "Modified (comment): / 07-04-2017 / 14:28:01 / cg" |
520 ! |
544 ! |
521 |
545 |
522 filterConnectedSocketsOnlyHolderChanged |
546 filterConnectedSocketsOnlyHolderChanged |
|
547 self filterConnectedSocketsOnlyHolder value ifTrue:[ |
|
548 self filterPipesOnlyHolder value:false. |
|
549 ]. |
523 self sensor pushUserEvent:#updateList for:self |
550 self sensor pushUserEvent:#updateList for:self |
|
551 |
|
552 "Modified: / 29-10-2018 / 15:48:44 / Claus Gittinger" |
524 ! |
553 ! |
525 |
554 |
526 filterOpenStreamsOnlyHolderChanged |
555 filterOpenStreamsOnlyHolderChanged |
527 self sensor pushUserEvent:#updateList for:self |
556 self sensor pushUserEvent:#updateList for:self |
528 ! |
557 ! |
529 |
558 |
|
559 filterPipesOnlyHolderChanged |
|
560 self filterPipesOnlyHolder value ifTrue:[ |
|
561 self filterSocketsOnlyHolder value:false. |
|
562 self filterConnectedSocketsOnlyHolder value:false. |
|
563 ]. |
|
564 self sensor pushUserEvent:#updateList for:self |
|
565 |
|
566 "Created: / 29-10-2018 / 15:36:45 / Claus Gittinger" |
|
567 ! |
|
568 |
530 filterSocketsOnlyHolderChanged |
569 filterSocketsOnlyHolderChanged |
|
570 self filterSocketsOnlyHolder value ifTrue:[ |
|
571 self filterPipesOnlyHolder value:false. |
|
572 ]. |
531 self sensor pushUserEvent:#updateList for:self |
573 self sensor pushUserEvent:#updateList for:self |
|
574 |
|
575 "Modified: / 29-10-2018 / 15:48:40 / Claus Gittinger" |
532 ! |
576 ! |
533 |
577 |
534 inspectStream |
578 inspectStream |
535 "open an inspector on the selected stream(s)" |
579 "open an inspector on the selected stream(s)" |
536 |
580 |