~roger-booth/mysql-proxy/laminator

« back to all changes in this revision

Viewing changes to doc/lua-classes.dot

  • Committer: jan at mysql
  • Date: 2009-05-25 09:04:39 UTC
  • mto: This revision was merged to the branch mainline in revision 638.
  • Revision ID: jan@mysql.com-20090525090439-lh8epbsbok7jmxvo
added architecture and lua-classes dot files

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
  A layout of the internal structures of the proxy
 
3
 
 
4
  You may use "dot" from graphviz to generate human consumable output
 
5
  like PNG or PDF:
 
6
 
 
7
    $ dot -T pdf -o lua-classes.pdf lua-classes.dot
 
8
    $ dot -T png -o lua-classes.png lua-classes.dot
 
9
 
 
10
  or you generate a image-map
 
11
 
 
12
    $ dot -T cmapx -o lua-classes.map -Tpng -o lua-classes.png lua-classes.dot && \
 
13
      echo '<img src="lua-classes.png" border="0" usemap="#g"/>' > lua-classes.html && \
 
14
      cat lua-classes.map >> lua-classes.html
 
15
*/
 
16
digraph G {
 
17
        node [
 
18
                shape = "plaintext"
 
19
                fontname = "Courier"
 
20
                fontsize = 10
 
21
        ]
 
22
 
 
23
        Proxy [
 
24
                label = <
 
25
                        <table border="1" cellborder="1" href="http://dev.mysql.com/doc/refman/5.1/en/mysql-proxy-scripting-structures.html#mysql-proxy-scripting-structures">
 
26
                         <tr><td bgcolor="black"><font color="white">
 
27
                                Proxy
 
28
                         </font></td></tr>
 
29
                         <tr><td align="left" border="0" cellpadding="0" port="connection">
 
30
                                r-- connection :  Connection
 
31
                         </td></tr>
 
32
                         <tr><td align="left" border="0" cellpadding="0" port="global">
 
33
                                r-- global :  Globals
 
34
                         </td></tr>
 
35
                         <tr><td align="left" border="0" cellpadding="0" port="queries">
 
36
                                r-- queries : Queries
 
37
                         </td></tr>
 
38
                         <tr><td align="left" border="0" cellpadding="0" port="response">
 
39
                                r-- response : Response
 
40
                         </td></tr>
 
41
                        </table>
 
42
                        >
 
43
        ]
 
44
 
 
45
        Connection [
 
46
                label = <
 
47
                        <table border="1" cellborder="1" href="http://dev.mysql.com/doc/refman/5.1/en/mysql-proxy-scripting-structures.html#mysql-proxy-scripting-structures-connection">
 
48
                         <tr><td bgcolor="black" port="head"><font color="white">
 
49
                                Connection
 
50
                         </font></td></tr>
 
51
                         <tr><td align="left" border="0" port="client">
 
52
                                r-- client : Socket
 
53
                         </td></tr>
 
54
                         <tr><td align="left" border="0" port="server">
 
55
                                r-- server : Socket
 
56
                         </td></tr>
 
57
                         <tr><td align="left" border="0">
 
58
                                rw- backend_ndx : int
 
59
                         </td></tr>
 
60
                         <tr><td align="left" border="0">
 
61
                                -w connection_close : boolean
 
62
                         </td></tr>
 
63
                        </table>
 
64
                        >
 
65
 
 
66
        ]
 
67
 
 
68
        Socket [
 
69
                label = <
 
70
                        <table border="1" cellborder="1">
 
71
                         <tr><td bgcolor="black" port="head"><font color="white">
 
72
                                Socket
 
73
                         </font></td></tr>
 
74
                         <tr><td align="left" border="0" port="src">
 
75
                                r-- src : Address
 
76
                         </td></tr>
 
77
                         <tr><td align="left" border="0" port="dst">
 
78
                                r-- dst : Address
 
79
                         </td></tr>
 
80
                         <tr><td align="left" border="0">
 
81
                                r-- default_db : string
 
82
                         </td></tr>
 
83
                         <tr><td align="left" border="0">
 
84
                                r-- mysqld_version : string
 
85
                         </td></tr>
 
86
                         <tr><td align="left" border="0">
 
87
                                r-- thread_id : int
 
88
                         </td></tr>
 
89
                         <tr><td align="left" border="0">
 
90
                                r-- scramble_buffer : string
 
91
                         </td></tr>
 
92
                         <tr><td align="left" border="0">
 
93
                                r-- username : string
 
94
                         </td></tr>
 
95
                         <tr><td align="left" border="0">
 
96
                                r-- scrambled_password : string
 
97
                         </td></tr>
 
98
                        </table>
 
99
                        >
 
100
 
 
101
        ]
 
102
 
 
103
        Address [
 
104
                label = <
 
105
                        <table border="1" cellborder="1">
 
106
                         <tr><td bgcolor="black" port="head"><font color="white">
 
107
                                Address
 
108
                         </font></td></tr>
 
109
                         <tr><td align="left" border="0">
 
110
                                r-- name : string
 
111
                         </td></tr>
 
112
                         <tr><td align="left" border="0">
 
113
                                r-- type : int
 
114
                         </td></tr>
 
115
                         <tr><td align="left" border="0">
 
116
                                r-- address : string
 
117
                         </td></tr>
 
118
                         <tr><td align="left" border="0">
 
119
                                r-- port : int
 
120
                         </td></tr>
 
121
                        </table>
 
122
                        >
 
123
 
 
124
        ]
 
125
 
 
126
        Globals [
 
127
                label = <
 
128
                        <table border="1" cellborder="1">
 
129
                         <tr><td bgcolor="black" port="head"><font color="white">
 
130
                                Globals
 
131
                         </font></td></tr>
 
132
                         <tr><td align="left" border="0">
 
133
                                rw- config : table
 
134
                         </td></tr>
 
135
                         <tr><td align="left" border="0" port="backends">
 
136
                                r-- backends : Backends
 
137
                         </td></tr>
 
138
                        </table>
 
139
                        >
 
140
 
 
141
        ]
 
142
        
 
143
                Backends [
 
144
                        label = <
 
145
                                <table border="1" cellborder="1" href="http://dev.mysql.com/doc/refman/5.1/en/mysql-proxy-scripting-structures.html#mysql-proxy-scripting-structures-backends">
 
146
                                 <tr><td bgcolor="black" port="head"><font color="white">
 
147
                                        Backends
 
148
                                 </font></td></tr>
 
149
                                 <tr><td align="left" border="0" port="index">
 
150
                                        --x __index(int) : Backend
 
151
                                 </td></tr>
 
152
                                 <tr><td align="left" border="0">
 
153
                                        --x __len() : int
 
154
                                 </td></tr>
 
155
                                </table>
 
156
                                >
 
157
                ]
 
158
 
 
159
                Backend [
 
160
                        label = <
 
161
                                <table border="1" cellborder="1">
 
162
                                 <tr><td bgcolor="black" port="head"><font color="white">
 
163
                                        Backend
 
164
                                 </font></td></tr>
 
165
                                 <tr><td align="left" border="0">
 
166
                                        r-- connected_clients : int
 
167
                                 </td></tr>
 
168
                                 <tr><td align="left" border="0" port="dst">
 
169
                                        r-- dst : Address
 
170
                                 </td></tr>
 
171
                                 <tr><td align="left" border="0">
 
172
                                        rw- state : int
 
173
                                 </td></tr>
 
174
                                 <tr><td align="left" border="0">
 
175
                                        r-- type : int
 
176
                                 </td></tr>
 
177
                                 <tr><td align="left" border="0">
 
178
                                        rw- uuid : string
 
179
                                 </td></tr>
 
180
                                 <tr><td align="left" border="0" port="pool">
 
181
                                        r-- pool : ConnectionPool
 
182
                                 </td></tr>
 
183
                                </table>
 
184
                                >
 
185
                ]
 
186
 
 
187
                ConnectionPool [
 
188
                        label = <
 
189
                                <table border="1" cellborder="1">
 
190
                                 <tr><td bgcolor="black" port="head"><font color="white">
 
191
                                        Connection Pool
 
192
                                 </font></td></tr>
 
193
                                 <tr><td align="left" border="0">
 
194
                                        rw- max_idle_connections : int
 
195
                                 </td></tr>
 
196
                                 <tr><td align="left" border="0">
 
197
                                        rw- min_idle_connections : int
 
198
                                 </td></tr>
 
199
                                 <tr><td align="left" border="0" port="users">
 
200
                                        r-- users : Users
 
201
                                 </td></tr>
 
202
                                </table>
 
203
                                >
 
204
                ]
 
205
 
 
206
                Users [
 
207
                        label = <
 
208
                                <table border="1" cellborder="1">
 
209
                                 <tr><td bgcolor="black" port="head"><font color="white">
 
210
                                        Users
 
211
                                 </font></td></tr>
 
212
                                 <tr><td align="left" border="0" port="index">
 
213
                                        --x __index(string) : Queue
 
214
                                 </td></tr>
 
215
                                </table>
 
216
                                >
 
217
                ]
 
218
 
 
219
                Queue [
 
220
                        label = <
 
221
                                <table border="1" cellborder="1">
 
222
                                 <tr><td bgcolor="black" port="head"><font color="white">
 
223
                                        Queue
 
224
                                 </font></td></tr>
 
225
                                 <tr><td align="left" border="0">
 
226
                                        r-- cur_idle_connections : int
 
227
                                 </td></tr>
 
228
                                </table>
 
229
                                >
 
230
 
 
231
                ]
 
232
        
 
233
        Queries [
 
234
                label = <
 
235
                        <table border="1" cellborder="1" href="http://dev.mysql.com/doc/refman/5.1/en/mysql-proxy-scripting-structures.html#mysql-proxy-scripting-structures-queries">
 
236
                         <tr><td bgcolor="black" port="head"><font color="white">
 
237
                                Queries
 
238
                         </font></td></tr>
 
239
                         <tr><td align="left" border="0">
 
240
                                --x append(id, packet)
 
241
                         </td></tr>
 
242
                         <tr><td align="left" border="0">
 
243
                                --x prepend(id, packet)
 
244
                         </td></tr>
 
245
                         <tr><td align="left" border="0">
 
246
                                --x reset()
 
247
                         </td></tr>
 
248
                         <tr><td align="left" border="0">
 
249
                                --x __len()
 
250
                         </td></tr>
 
251
                        </table>
 
252
                >
 
253
        ]
 
254
 
 
255
        Response [
 
256
                label = <
 
257
                        <table border="1" cellborder="1" href="http://dev.mysql.com/doc/refman/5.1/en/mysql-proxy-scripting-structures.html#mysql-proxy-scripting-structures-response">
 
258
                         <tr><td bgcolor="black" port="head"><font color="white">
 
259
                                Response
 
260
                         </font></td></tr>
 
261
                         <tr><td align="left" border="0">
 
262
                                rw- type : int
 
263
                         </td></tr>
 
264
                         <tr><td align="left" border="0">
 
265
                                rw- errmsg : string
 
266
                         </td></tr>
 
267
                         <tr><td align="left" border="0">
 
268
                                rw- errcode : int
 
269
                         </td></tr>
 
270
                         <tr><td align="left" border="0">
 
271
                                rw- sqlstate : string
 
272
                         </td></tr>
 
273
                         <tr><td align="left" border="0" port="resultset">
 
274
                                rw- resultset : Resultset
 
275
                         </td></tr>
 
276
                        </table>
 
277
                >
 
278
        ]
 
279
 
 
280
        Resultset [
 
281
                label = <
 
282
                        <table border="1" cellborder="1" href="http://dev.mysql.com/doc/refman/5.1/en/mysql-proxy-scripting-structures.html#mysql-proxy-scripting-structures-resultset">
 
283
                         <tr><td bgcolor="black" port="head"><font color="white">
 
284
                                Resultset
 
285
                         </font></td></tr>
 
286
                         <tr><td align="left" border="0" port="fields">
 
287
                                rw- fields : Fields
 
288
                         </td></tr>
 
289
                         <tr><td align="left" border="0" port="rows">
 
290
                                rw- rows : Rows
 
291
                         </td></tr>
 
292
                        </table>
 
293
                >
 
294
        ]
 
295
 
 
296
        Fields [
 
297
                label = <
 
298
                        <table border="1" cellborder="1">
 
299
                         <tr><td bgcolor="black" port="head"><font color="white">
 
300
                                Fields
 
301
                         </font></td></tr>
 
302
                         <tr><td align="left" border="0" port="index">
 
303
                                --x __newindex(int, Field)
 
304
                         </td></tr>
 
305
                        </table>
 
306
                >
 
307
        ]
 
308
 
 
309
        Field [
 
310
                label = <
 
311
                        <table border="1" cellborder="1">
 
312
                         <tr><td bgcolor="black" port="head"><font color="white">
 
313
                                Field
 
314
                         </font></td></tr>
 
315
                         <tr><td align="left" border="0">
 
316
                                rw- name : string
 
317
                         </td></tr>
 
318
                         <tr><td align="left" border="0">
 
319
                                rw- type : int
 
320
                         </td></tr>
 
321
                        </table>
 
322
                >
 
323
        ]
 
324
 
 
325
        Rows [
 
326
                label = <
 
327
                        <table border="1" cellborder="1">
 
328
                         <tr><td bgcolor="black" port="head"><font color="white">
 
329
                                Rows
 
330
                         </font></td></tr>
 
331
                         <tr><td align="left" border="0" port="index">
 
332
                                --x __newindex(int, value) 
 
333
                         </td></tr>
 
334
                        </table>
 
335
                >
 
336
        ]
 
337
 
 
338
        Injection [
 
339
                label = <
 
340
                        <table border="1" cellborder="1">
 
341
                         <tr><td bgcolor="black" port="head"><font color="white">
 
342
                                Injection
 
343
                         </font></td></tr>
 
344
                         <tr><td align="left" border="0" port="resultset">
 
345
                                r-- resultset : Resultset
 
346
                         </td></tr>
 
347
                         <tr><td align="left" border="0">
 
348
                                r-- id : int 
 
349
                         </td></tr>
 
350
                         <tr><td align="left" border="0">
 
351
                                r-- query : string 
 
352
                         </td></tr>
 
353
                         <tr><td align="left" border="0">
 
354
                                r-- query_time : number
 
355
                         </td></tr>
 
356
                         <tr><td align="left" border="0">
 
357
                                r-- response_time : number
 
358
                         </td></tr>
 
359
                        </table>
 
360
                >
 
361
        ]
 
362
 
 
363
        InjectionResultset [
 
364
                label = <
 
365
                        <table border="1" cellborder="1">
 
366
                         <tr><td bgcolor="black" port="head"><font color="white">
 
367
                                Resultset
 
368
                         </font></td></tr>
 
369
                         <tr><td align="left" border="0" port="fields">
 
370
                                r-- fields : Fields
 
371
                         </td></tr>
 
372
                         <tr><td align="left" border="0" port="rows">
 
373
                                r-- rows : Rows
 
374
                         </td></tr>
 
375
                         <tr><td align="left" border="0">
 
376
                                r-- row_count : int
 
377
                         </td></tr>
 
378
                         <tr><td align="left" border="0">
 
379
                                r-- bytes : int
 
380
                         </td></tr>
 
381
                         <tr><td align="left" border="0">
 
382
                                r-- raw : string
 
383
                         </td></tr>
 
384
                         <tr><td align="left" border="0" port="flags">
 
385
                                r-- flags : Flags
 
386
                         </td></tr>
 
387
                         <tr><td align="left" border="0">
 
388
                                r-- warning_count : int
 
389
                         </td></tr>
 
390
                         <tr><td align="left" border="0">
 
391
                                r-- affected_rows : int
 
392
                         </td></tr>
 
393
                         <tr><td align="left" border="0">
 
394
                                r-- insert_id : int
 
395
                         </td></tr>
 
396
                         <tr><td align="left" border="0">
 
397
                                r-- query_status : int
 
398
                         </td></tr>
 
399
                        </table>
 
400
                >
 
401
        ]
 
402
 
 
403
        InjectionFlags [
 
404
                label = <
 
405
                        <table border="1" cellborder="1">
 
406
                         <tr><td bgcolor="black" port="head"><font color="white">
 
407
                                Flags
 
408
                         </font></td></tr>
 
409
                         <tr><td align="left" border="0">
 
410
                                r-- in_trans : boolean
 
411
                         </td></tr>
 
412
                         <tr><td align="left" border="0">
 
413
                                r-- auto_commit : boolean
 
414
                         </td></tr>
 
415
                         <tr><td align="left" border="0">
 
416
                                r-- no_good_index_used : boolean
 
417
                         </td></tr>
 
418
                         <tr><td align="left" border="0">
 
419
                                r-- no_index_used : boolean
 
420
                         </td></tr>
 
421
                        </table>
 
422
                >
 
423
        ]
 
424
 
 
425
        InjectionField [
 
426
                label = <
 
427
                        <table border="1" cellborder="1">
 
428
                         <tr><td bgcolor="black" port="head"><font color="white">
 
429
                                Field
 
430
                         </font></td></tr>
 
431
                         <tr><td align="left" border="0">
 
432
                                r-- type : int
 
433
                         </td></tr>
 
434
                         <tr><td align="left" border="0">
 
435
                                r-- name : string
 
436
                         </td></tr>
 
437
                         <tr><td align="left" border="0">
 
438
                                r-- org_name : string
 
439
                         </td></tr>
 
440
                         <tr><td align="left" border="0">
 
441
                                r-- table : string
 
442
                         </td></tr>
 
443
                         <tr><td align="left" border="0">
 
444
                                r-- org_table : string
 
445
                         </td></tr>
 
446
                        </table>
 
447
                >
 
448
        ]
 
449
 
 
450
        InjectionFields [
 
451
                label = <
 
452
                        <table border="1" cellborder="1">
 
453
                         <tr><td bgcolor="black" port="head"><font color="white">
 
454
                                Fields
 
455
                         </font></td></tr>
 
456
                         <tr><td align="left" border="0" port="index">
 
457
                                --x __index(int) : Field 
 
458
                         </td></tr>
 
459
                         <tr><td align="left" border="0">
 
460
                                --x __len() : int 
 
461
                         </td></tr>
 
462
                        </table>
 
463
                >
 
464
        ]
 
465
 
 
466
        InjectionRow [
 
467
                label = <
 
468
                        <table border="1" cellborder="1">
 
469
                         <tr><td bgcolor="black" port="head"><font color="white">
 
470
                                Row
 
471
                         </font></td></tr>
 
472
                         <tr><td align="left" border="0">
 
473
                                r-- type : int
 
474
                         </td></tr>
 
475
                         <tr><td align="left" border="0">
 
476
                                r-- name : string
 
477
                         </td></tr>
 
478
                         <tr><td align="left" border="0">
 
479
                                r-- org_name : string
 
480
                         </td></tr>
 
481
                         <tr><td align="left" border="0">
 
482
                                r-- table : string
 
483
                         </td></tr>
 
484
                         <tr><td align="left" border="0">
 
485
                                r-- org_table : string
 
486
                         </td></tr>
 
487
                        </table>
 
488
                >
 
489
        ]
 
490
 
 
491
        InjectionRows [
 
492
                label = <
 
493
                        <table border="1" cellborder="1">
 
494
                         <tr><td bgcolor="black" port="head"><font color="white">
 
495
                                Rows
 
496
                         </font></td></tr>
 
497
                         <tr><td align="left" border="0" port="iter">
 
498
                                --x __iter() : Row 
 
499
                         </td></tr>
 
500
                        </table>
 
501
                >
 
502
        ]
 
503
 
 
504
Proxy:connection:w -> Connection:head;
 
505
Connection:client:e -> Socket:head;
 
506
Connection:server:e -> Socket:head;
 
507
Socket:src:e -> Address:head;
 
508
Socket:dst:e -> Address:head;
 
509
Proxy:global:w -> Globals:head;
 
510
Globals:backends:e -> Backends:head;
 
511
Backends:index:e -> Backend:head;
 
512
Backend:pool:e -> ConnectionPool:head;
 
513
Backend:dst:e -> Address:head;
 
514
ConnectionPool:users:e -> Users:head;
 
515
Users:index:e -> Queue:head;
 
516
Proxy:queries:e -> Queries:head;
 
517
Proxy:response:e -> Response:head;
 
518
Response:resultset:e -> Resultset:head;
 
519
Resultset:fields:e -> Fields:head;
 
520
Resultset:rows:e -> Rows:head;
 
521
Fields:index:e -> Field:head;
 
522
 
 
523
Injection:resultset:e -> InjectionResultset:head;
 
524
InjectionResultset:fields:e -> InjectionFields:head;
 
525
InjectionResultset:rows:e -> InjectionRows:head;
 
526
InjectionResultset:flags:e -> InjectionFlags:head;
 
527
InjectionFields:index:e -> InjectionField:head;
 
528
InjectionRows:iter:e -> InjectionRow:head;
 
529
}
 
530