53 bool m_test2; |
53 bool m_test2; |
54 bool m_test3; |
54 bool m_test3; |
55 bool m_test4; |
55 bool m_test4; |
56 public: |
56 public: |
57 CallbackTest (); |
57 CallbackTest (); |
58 virtual bool runTests (void); |
58 virtual bool RunTests (void); |
59 void reset (void); |
59 void Reset (void); |
60 bool isWrong (void); |
60 bool IsWrong (void); |
61 void test1 (void); |
61 void Test1 (void); |
62 int test2 (void); |
62 int Test2 (void); |
63 void test3 (double a); |
63 void Test3 (double a); |
64 int test4 (double a, int b); |
64 int Test4 (double a, int b); |
65 void test8 (Callback<void, int> callback); |
65 void Test8 (Callback<void, int> callback); |
66 }; |
66 }; |
67 |
67 |
68 CallbackTest::CallbackTest () |
68 CallbackTest::CallbackTest () |
69 : ns3::Test ("Callback"), |
69 : ns3::Test ("Callback"), |
70 m_test1 (false), |
70 m_test1 (false), |
72 m_test3 (false), |
72 m_test3 (false), |
73 m_test4 (false) |
73 m_test4 (false) |
74 {} |
74 {} |
75 |
75 |
76 void |
76 void |
77 CallbackTest::test1 (void) |
77 CallbackTest::Test1 (void) |
78 { |
78 { |
79 m_test1 = true; |
79 m_test1 = true; |
80 } |
80 } |
81 int |
81 int |
82 CallbackTest::test2 (void) |
82 CallbackTest::Test2 (void) |
83 { |
83 { |
84 m_test2 = true; |
84 m_test2 = true; |
85 return 2; |
85 return 2; |
86 } |
86 } |
87 void |
87 void |
88 CallbackTest::test3 (double a) |
88 CallbackTest::Test3 (double a) |
89 { |
89 { |
90 m_test3 = true; |
90 m_test3 = true; |
91 } |
91 } |
92 int |
92 int |
93 CallbackTest::test4 (double a, int b) |
93 CallbackTest::Test4 (double a, int b) |
94 { |
94 { |
95 m_test4 = true; |
95 m_test4 = true; |
96 return 4; |
96 return 4; |
97 } |
97 } |
98 void |
98 void |
99 CallbackTest::test8 (Callback<void,int> callback) |
99 CallbackTest::Test8 (Callback<void,int> callback) |
100 { |
100 { |
101 callback (3); |
101 callback (3); |
102 } |
102 } |
103 bool |
103 bool |
104 CallbackTest::isWrong (void) |
104 CallbackTest::IsWrong (void) |
105 { |
105 { |
106 if (!m_test1 || |
106 if (!m_test1 || |
107 !m_test2 || |
107 !m_test2 || |
108 !m_test3 || |
108 !m_test3 || |
109 !m_test4 || |
109 !m_test4 || |
139 typedef ns3::Callback<int, double, int> D; |
139 typedef ns3::Callback<int, double, int> D; |
140 typedef ns3::Callback<void> E; |
140 typedef ns3::Callback<void> E; |
141 typedef ns3::Callback<void,int> F; |
141 typedef ns3::Callback<void,int> F; |
142 typedef ns3::Callback<int,int> G; |
142 typedef ns3::Callback<int,int> G; |
143 |
143 |
144 A a0 (this, &CallbackTest::test1); |
144 A a0 (this, &CallbackTest::Test1); |
145 B b0; |
145 B b0; |
146 b0 = B (this, &CallbackTest::test2); |
146 b0 = B (this, &CallbackTest::Test2); |
147 C c0 = C (this, &CallbackTest::test3); |
147 C c0 = C (this, &CallbackTest::Test3); |
148 D d0 = D (this, &CallbackTest::test4); |
148 D d0 = D (this, &CallbackTest::Test4); |
149 E e0 = E (&test5); |
149 E e0 = E (&Test5); |
150 F f0 = F (&test6); |
150 F f0 = F (&Test6); |
151 G g0 = G (&test7); |
151 G g0 = G (&Test7); |
152 |
152 |
153 a0 (); |
153 a0 (); |
154 b0 (); |
154 b0 (); |
155 c0 (0.0); |
155 c0 (0.0); |
156 d0 (0.0, 1); |
156 d0 (0.0, 1); |
157 e0 (); |
157 e0 (); |
158 f0 (1); |
158 f0 (1); |
159 g0 (1); |
159 g0 (1); |
160 |
160 |
161 if (isWrong ()) { |
161 if (IsWrong ()) { |
162 ok = false; |
162 ok = false; |
163 } |
163 } |
164 |
164 |
165 reset (); |
165 Reset (); |
166 |
166 |
167 A a1 = ns3::makeCallback (&CallbackTest::test1, this); |
167 A a1 = ns3::MakeCallback (&CallbackTest::Test1, this); |
168 B b1 = ns3::makeCallback (&CallbackTest::test2, this); |
168 B b1 = ns3::MakeCallback (&CallbackTest::Test2, this); |
169 C c1 = ns3::makeCallback (&CallbackTest::test3, this); |
169 C c1 = ns3::MakeCallback (&CallbackTest::Test3, this); |
170 D d1 = ns3::makeCallback (&CallbackTest::test4, this); |
170 D d1 = ns3::MakeCallback (&CallbackTest::Test4, this); |
171 E e1 = ns3::makeCallback (&test5); |
171 E e1 = ns3::MakeCallback (&Test5); |
172 F f1 = ns3::makeCallback (&test6); |
172 F f1 = ns3::MakeCallback (&Test6); |
173 G g1 = ns3::makeCallback (&test7); |
173 G g1 = ns3::MakeCallback (&Test7); |
174 |
174 |
175 a1 (); |
175 a1 (); |
176 b1 (); |
176 b1 (); |
177 c1 (0.0); |
177 c1 (0.0); |
178 d1 (0.0, 1); |
178 d1 (0.0, 1); |
179 e1 (); |
179 e1 (); |
180 f1 (1); |
180 f1 (1); |
181 g1 (2); |
181 g1 (2); |
182 |
182 |
183 test8 (f1); |
183 Test8 (f1); |
184 |
184 |
185 Callback<void, int64_t,int64_t> a2; |
185 Callback<void, int64_t,int64_t> a2; |
186 |
186 |
187 if (isWrong ()) { |
187 if (IsWrong ()) { |
188 ok = false; |
188 ok = false; |
189 } |
189 } |
190 return ok; |
190 return ok; |
191 } |
191 } |
192 |
192 |