source: Include/Classes/System/Diagnostics/Trace.ab@ 45

Last change on this file since 45 was 45, checked in by dai, 17 years ago

リスナとの関係を作った。ほとんどのメソッドがTODOになっているので、実装が必要。

File size: 3.6 KB
Line 
1
2' リスナ
3Class TraceListener
4End Class
5
6' リスナコレクション
7Class TraceListenerCollection
8Public
9
10 '----------------------------------------------------------------
11 ' パブリック メソッド
12 '----------------------------------------------------------------
13
14 ' リスナを追加
15 Function Add( listener As TraceListener )
16 ' TODO: 実装
17 End Function
18
19 ' 複数のリスナを追加
20 Sub AddRange( listeners As TraceListenerCollection )
21 ' TODO: 実装
22 End Function
23
24 ' リストからすべてのリスナを削除
25 Sub Clear()
26 ' TODO: 実装
27 End Sub
28
29 ' 指定したリスナのインデックスを取得
30 Function IndexOf( listener As TraceListener )
31 ' TODO: 実装
32 End Function
33
34 ' リスナを挿入
35 Sub Insert( index As Long, listener As TraceListener )
36 ' TODO: 実装
37 End Sub
38
39 ' リスナを削除
40 Function Remove( name As String )
41 ' TODO: 実装
42 End Function
43 Function Remove( listener As TraceListener )
44 ' TODO: 実装
45 End Function
46
47
48 '----------------------------------------------------------------
49 ' パブリック プロパティ
50 '----------------------------------------------------------------
51
52 ' 保有するリスナの数を取得する
53 Function Count() As Long
54 ' TODO: 実装
55 End Function
56
57 ' リスナを取得する
58 Function Item( index As Long ) As TraceListener
59 ' TODO: 実装
60 End Function
61End Class
62
63Class Trace
64 Static indentLevel = 0 As Long
65 Static indentSize = 4 As Long
66
67 Static Function GetIndentString() As String
68 Dim i As Long
69
70 Dim IndentStr = ""
71 For i = 0 To ELM( indentSize )
72 IndentStr = IndentStr + " "
73 Next
74
75 Dim ResultStr = ""
76 For i = 0 To ELM( indentLevel )
77 ResultStr = ResultStr + IndentStr
78 Next
79
80 Return ResultStr
81 End Function
82
83Public
84
85 '----------------------------------------------------------------
86 ' パブリック メソッド
87 '----------------------------------------------------------------
88
89 ' アサート(コールスタックを表示)
90 Static Sub Assert( condition As Boolean )
91 If condition == False then
92 'TODO: コールスタックを表示
93 End If
94 End Sub
95
96 ' アサート(メッセージ文字列を表示)
97 Static Sub Assert( condition As Boolean, message As String )
98 If condition == False then
99 ' TODO: メッセージボックス形式での表示に対応
100 WriteLine( message )
101 End If
102 End Sub
103
104 ' アサート(メッセージ文字列と詳細文字列を表示)
105 Static Sub Assert( condition As Boolean, message As String, detailMessage As String )
106 If condition == False then
107 ' TODO: メッセージボックス形式での表示に対応
108 WriteLine( message )
109 End If
110 End Sub
111
112
113 ' インデントレベルを上げる
114 Static Sub Indent()
115 indentLevel++
116 End Sub
117
118 ' インデントレベルを下げる
119 Static Sub Unindent()
120 If indentLevel <= 0 Then
121 indentLevel = 0
122 Return
123 End If
124 indentLevel--
125 End Sub
126
127 ' 一行の文字列を出力
128 Static Sub WriteLine( message As String )
129 Dim tempmsg = GetIndentString() + message + Ex"\n"
130
131 ' TODO: リスナへの出力を実装
132 End Sub
133
134
135 '----------------------------------------------------------------
136 ' パブリック プロパティ
137 '----------------------------------------------------------------
138
139 ' IndentLevelプロパティ
140 Static Function IndentLevel() As Long
141 Return indentLevel
142 End Function
143 Static Sub IndentLevel( level As Long )
144 indentLevel = level
145 End Sub
146
147 ' IndentSizeプロパティ
148 Static Function IndentSize() As Long
149 Return indentSize
150 End Function
151 Static Sub IndentSize( size As Long )
152 indentSize = size
153 End Sub
154
155 ' Listenersプロパティ
156 Static Function Listeners() As TraceListenerCollection
157 Return listeners
158 End Function
159 Static Sub Listeners( listeners As TraceListenerCollection )
160 This.listeners = listeners
161 End Sub
162
163End Class
Note: See TracBrowser for help on using the repository browser.