Changeset 9368 in orxonox.OLD for branches/proxy/src
- Timestamp:
- Jul 20, 2006, 8:28:10 PM (19 years ago)
- File:
-
- 1 edited
-
branches/proxy/src/lib/util/sigslot/signal.h (modified) (36 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/proxy/src/lib/util/sigslot/signal.h
r9362 r9368 95 95 class _connection_base0 96 96 { 97 public:98 virtual has_slots<mt_policy>* getdest() const = 0;99 virtual void emit() = 0;100 virtual _connection_base0* clone() = 0;101 virtual _connection_base0* duplicate(has_slots<mt_policy>* pnewdest) = 0;97 public: 98 virtual has_slots<mt_policy>* getdest() const = 0; 99 virtual void emit() = 0; 100 virtual _connection_base0* clone() = 0; 101 virtual _connection_base0* duplicate(has_slots<mt_policy>* pnewdest) = 0; 102 102 }; 103 103 … … 105 105 class _connection_base1 106 106 { 107 public:108 virtual has_slots<mt_policy>* getdest() const = 0;109 virtual void emit(arg1_type) = 0;110 virtual _connection_base1<arg1_type, mt_policy>* clone() = 0;111 virtual _connection_base1<arg1_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) = 0;107 public: 108 virtual has_slots<mt_policy>* getdest() const = 0; 109 virtual void emit(arg1_type) = 0; 110 virtual _connection_base1<arg1_type, mt_policy>* clone() = 0; 111 virtual _connection_base1<arg1_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) = 0; 112 112 }; 113 113 … … 115 115 class _connection_base2 116 116 { 117 public:118 virtual has_slots<mt_policy>* getdest() const = 0;119 virtual void emit(arg1_type, arg2_type) = 0;120 virtual _connection_base2<arg1_type, arg2_type, mt_policy>* clone() = 0;121 virtual _connection_base2<arg1_type, arg2_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) = 0;117 public: 118 virtual has_slots<mt_policy>* getdest() const = 0; 119 virtual void emit(arg1_type, arg2_type) = 0; 120 virtual _connection_base2<arg1_type, arg2_type, mt_policy>* clone() = 0; 121 virtual _connection_base2<arg1_type, arg2_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) = 0; 122 122 }; 123 123 … … 125 125 class _connection_base3 126 126 { 127 public:128 virtual has_slots<mt_policy>* getdest() const = 0;129 virtual void emit(arg1_type, arg2_type, arg3_type) = 0;130 virtual _connection_base3<arg1_type, arg2_type, arg3_type, mt_policy>* clone() = 0;131 virtual _connection_base3<arg1_type, arg2_type, arg3_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) = 0;127 public: 128 virtual has_slots<mt_policy>* getdest() const = 0; 129 virtual void emit(arg1_type, arg2_type, arg3_type) = 0; 130 virtual _connection_base3<arg1_type, arg2_type, arg3_type, mt_policy>* clone() = 0; 131 virtual _connection_base3<arg1_type, arg2_type, arg3_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) = 0; 132 132 }; 133 133 … … 135 135 class _connection_base4 136 136 { 137 public:138 virtual has_slots<mt_policy>* getdest() const = 0;139 virtual void emit(arg1_type, arg2_type, arg3_type, arg4_type) = 0;140 virtual _connection_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>* clone() = 0;141 virtual _connection_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) = 0;137 public: 138 virtual has_slots<mt_policy>* getdest() const = 0; 139 virtual void emit(arg1_type, arg2_type, arg3_type, arg4_type) = 0; 140 virtual _connection_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>* clone() = 0; 141 virtual _connection_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) = 0; 142 142 }; 143 143 … … 146 146 class _connection_base5 147 147 { 148 public:149 virtual has_slots<mt_policy>* getdest() const = 0;150 virtual void emit(arg1_type, arg2_type, arg3_type, arg4_type,151 arg5_type) = 0;152 virtual _connection_base5<arg1_type, arg2_type, arg3_type, arg4_type,153 arg5_type, mt_policy>* clone() = 0;154 virtual _connection_base5<arg1_type, arg2_type, arg3_type, arg4_type,155 arg5_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) = 0;148 public: 149 virtual has_slots<mt_policy>* getdest() const = 0; 150 virtual void emit(arg1_type, arg2_type, arg3_type, arg4_type, 151 arg5_type) = 0; 152 virtual _connection_base5<arg1_type, arg2_type, arg3_type, arg4_type, 153 arg5_type, mt_policy>* clone() = 0; 154 virtual _connection_base5<arg1_type, arg2_type, arg3_type, arg4_type, 155 arg5_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) = 0; 156 156 }; 157 157 … … 160 160 class _connection_base6 161 161 { 162 public:163 virtual has_slots<mt_policy>* getdest() const = 0;164 virtual void emit(arg1_type, arg2_type, arg3_type, arg4_type, arg5_type,165 arg6_type) = 0;166 virtual _connection_base6<arg1_type, arg2_type, arg3_type, arg4_type,167 arg5_type, arg6_type, mt_policy>* clone() = 0;168 virtual _connection_base6<arg1_type, arg2_type, arg3_type, arg4_type,169 arg5_type, arg6_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) = 0;162 public: 163 virtual has_slots<mt_policy>* getdest() const = 0; 164 virtual void emit(arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, 165 arg6_type) = 0; 166 virtual _connection_base6<arg1_type, arg2_type, arg3_type, arg4_type, 167 arg5_type, arg6_type, mt_policy>* clone() = 0; 168 virtual _connection_base6<arg1_type, arg2_type, arg3_type, arg4_type, 169 arg5_type, arg6_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) = 0; 170 170 }; 171 171 … … 174 174 class _connection_base7 175 175 { 176 public:177 virtual has_slots<mt_policy>* getdest() const = 0;178 virtual void emit(arg1_type, arg2_type, arg3_type, arg4_type, arg5_type,179 arg6_type, arg7_type) = 0;180 virtual _connection_base7<arg1_type, arg2_type, arg3_type, arg4_type,181 arg5_type, arg6_type, arg7_type, mt_policy>* clone() = 0;182 virtual _connection_base7<arg1_type, arg2_type, arg3_type, arg4_type,183 arg5_type, arg6_type, arg7_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) = 0;176 public: 177 virtual has_slots<mt_policy>* getdest() const = 0; 178 virtual void emit(arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, 179 arg6_type, arg7_type) = 0; 180 virtual _connection_base7<arg1_type, arg2_type, arg3_type, arg4_type, 181 arg5_type, arg6_type, arg7_type, mt_policy>* clone() = 0; 182 virtual _connection_base7<arg1_type, arg2_type, arg3_type, arg4_type, 183 arg5_type, arg6_type, arg7_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) = 0; 184 184 }; 185 185 … … 188 188 class _connection_base8 189 189 { 190 public:191 virtual has_slots<mt_policy>* getdest() const = 0;192 virtual void emit(arg1_type, arg2_type, arg3_type, arg4_type, arg5_type,193 arg6_type, arg7_type, arg8_type) = 0;194 virtual _connection_base8<arg1_type, arg2_type, arg3_type, arg4_type,195 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>* clone() = 0;196 virtual _connection_base8<arg1_type, arg2_type, arg3_type, arg4_type,197 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) = 0;190 public: 191 virtual has_slots<mt_policy>* getdest() const = 0; 192 virtual void emit(arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, 193 arg6_type, arg7_type, arg8_type) = 0; 194 virtual _connection_base8<arg1_type, arg2_type, arg3_type, arg4_type, 195 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>* clone() = 0; 196 virtual _connection_base8<arg1_type, arg2_type, arg3_type, arg4_type, 197 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) = 0; 198 198 }; 199 199 … … 201 201 class _signal_base0 : public _signal_base<mt_policy> 202 202 { 203 public: 204 typedef std::list<_connection_base0<mt_policy> *> connections_list; 205 206 _signal_base0() 207 { 208 ; 209 } 210 211 _signal_base0(const _signal_base0& s) 212 : _signal_base<mt_policy>(s) 213 { 214 lock_block<mt_policy> lock(this); 215 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 216 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 217 218 while(it != itEnd) 219 { 220 (*it)->getdest()->signal_connect(this); 221 m_connected_slots.push_back((*it)->clone()); 222 223 ++it; 224 } 225 } 226 227 ~_signal_base0() 228 { 229 disconnect_all(); 230 } 231 232 void disconnect_all() 233 { 234 lock_block<mt_policy> lock(this); 235 typename connections_list::const_iterator it = m_connected_slots.begin(); 236 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 237 238 while(it != itEnd) 239 { 240 (*it)->getdest()->signal_disconnect(this); 203 public: 204 typedef std::list<_connection_base0<mt_policy> *> connections_list; 205 206 _signal_base0() 207 { 208 ; 209 } 210 211 _signal_base0(const _signal_base0& s) 212 : _signal_base<mt_policy>(s) 213 { 214 lock_block<mt_policy> lock(this); 215 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 216 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 217 218 while(it != itEnd) 219 { 220 (*it)->getdest()->signal_connect(this); 221 m_connected_slots.push_back((*it)->clone()); 222 223 ++it; 224 } 225 } 226 227 ~_signal_base0() 228 { 229 disconnect_all(); 230 } 231 232 void disconnect_all() 233 { 234 lock_block<mt_policy> lock(this); 235 typename connections_list::const_iterator it = m_connected_slots.begin(); 236 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 237 238 while(it != itEnd) 239 { 240 (*it)->getdest()->signal_disconnect(this); 241 delete *it; 242 243 ++it; 244 } 245 246 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 247 } 248 249 void disconnect(has_slots<mt_policy>* pclass) 250 { 251 lock_block<mt_policy> lock(this); 252 typename connections_list::iterator it = m_connected_slots.begin(); 253 typename connections_list::iterator itEnd = m_connected_slots.end(); 254 255 while(it != itEnd) 256 { 257 if((*it)->getdest() == pclass) 258 { 241 259 delete *it; 242 243 ++it; 244 } 245 246 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 247 } 248 249 void disconnect(has_slots<mt_policy>* pclass) 250 { 251 lock_block<mt_policy> lock(this); 252 typename connections_list::iterator it = m_connected_slots.begin(); 253 typename connections_list::iterator itEnd = m_connected_slots.end(); 254 255 while(it != itEnd) 256 { 257 if((*it)->getdest() == pclass) 258 { 259 delete *it; 260 m_connected_slots.erase(it); 261 pclass->signal_disconnect(this); 262 return; 263 } 264 265 ++it; 266 } 267 } 268 269 void slot_disconnect(has_slots<mt_policy>* pslot) 270 { 271 lock_block<mt_policy> lock(this); 272 typename connections_list::iterator it = m_connected_slots.begin(); 273 typename connections_list::iterator itEnd = m_connected_slots.end(); 274 275 while(it != itEnd) 276 { 277 typename connections_list::iterator itNext = it; 278 ++itNext; 279 280 if((*it)->getdest() == pslot) 281 { 282 m_connected_slots.erase(it); 283 // delete *it; 284 } 285 286 it = itNext; 287 } 288 } 289 290 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 291 { 292 lock_block<mt_policy> lock(this); 293 typename connections_list::iterator it = m_connected_slots.begin(); 294 typename connections_list::iterator itEnd = m_connected_slots.end(); 295 296 while(it != itEnd) 297 { 298 if((*it)->getdest() == oldtarget) 299 { 300 m_connected_slots.push_back((*it)->duplicate(newtarget)); 301 } 302 303 ++it; 304 } 305 } 306 307 protected: 308 connections_list m_connected_slots; 260 m_connected_slots.erase(it); 261 pclass->signal_disconnect(this); 262 return; 263 } 264 265 ++it; 266 } 267 } 268 269 void slot_disconnect(has_slots<mt_policy>* pslot) 270 { 271 lock_block<mt_policy> lock(this); 272 typename connections_list::iterator it = m_connected_slots.begin(); 273 typename connections_list::iterator itEnd = m_connected_slots.end(); 274 275 while(it != itEnd) 276 { 277 typename connections_list::iterator itNext = it; 278 ++itNext; 279 280 if((*it)->getdest() == pslot) 281 { 282 m_connected_slots.erase(it); 283 // delete *it; 284 } 285 286 it = itNext; 287 } 288 } 289 290 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 291 { 292 lock_block<mt_policy> lock(this); 293 typename connections_list::iterator it = m_connected_slots.begin(); 294 typename connections_list::iterator itEnd = m_connected_slots.end(); 295 296 while(it != itEnd) 297 { 298 if((*it)->getdest() == oldtarget) 299 { 300 m_connected_slots.push_back((*it)->duplicate(newtarget)); 301 } 302 303 ++it; 304 } 305 } 306 307 protected: 308 connections_list m_connected_slots; 309 309 }; 310 310 … … 312 312 class _signal_base1 : public _signal_base<mt_policy> 313 313 { 314 public: 315 typedef std::list<_connection_base1<arg1_type, mt_policy> *> connections_list; 316 317 _signal_base1() 318 { 319 ; 320 } 321 322 _signal_base1(const _signal_base1<arg1_type, mt_policy>& s) 323 : _signal_base<mt_policy>(s) 324 { 325 lock_block<mt_policy> lock(this); 326 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 327 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 328 329 while(it != itEnd) 330 { 331 (*it)->getdest()->signal_connect(this); 332 m_connected_slots.push_back((*it)->clone()); 333 334 ++it; 335 } 336 } 337 338 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 339 { 340 lock_block<mt_policy> lock(this); 341 typename connections_list::iterator it = m_connected_slots.begin(); 342 typename connections_list::iterator itEnd = m_connected_slots.end(); 343 344 while(it != itEnd) 345 { 346 if((*it)->getdest() == oldtarget) 347 { 348 m_connected_slots.push_back((*it)->duplicate(newtarget)); 349 } 350 351 ++it; 352 } 353 } 354 355 ~_signal_base1() 356 { 357 disconnect_all(); 358 } 359 360 void disconnect_all() 361 { 362 lock_block<mt_policy> lock(this); 363 typename connections_list::const_iterator it = m_connected_slots.begin(); 364 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 365 366 while(it != itEnd) 367 { 368 (*it)->getdest()->signal_disconnect(this); 314 public: 315 typedef std::list<_connection_base1<arg1_type, mt_policy> *> connections_list; 316 317 _signal_base1() 318 { 319 ; 320 } 321 322 _signal_base1(const _signal_base1<arg1_type, mt_policy>& s) 323 : _signal_base<mt_policy>(s) 324 { 325 lock_block<mt_policy> lock(this); 326 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 327 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 328 329 while(it != itEnd) 330 { 331 (*it)->getdest()->signal_connect(this); 332 m_connected_slots.push_back((*it)->clone()); 333 334 ++it; 335 } 336 } 337 338 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 339 { 340 lock_block<mt_policy> lock(this); 341 typename connections_list::iterator it = m_connected_slots.begin(); 342 typename connections_list::iterator itEnd = m_connected_slots.end(); 343 344 while(it != itEnd) 345 { 346 if((*it)->getdest() == oldtarget) 347 { 348 m_connected_slots.push_back((*it)->duplicate(newtarget)); 349 } 350 351 ++it; 352 } 353 } 354 355 ~_signal_base1() 356 { 357 disconnect_all(); 358 } 359 360 void disconnect_all() 361 { 362 lock_block<mt_policy> lock(this); 363 typename connections_list::const_iterator it = m_connected_slots.begin(); 364 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 365 366 while(it != itEnd) 367 { 368 (*it)->getdest()->signal_disconnect(this); 369 delete *it; 370 371 ++it; 372 } 373 374 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 375 } 376 377 void disconnect(has_slots<mt_policy>* pclass) 378 { 379 lock_block<mt_policy> lock(this); 380 typename connections_list::iterator it = m_connected_slots.begin(); 381 typename connections_list::iterator itEnd = m_connected_slots.end(); 382 383 while(it != itEnd) 384 { 385 if((*it)->getdest() == pclass) 386 { 369 387 delete *it; 370 371 ++it; 372 } 373 374 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 375 } 376 377 void disconnect(has_slots<mt_policy>* pclass) 378 { 379 lock_block<mt_policy> lock(this); 380 typename connections_list::iterator it = m_connected_slots.begin(); 381 typename connections_list::iterator itEnd = m_connected_slots.end(); 382 383 while(it != itEnd) 384 { 385 if((*it)->getdest() == pclass) 386 { 387 delete *it; 388 m_connected_slots.erase(it); 389 pclass->signal_disconnect(this); 390 return; 391 } 392 393 ++it; 394 } 395 } 396 397 void slot_disconnect(has_slots<mt_policy>* pslot) 398 { 399 lock_block<mt_policy> lock(this); 400 typename connections_list::iterator it = m_connected_slots.begin(); 401 typename connections_list::iterator itEnd = m_connected_slots.end(); 402 403 while(it != itEnd) 404 { 405 typename connections_list::iterator itNext = it; 406 ++itNext; 407 408 if((*it)->getdest() == pslot) 409 { 410 m_connected_slots.erase(it); 411 // delete *it; 412 } 413 414 it = itNext; 415 } 416 } 417 418 419 protected: 420 connections_list m_connected_slots; 388 m_connected_slots.erase(it); 389 pclass->signal_disconnect(this); 390 return; 391 } 392 393 ++it; 394 } 395 } 396 397 void slot_disconnect(has_slots<mt_policy>* pslot) 398 { 399 lock_block<mt_policy> lock(this); 400 typename connections_list::iterator it = m_connected_slots.begin(); 401 typename connections_list::iterator itEnd = m_connected_slots.end(); 402 403 while(it != itEnd) 404 { 405 typename connections_list::iterator itNext = it; 406 ++itNext; 407 408 if((*it)->getdest() == pslot) 409 { 410 m_connected_slots.erase(it); 411 // delete *it; 412 } 413 414 it = itNext; 415 } 416 } 417 418 419 protected: 420 connections_list m_connected_slots; 421 421 }; 422 422 … … 424 424 class _signal_base2 : public _signal_base<mt_policy> 425 425 { 426 public: 427 typedef std::list<_connection_base2<arg1_type, arg2_type, mt_policy> *> 428 connections_list; 429 430 _signal_base2() 431 { 432 ; 433 } 434 435 _signal_base2(const _signal_base2<arg1_type, arg2_type, mt_policy>& s) 436 : _signal_base<mt_policy>(s) 437 { 438 lock_block<mt_policy> lock(this); 439 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 440 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 441 442 while(it != itEnd) 443 { 444 (*it)->getdest()->signal_connect(this); 445 m_connected_slots.push_back((*it)->clone()); 446 447 ++it; 448 } 449 } 450 451 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 452 { 453 lock_block<mt_policy> lock(this); 454 typename connections_list::iterator it = m_connected_slots.begin(); 455 typename connections_list::iterator itEnd = m_connected_slots.end(); 456 457 while(it != itEnd) 458 { 459 if((*it)->getdest() == oldtarget) 460 { 461 m_connected_slots.push_back((*it)->duplicate(newtarget)); 462 } 463 464 ++it; 465 } 466 } 467 468 ~_signal_base2() 469 { 470 disconnect_all(); 471 } 472 473 void disconnect_all() 474 { 475 lock_block<mt_policy> lock(this); 476 typename connections_list::const_iterator it = m_connected_slots.begin(); 477 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 478 479 while(it != itEnd) 480 { 481 (*it)->getdest()->signal_disconnect(this); 426 public: 427 typedef std::list<_connection_base2<arg1_type, arg2_type, mt_policy> *> 428 connections_list; 429 430 _signal_base2() 431 { 432 ; 433 } 434 435 _signal_base2(const _signal_base2<arg1_type, arg2_type, mt_policy>& s) 436 : _signal_base<mt_policy>(s) 437 { 438 lock_block<mt_policy> lock(this); 439 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 440 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 441 442 while(it != itEnd) 443 { 444 (*it)->getdest()->signal_connect(this); 445 m_connected_slots.push_back((*it)->clone()); 446 447 ++it; 448 } 449 } 450 451 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 452 { 453 lock_block<mt_policy> lock(this); 454 typename connections_list::iterator it = m_connected_slots.begin(); 455 typename connections_list::iterator itEnd = m_connected_slots.end(); 456 457 while(it != itEnd) 458 { 459 if((*it)->getdest() == oldtarget) 460 { 461 m_connected_slots.push_back((*it)->duplicate(newtarget)); 462 } 463 464 ++it; 465 } 466 } 467 468 ~_signal_base2() 469 { 470 disconnect_all(); 471 } 472 473 void disconnect_all() 474 { 475 lock_block<mt_policy> lock(this); 476 typename connections_list::const_iterator it = m_connected_slots.begin(); 477 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 478 479 while(it != itEnd) 480 { 481 (*it)->getdest()->signal_disconnect(this); 482 delete *it; 483 484 ++it; 485 } 486 487 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 488 } 489 490 void disconnect(has_slots<mt_policy>* pclass) 491 { 492 lock_block<mt_policy> lock(this); 493 typename connections_list::iterator it = m_connected_slots.begin(); 494 typename connections_list::iterator itEnd = m_connected_slots.end(); 495 496 while(it != itEnd) 497 { 498 if((*it)->getdest() == pclass) 499 { 482 500 delete *it; 483 484 ++it; 485 } 486 487 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 488 } 489 490 void disconnect(has_slots<mt_policy>* pclass) 491 { 492 lock_block<mt_policy> lock(this); 493 typename connections_list::iterator it = m_connected_slots.begin(); 494 typename connections_list::iterator itEnd = m_connected_slots.end(); 495 496 while(it != itEnd) 497 { 498 if((*it)->getdest() == pclass) 499 { 500 delete *it; 501 m_connected_slots.erase(it); 502 pclass->signal_disconnect(this); 503 return; 504 } 505 506 ++it; 507 } 508 } 509 510 void slot_disconnect(has_slots<mt_policy>* pslot) 511 { 512 lock_block<mt_policy> lock(this); 513 typename connections_list::iterator it = m_connected_slots.begin(); 514 typename connections_list::iterator itEnd = m_connected_slots.end(); 515 516 while(it != itEnd) 517 { 518 typename connections_list::iterator itNext = it; 519 ++itNext; 520 521 if((*it)->getdest() == pslot) 522 { 523 m_connected_slots.erase(it); 524 // delete *it; 525 } 526 527 it = itNext; 528 } 529 } 530 531 protected: 532 connections_list m_connected_slots; 501 m_connected_slots.erase(it); 502 pclass->signal_disconnect(this); 503 return; 504 } 505 506 ++it; 507 } 508 } 509 510 void slot_disconnect(has_slots<mt_policy>* pslot) 511 { 512 lock_block<mt_policy> lock(this); 513 typename connections_list::iterator it = m_connected_slots.begin(); 514 typename connections_list::iterator itEnd = m_connected_slots.end(); 515 516 while(it != itEnd) 517 { 518 typename connections_list::iterator itNext = it; 519 ++itNext; 520 521 if((*it)->getdest() == pslot) 522 { 523 m_connected_slots.erase(it); 524 // delete *it; 525 } 526 527 it = itNext; 528 } 529 } 530 531 protected: 532 connections_list m_connected_slots; 533 533 }; 534 534 … … 536 536 class _signal_base3 : public _signal_base<mt_policy> 537 537 { 538 public: 539 typedef std::list<_connection_base3<arg1_type, arg2_type, arg3_type, mt_policy> *> 540 connections_list; 541 542 _signal_base3() 543 { 544 ; 545 } 546 547 _signal_base3(const _signal_base3<arg1_type, arg2_type, arg3_type, mt_policy>& s) 548 : _signal_base<mt_policy>(s) 549 { 550 lock_block<mt_policy> lock(this); 551 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 552 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 553 554 while(it != itEnd) 555 { 556 (*it)->getdest()->signal_connect(this); 557 m_connected_slots.push_back((*it)->clone()); 558 559 ++it; 560 } 561 } 562 563 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 564 { 565 lock_block<mt_policy> lock(this); 566 typename connections_list::iterator it = m_connected_slots.begin(); 567 typename connections_list::iterator itEnd = m_connected_slots.end(); 568 569 while(it != itEnd) 570 { 571 if((*it)->getdest() == oldtarget) 572 { 573 m_connected_slots.push_back((*it)->duplicate(newtarget)); 574 } 575 576 ++it; 577 } 578 } 579 580 ~_signal_base3() 581 { 582 disconnect_all(); 583 } 584 585 void disconnect_all() 586 { 587 lock_block<mt_policy> lock(this); 588 typename connections_list::const_iterator it = m_connected_slots.begin(); 589 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 590 591 while(it != itEnd) 592 { 593 (*it)->getdest()->signal_disconnect(this); 538 public: 539 typedef std::list<_connection_base3<arg1_type, arg2_type, arg3_type, mt_policy> *> 540 connections_list; 541 542 _signal_base3() 543 { 544 ; 545 } 546 547 _signal_base3(const _signal_base3<arg1_type, arg2_type, arg3_type, mt_policy>& s) 548 : _signal_base<mt_policy>(s) 549 { 550 lock_block<mt_policy> lock(this); 551 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 552 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 553 554 while(it != itEnd) 555 { 556 (*it)->getdest()->signal_connect(this); 557 m_connected_slots.push_back((*it)->clone()); 558 559 ++it; 560 } 561 } 562 563 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 564 { 565 lock_block<mt_policy> lock(this); 566 typename connections_list::iterator it = m_connected_slots.begin(); 567 typename connections_list::iterator itEnd = m_connected_slots.end(); 568 569 while(it != itEnd) 570 { 571 if((*it)->getdest() == oldtarget) 572 { 573 m_connected_slots.push_back((*it)->duplicate(newtarget)); 574 } 575 576 ++it; 577 } 578 } 579 580 ~_signal_base3() 581 { 582 disconnect_all(); 583 } 584 585 void disconnect_all() 586 { 587 lock_block<mt_policy> lock(this); 588 typename connections_list::const_iterator it = m_connected_slots.begin(); 589 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 590 591 while(it != itEnd) 592 { 593 (*it)->getdest()->signal_disconnect(this); 594 delete *it; 595 596 ++it; 597 } 598 599 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 600 } 601 602 void disconnect(has_slots<mt_policy>* pclass) 603 { 604 lock_block<mt_policy> lock(this); 605 typename connections_list::iterator it = m_connected_slots.begin(); 606 typename connections_list::iterator itEnd = m_connected_slots.end(); 607 608 while(it != itEnd) 609 { 610 if((*it)->getdest() == pclass) 611 { 594 612 delete *it; 595 596 ++it; 597 } 598 599 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 600 } 601 602 void disconnect(has_slots<mt_policy>* pclass) 603 { 604 lock_block<mt_policy> lock(this); 605 typename connections_list::iterator it = m_connected_slots.begin(); 606 typename connections_list::iterator itEnd = m_connected_slots.end(); 607 608 while(it != itEnd) 609 { 610 if((*it)->getdest() == pclass) 611 { 612 delete *it; 613 m_connected_slots.erase(it); 614 pclass->signal_disconnect(this); 615 return; 616 } 617 618 ++it; 619 } 620 } 621 622 void slot_disconnect(has_slots<mt_policy>* pslot) 623 { 624 lock_block<mt_policy> lock(this); 625 typename connections_list::iterator it = m_connected_slots.begin(); 626 typename connections_list::iterator itEnd = m_connected_slots.end(); 627 628 while(it != itEnd) 629 { 630 typename connections_list::iterator itNext = it; 631 ++itNext; 632 633 if((*it)->getdest() == pslot) 634 { 635 m_connected_slots.erase(it); 636 // delete *it; 637 } 638 639 it = itNext; 640 } 641 } 642 643 protected: 644 connections_list m_connected_slots; 613 m_connected_slots.erase(it); 614 pclass->signal_disconnect(this); 615 return; 616 } 617 618 ++it; 619 } 620 } 621 622 void slot_disconnect(has_slots<mt_policy>* pslot) 623 { 624 lock_block<mt_policy> lock(this); 625 typename connections_list::iterator it = m_connected_slots.begin(); 626 typename connections_list::iterator itEnd = m_connected_slots.end(); 627 628 while(it != itEnd) 629 { 630 typename connections_list::iterator itNext = it; 631 ++itNext; 632 633 if((*it)->getdest() == pslot) 634 { 635 m_connected_slots.erase(it); 636 // delete *it; 637 } 638 639 it = itNext; 640 } 641 } 642 643 protected: 644 connections_list m_connected_slots; 645 645 }; 646 646 … … 648 648 class _signal_base4 : public _signal_base<mt_policy> 649 649 { 650 public: 651 typedef std::list<_connection_base4<arg1_type, arg2_type, arg3_type, 652 arg4_type, mt_policy> *> connections_list; 653 654 _signal_base4() 655 { 656 ; 657 } 658 659 _signal_base4(const _signal_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>& s) 660 : _signal_base<mt_policy>(s) 661 { 662 lock_block<mt_policy> lock(this); 663 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 664 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 665 666 while(it != itEnd) 667 { 668 (*it)->getdest()->signal_connect(this); 669 m_connected_slots.push_back((*it)->clone()); 670 671 ++it; 672 } 673 } 674 675 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 676 { 677 lock_block<mt_policy> lock(this); 678 typename connections_list::iterator it = m_connected_slots.begin(); 679 typename connections_list::iterator itEnd = m_connected_slots.end(); 680 681 while(it != itEnd) 682 { 683 if((*it)->getdest() == oldtarget) 684 { 685 m_connected_slots.push_back((*it)->duplicate(newtarget)); 686 } 687 688 ++it; 689 } 690 } 691 692 ~_signal_base4() 693 { 694 disconnect_all(); 695 } 696 697 void disconnect_all() 698 { 699 lock_block<mt_policy> lock(this); 700 typename connections_list::const_iterator it = m_connected_slots.begin(); 701 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 702 703 while(it != itEnd) 704 { 705 (*it)->getdest()->signal_disconnect(this); 650 public: 651 typedef std::list<_connection_base4<arg1_type, arg2_type, arg3_type, 652 arg4_type, mt_policy> *> connections_list; 653 654 _signal_base4() 655 { 656 ; 657 } 658 659 _signal_base4(const _signal_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>& s) 660 : _signal_base<mt_policy>(s) 661 { 662 lock_block<mt_policy> lock(this); 663 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 664 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 665 666 while(it != itEnd) 667 { 668 (*it)->getdest()->signal_connect(this); 669 m_connected_slots.push_back((*it)->clone()); 670 671 ++it; 672 } 673 } 674 675 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 676 { 677 lock_block<mt_policy> lock(this); 678 typename connections_list::iterator it = m_connected_slots.begin(); 679 typename connections_list::iterator itEnd = m_connected_slots.end(); 680 681 while(it != itEnd) 682 { 683 if((*it)->getdest() == oldtarget) 684 { 685 m_connected_slots.push_back((*it)->duplicate(newtarget)); 686 } 687 688 ++it; 689 } 690 } 691 692 ~_signal_base4() 693 { 694 disconnect_all(); 695 } 696 697 void disconnect_all() 698 { 699 lock_block<mt_policy> lock(this); 700 typename connections_list::const_iterator it = m_connected_slots.begin(); 701 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 702 703 while(it != itEnd) 704 { 705 (*it)->getdest()->signal_disconnect(this); 706 delete *it; 707 708 ++it; 709 } 710 711 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 712 } 713 714 void disconnect(has_slots<mt_policy>* pclass) 715 { 716 lock_block<mt_policy> lock(this); 717 typename connections_list::iterator it = m_connected_slots.begin(); 718 typename connections_list::iterator itEnd = m_connected_slots.end(); 719 720 while(it != itEnd) 721 { 722 if((*it)->getdest() == pclass) 723 { 706 724 delete *it; 707 708 ++it; 709 } 710 711 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 712 } 713 714 void disconnect(has_slots<mt_policy>* pclass) 715 { 716 lock_block<mt_policy> lock(this); 717 typename connections_list::iterator it = m_connected_slots.begin(); 718 typename connections_list::iterator itEnd = m_connected_slots.end(); 719 720 while(it != itEnd) 721 { 722 if((*it)->getdest() == pclass) 723 { 724 delete *it; 725 m_connected_slots.erase(it); 726 pclass->signal_disconnect(this); 727 return; 728 } 729 730 ++it; 731 } 732 } 733 734 void slot_disconnect(has_slots<mt_policy>* pslot) 735 { 736 lock_block<mt_policy> lock(this); 737 typename connections_list::iterator it = m_connected_slots.begin(); 738 typename connections_list::iterator itEnd = m_connected_slots.end(); 739 740 while(it != itEnd) 741 { 742 typename connections_list::iterator itNext = it; 743 ++itNext; 744 745 if((*it)->getdest() == pslot) 746 { 747 m_connected_slots.erase(it); 748 // delete *it; 749 } 750 751 it = itNext; 752 } 753 } 754 755 protected: 756 connections_list m_connected_slots; 725 m_connected_slots.erase(it); 726 pclass->signal_disconnect(this); 727 return; 728 } 729 730 ++it; 731 } 732 } 733 734 void slot_disconnect(has_slots<mt_policy>* pslot) 735 { 736 lock_block<mt_policy> lock(this); 737 typename connections_list::iterator it = m_connected_slots.begin(); 738 typename connections_list::iterator itEnd = m_connected_slots.end(); 739 740 while(it != itEnd) 741 { 742 typename connections_list::iterator itNext = it; 743 ++itNext; 744 745 if((*it)->getdest() == pslot) 746 { 747 m_connected_slots.erase(it); 748 // delete *it; 749 } 750 751 it = itNext; 752 } 753 } 754 755 protected: 756 connections_list m_connected_slots; 757 757 }; 758 758 … … 761 761 class _signal_base5 : public _signal_base<mt_policy> 762 762 { 763 public: 764 typedef std::list<_connection_base5<arg1_type, arg2_type, arg3_type, 765 arg4_type, arg5_type, mt_policy> *> connections_list; 766 767 _signal_base5() 768 { 769 ; 770 } 771 772 _signal_base5(const _signal_base5<arg1_type, arg2_type, arg3_type, arg4_type, 773 arg5_type, mt_policy>& s) 774 : _signal_base<mt_policy>(s) 775 { 776 lock_block<mt_policy> lock(this); 777 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 778 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 779 780 while(it != itEnd) 781 { 782 (*it)->getdest()->signal_connect(this); 783 m_connected_slots.push_back((*it)->clone()); 784 785 ++it; 786 } 787 } 788 789 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 790 { 791 lock_block<mt_policy> lock(this); 792 typename connections_list::iterator it = m_connected_slots.begin(); 793 typename connections_list::iterator itEnd = m_connected_slots.end(); 794 795 while(it != itEnd) 796 { 797 if((*it)->getdest() == oldtarget) 798 { 799 m_connected_slots.push_back((*it)->duplicate(newtarget)); 800 } 801 802 ++it; 803 } 804 } 805 806 ~_signal_base5() 807 { 808 disconnect_all(); 809 } 810 811 void disconnect_all() 812 { 813 lock_block<mt_policy> lock(this); 814 typename connections_list::const_iterator it = m_connected_slots.begin(); 815 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 816 817 while(it != itEnd) 818 { 819 (*it)->getdest()->signal_disconnect(this); 763 public: 764 typedef std::list<_connection_base5<arg1_type, arg2_type, arg3_type, 765 arg4_type, arg5_type, mt_policy> *> connections_list; 766 767 _signal_base5() 768 { 769 ; 770 } 771 772 _signal_base5(const _signal_base5<arg1_type, arg2_type, arg3_type, arg4_type, 773 arg5_type, mt_policy>& s) 774 : _signal_base<mt_policy>(s) 775 { 776 lock_block<mt_policy> lock(this); 777 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 778 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 779 780 while(it != itEnd) 781 { 782 (*it)->getdest()->signal_connect(this); 783 m_connected_slots.push_back((*it)->clone()); 784 785 ++it; 786 } 787 } 788 789 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 790 { 791 lock_block<mt_policy> lock(this); 792 typename connections_list::iterator it = m_connected_slots.begin(); 793 typename connections_list::iterator itEnd = m_connected_slots.end(); 794 795 while(it != itEnd) 796 { 797 if((*it)->getdest() == oldtarget) 798 { 799 m_connected_slots.push_back((*it)->duplicate(newtarget)); 800 } 801 802 ++it; 803 } 804 } 805 806 ~_signal_base5() 807 { 808 disconnect_all(); 809 } 810 811 void disconnect_all() 812 { 813 lock_block<mt_policy> lock(this); 814 typename connections_list::const_iterator it = m_connected_slots.begin(); 815 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 816 817 while(it != itEnd) 818 { 819 (*it)->getdest()->signal_disconnect(this); 820 delete *it; 821 822 ++it; 823 } 824 825 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 826 } 827 828 void disconnect(has_slots<mt_policy>* pclass) 829 { 830 lock_block<mt_policy> lock(this); 831 typename connections_list::iterator it = m_connected_slots.begin(); 832 typename connections_list::iterator itEnd = m_connected_slots.end(); 833 834 while(it != itEnd) 835 { 836 if((*it)->getdest() == pclass) 837 { 820 838 delete *it; 821 822 ++it; 823 } 824 825 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 826 } 827 828 void disconnect(has_slots<mt_policy>* pclass) 829 { 830 lock_block<mt_policy> lock(this); 831 typename connections_list::iterator it = m_connected_slots.begin(); 832 typename connections_list::iterator itEnd = m_connected_slots.end(); 833 834 while(it != itEnd) 835 { 836 if((*it)->getdest() == pclass) 837 { 838 delete *it; 839 m_connected_slots.erase(it); 840 pclass->signal_disconnect(this); 841 return; 842 } 843 844 ++it; 845 } 846 } 847 848 void slot_disconnect(has_slots<mt_policy>* pslot) 849 { 850 lock_block<mt_policy> lock(this); 851 typename connections_list::iterator it = m_connected_slots.begin(); 852 typename connections_list::iterator itEnd = m_connected_slots.end(); 853 854 while(it != itEnd) 855 { 856 typename connections_list::iterator itNext = it; 857 ++itNext; 858 859 if((*it)->getdest() == pslot) 860 { 861 m_connected_slots.erase(it); 862 // delete *it; 863 } 864 865 it = itNext; 866 } 867 } 868 869 protected: 870 connections_list m_connected_slots; 839 m_connected_slots.erase(it); 840 pclass->signal_disconnect(this); 841 return; 842 } 843 844 ++it; 845 } 846 } 847 848 void slot_disconnect(has_slots<mt_policy>* pslot) 849 { 850 lock_block<mt_policy> lock(this); 851 typename connections_list::iterator it = m_connected_slots.begin(); 852 typename connections_list::iterator itEnd = m_connected_slots.end(); 853 854 while(it != itEnd) 855 { 856 typename connections_list::iterator itNext = it; 857 ++itNext; 858 859 if((*it)->getdest() == pslot) 860 { 861 m_connected_slots.erase(it); 862 // delete *it; 863 } 864 865 it = itNext; 866 } 867 } 868 869 protected: 870 connections_list m_connected_slots; 871 871 }; 872 872 … … 875 875 class _signal_base6 : public _signal_base<mt_policy> 876 876 { 877 public: 878 typedef std::list<_connection_base6<arg1_type, arg2_type, arg3_type, 879 arg4_type, arg5_type, arg6_type, mt_policy> *> connections_list; 880 881 _signal_base6() 882 { 883 ; 884 } 885 886 _signal_base6(const _signal_base6<arg1_type, arg2_type, arg3_type, arg4_type, 887 arg5_type, arg6_type, mt_policy>& s) 888 : _signal_base<mt_policy>(s) 889 { 890 lock_block<mt_policy> lock(this); 891 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 892 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 893 894 while(it != itEnd) 895 { 896 (*it)->getdest()->signal_connect(this); 897 m_connected_slots.push_back((*it)->clone()); 898 899 ++it; 900 } 901 } 902 903 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 904 { 905 lock_block<mt_policy> lock(this); 906 typename connections_list::iterator it = m_connected_slots.begin(); 907 typename connections_list::iterator itEnd = m_connected_slots.end(); 908 909 while(it != itEnd) 910 { 911 if((*it)->getdest() == oldtarget) 912 { 913 m_connected_slots.push_back((*it)->duplicate(newtarget)); 914 } 915 916 ++it; 917 } 918 } 919 920 ~_signal_base6() 921 { 922 disconnect_all(); 923 } 924 925 void disconnect_all() 926 { 927 lock_block<mt_policy> lock(this); 928 typename connections_list::const_iterator it = m_connected_slots.begin(); 929 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 930 931 while(it != itEnd) 932 { 933 (*it)->getdest()->signal_disconnect(this); 877 public: 878 typedef std::list<_connection_base6<arg1_type, arg2_type, arg3_type, 879 arg4_type, arg5_type, arg6_type, mt_policy> *> connections_list; 880 881 _signal_base6() 882 { 883 ; 884 } 885 886 _signal_base6(const _signal_base6<arg1_type, arg2_type, arg3_type, arg4_type, 887 arg5_type, arg6_type, mt_policy>& s) 888 : _signal_base<mt_policy>(s) 889 { 890 lock_block<mt_policy> lock(this); 891 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 892 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 893 894 while(it != itEnd) 895 { 896 (*it)->getdest()->signal_connect(this); 897 m_connected_slots.push_back((*it)->clone()); 898 899 ++it; 900 } 901 } 902 903 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 904 { 905 lock_block<mt_policy> lock(this); 906 typename connections_list::iterator it = m_connected_slots.begin(); 907 typename connections_list::iterator itEnd = m_connected_slots.end(); 908 909 while(it != itEnd) 910 { 911 if((*it)->getdest() == oldtarget) 912 { 913 m_connected_slots.push_back((*it)->duplicate(newtarget)); 914 } 915 916 ++it; 917 } 918 } 919 920 ~_signal_base6() 921 { 922 disconnect_all(); 923 } 924 925 void disconnect_all() 926 { 927 lock_block<mt_policy> lock(this); 928 typename connections_list::const_iterator it = m_connected_slots.begin(); 929 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 930 931 while(it != itEnd) 932 { 933 (*it)->getdest()->signal_disconnect(this); 934 delete *it; 935 936 ++it; 937 } 938 939 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 940 } 941 942 void disconnect(has_slots<mt_policy>* pclass) 943 { 944 lock_block<mt_policy> lock(this); 945 typename connections_list::iterator it = m_connected_slots.begin(); 946 typename connections_list::iterator itEnd = m_connected_slots.end(); 947 948 while(it != itEnd) 949 { 950 if((*it)->getdest() == pclass) 951 { 934 952 delete *it; 935 936 ++it; 937 } 938 939 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 940 } 941 942 void disconnect(has_slots<mt_policy>* pclass) 943 { 944 lock_block<mt_policy> lock(this); 945 typename connections_list::iterator it = m_connected_slots.begin(); 946 typename connections_list::iterator itEnd = m_connected_slots.end(); 947 948 while(it != itEnd) 949 { 950 if((*it)->getdest() == pclass) 951 { 952 delete *it; 953 m_connected_slots.erase(it); 954 pclass->signal_disconnect(this); 955 return; 956 } 957 958 ++it; 959 } 960 } 961 962 void slot_disconnect(has_slots<mt_policy>* pslot) 963 { 964 lock_block<mt_policy> lock(this); 965 typename connections_list::iterator it = m_connected_slots.begin(); 966 typename connections_list::iterator itEnd = m_connected_slots.end(); 967 968 while(it != itEnd) 969 { 970 typename connections_list::iterator itNext = it; 971 ++itNext; 972 973 if((*it)->getdest() == pslot) 974 { 975 m_connected_slots.erase(it); 976 // delete *it; 977 } 978 979 it = itNext; 980 } 981 } 982 983 protected: 984 connections_list m_connected_slots; 953 m_connected_slots.erase(it); 954 pclass->signal_disconnect(this); 955 return; 956 } 957 958 ++it; 959 } 960 } 961 962 void slot_disconnect(has_slots<mt_policy>* pslot) 963 { 964 lock_block<mt_policy> lock(this); 965 typename connections_list::iterator it = m_connected_slots.begin(); 966 typename connections_list::iterator itEnd = m_connected_slots.end(); 967 968 while(it != itEnd) 969 { 970 typename connections_list::iterator itNext = it; 971 ++itNext; 972 973 if((*it)->getdest() == pslot) 974 { 975 m_connected_slots.erase(it); 976 // delete *it; 977 } 978 979 it = itNext; 980 } 981 } 982 983 protected: 984 connections_list m_connected_slots; 985 985 }; 986 986 … … 989 989 class _signal_base7 : public _signal_base<mt_policy> 990 990 { 991 public: 992 typedef std::list<_connection_base7<arg1_type, arg2_type, arg3_type, 993 arg4_type, arg5_type, arg6_type, arg7_type, mt_policy> *> connections_list; 994 995 _signal_base7() 996 { 997 ; 998 } 999 1000 _signal_base7(const _signal_base7<arg1_type, arg2_type, arg3_type, arg4_type, 1001 arg5_type, arg6_type, arg7_type, mt_policy>& s) 1002 : _signal_base<mt_policy>(s) 1003 { 1004 lock_block<mt_policy> lock(this); 1005 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 1006 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 1007 1008 while(it != itEnd) 1009 { 1010 (*it)->getdest()->signal_connect(this); 1011 m_connected_slots.push_back((*it)->clone()); 1012 1013 ++it; 1014 } 1015 } 1016 1017 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 1018 { 1019 lock_block<mt_policy> lock(this); 1020 typename connections_list::iterator it = m_connected_slots.begin(); 1021 typename connections_list::iterator itEnd = m_connected_slots.end(); 1022 1023 while(it != itEnd) 1024 { 1025 if((*it)->getdest() == oldtarget) 1026 { 1027 m_connected_slots.push_back((*it)->duplicate(newtarget)); 1028 } 1029 1030 ++it; 1031 } 1032 } 1033 1034 ~_signal_base7() 1035 { 1036 disconnect_all(); 1037 } 1038 1039 void disconnect_all() 1040 { 1041 lock_block<mt_policy> lock(this); 1042 typename connections_list::const_iterator it = m_connected_slots.begin(); 1043 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 1044 1045 while(it != itEnd) 1046 { 1047 (*it)->getdest()->signal_disconnect(this); 991 public: 992 typedef std::list<_connection_base7<arg1_type, arg2_type, arg3_type, 993 arg4_type, arg5_type, arg6_type, arg7_type, mt_policy> *> connections_list; 994 995 _signal_base7() 996 { 997 ; 998 } 999 1000 _signal_base7(const _signal_base7<arg1_type, arg2_type, arg3_type, arg4_type, 1001 arg5_type, arg6_type, arg7_type, mt_policy>& s) 1002 : _signal_base<mt_policy>(s) 1003 { 1004 lock_block<mt_policy> lock(this); 1005 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 1006 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 1007 1008 while(it != itEnd) 1009 { 1010 (*it)->getdest()->signal_connect(this); 1011 m_connected_slots.push_back((*it)->clone()); 1012 1013 ++it; 1014 } 1015 } 1016 1017 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 1018 { 1019 lock_block<mt_policy> lock(this); 1020 typename connections_list::iterator it = m_connected_slots.begin(); 1021 typename connections_list::iterator itEnd = m_connected_slots.end(); 1022 1023 while(it != itEnd) 1024 { 1025 if((*it)->getdest() == oldtarget) 1026 { 1027 m_connected_slots.push_back((*it)->duplicate(newtarget)); 1028 } 1029 1030 ++it; 1031 } 1032 } 1033 1034 ~_signal_base7() 1035 { 1036 disconnect_all(); 1037 } 1038 1039 void disconnect_all() 1040 { 1041 lock_block<mt_policy> lock(this); 1042 typename connections_list::const_iterator it = m_connected_slots.begin(); 1043 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 1044 1045 while(it != itEnd) 1046 { 1047 (*it)->getdest()->signal_disconnect(this); 1048 delete *it; 1049 1050 ++it; 1051 } 1052 1053 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 1054 } 1055 1056 void disconnect(has_slots<mt_policy>* pclass) 1057 { 1058 lock_block<mt_policy> lock(this); 1059 typename connections_list::iterator it = m_connected_slots.begin(); 1060 typename connections_list::iterator itEnd = m_connected_slots.end(); 1061 1062 while(it != itEnd) 1063 { 1064 if((*it)->getdest() == pclass) 1065 { 1048 1066 delete *it; 1049 1050 ++it; 1051 } 1052 1053 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 1054 } 1055 1056 void disconnect(has_slots<mt_policy>* pclass) 1057 { 1058 lock_block<mt_policy> lock(this); 1059 typename connections_list::iterator it = m_connected_slots.begin(); 1060 typename connections_list::iterator itEnd = m_connected_slots.end(); 1061 1062 while(it != itEnd) 1063 { 1064 if((*it)->getdest() == pclass) 1065 { 1066 delete *it; 1067 m_connected_slots.erase(it); 1068 pclass->signal_disconnect(this); 1069 return; 1070 } 1071 1072 ++it; 1073 } 1074 } 1075 1076 void slot_disconnect(has_slots<mt_policy>* pslot) 1077 { 1078 lock_block<mt_policy> lock(this); 1079 typename connections_list::iterator it = m_connected_slots.begin(); 1080 typename connections_list::iterator itEnd = m_connected_slots.end(); 1081 1082 while(it != itEnd) 1083 { 1084 typename connections_list::iterator itNext = it; 1085 ++itNext; 1086 1087 if((*it)->getdest() == pslot) 1088 { 1089 m_connected_slots.erase(it); 1090 // delete *it; 1091 } 1092 1093 it = itNext; 1094 } 1095 } 1096 1097 protected: 1098 connections_list m_connected_slots; 1067 m_connected_slots.erase(it); 1068 pclass->signal_disconnect(this); 1069 return; 1070 } 1071 1072 ++it; 1073 } 1074 } 1075 1076 void slot_disconnect(has_slots<mt_policy>* pslot) 1077 { 1078 lock_block<mt_policy> lock(this); 1079 typename connections_list::iterator it = m_connected_slots.begin(); 1080 typename connections_list::iterator itEnd = m_connected_slots.end(); 1081 1082 while(it != itEnd) 1083 { 1084 typename connections_list::iterator itNext = it; 1085 ++itNext; 1086 1087 if((*it)->getdest() == pslot) 1088 { 1089 m_connected_slots.erase(it); 1090 // delete *it; 1091 } 1092 1093 it = itNext; 1094 } 1095 } 1096 1097 protected: 1098 connections_list m_connected_slots; 1099 1099 }; 1100 1100 … … 1103 1103 class _signal_base8 : public _signal_base<mt_policy> 1104 1104 { 1105 public: 1106 typedef std::list<_connection_base8<arg1_type, arg2_type, arg3_type, 1107 arg4_type, arg5_type, arg6_type, arg7_type, arg8_type, mt_policy> *> 1108 connections_list; 1109 1110 _signal_base8() 1111 { 1112 ; 1113 } 1114 1115 _signal_base8(const _signal_base8<arg1_type, arg2_type, arg3_type, arg4_type, 1116 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>& s) 1117 : _signal_base<mt_policy>(s) 1118 { 1119 lock_block<mt_policy> lock(this); 1120 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 1121 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 1122 1123 while(it != itEnd) 1124 { 1125 (*it)->getdest()->signal_connect(this); 1126 m_connected_slots.push_back((*it)->clone()); 1127 1128 ++it; 1129 } 1130 } 1131 1132 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 1133 { 1134 lock_block<mt_policy> lock(this); 1135 typename connections_list::iterator it = m_connected_slots.begin(); 1136 typename connections_list::iterator itEnd = m_connected_slots.end(); 1137 1138 while(it != itEnd) 1139 { 1140 if((*it)->getdest() == oldtarget) 1141 { 1142 m_connected_slots.push_back((*it)->duplicate(newtarget)); 1143 } 1144 1145 ++it; 1146 } 1147 } 1148 1149 ~_signal_base8() 1150 { 1151 disconnect_all(); 1152 } 1153 1154 void disconnect_all() 1155 { 1156 lock_block<mt_policy> lock(this); 1157 typename connections_list::const_iterator it = m_connected_slots.begin(); 1158 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 1159 1160 while(it != itEnd) 1161 { 1162 (*it)->getdest()->signal_disconnect(this); 1105 public: 1106 typedef std::list<_connection_base8<arg1_type, arg2_type, arg3_type, 1107 arg4_type, arg5_type, arg6_type, arg7_type, arg8_type, mt_policy> *> 1108 connections_list; 1109 1110 _signal_base8() 1111 { 1112 ; 1113 } 1114 1115 _signal_base8(const _signal_base8<arg1_type, arg2_type, arg3_type, arg4_type, 1116 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>& s) 1117 : _signal_base<mt_policy>(s) 1118 { 1119 lock_block<mt_policy> lock(this); 1120 typename connections_list::const_iterator it = s.m_connected_slots.begin(); 1121 typename connections_list::const_iterator itEnd = s.m_connected_slots.end(); 1122 1123 while(it != itEnd) 1124 { 1125 (*it)->getdest()->signal_connect(this); 1126 m_connected_slots.push_back((*it)->clone()); 1127 1128 ++it; 1129 } 1130 } 1131 1132 void slot_duplicate(const has_slots<mt_policy>* oldtarget, has_slots<mt_policy>* newtarget) 1133 { 1134 lock_block<mt_policy> lock(this); 1135 typename connections_list::iterator it = m_connected_slots.begin(); 1136 typename connections_list::iterator itEnd = m_connected_slots.end(); 1137 1138 while(it != itEnd) 1139 { 1140 if((*it)->getdest() == oldtarget) 1141 { 1142 m_connected_slots.push_back((*it)->duplicate(newtarget)); 1143 } 1144 1145 ++it; 1146 } 1147 } 1148 1149 ~_signal_base8() 1150 { 1151 disconnect_all(); 1152 } 1153 1154 void disconnect_all() 1155 { 1156 lock_block<mt_policy> lock(this); 1157 typename connections_list::const_iterator it = m_connected_slots.begin(); 1158 typename connections_list::const_iterator itEnd = m_connected_slots.end(); 1159 1160 while(it != itEnd) 1161 { 1162 (*it)->getdest()->signal_disconnect(this); 1163 delete *it; 1164 1165 ++it; 1166 } 1167 1168 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 1169 } 1170 1171 void disconnect(has_slots<mt_policy>* pclass) 1172 { 1173 lock_block<mt_policy> lock(this); 1174 typename connections_list::iterator it = m_connected_slots.begin(); 1175 typename connections_list::iterator itEnd = m_connected_slots.end(); 1176 1177 while(it != itEnd) 1178 { 1179 if((*it)->getdest() == pclass) 1180 { 1163 1181 delete *it; 1164 1165 ++it; 1166 } 1167 1168 m_connected_slots.erase(m_connected_slots.begin(), m_connected_slots.end()); 1169 } 1170 1171 void disconnect(has_slots<mt_policy>* pclass) 1172 { 1173 lock_block<mt_policy> lock(this); 1174 typename connections_list::iterator it = m_connected_slots.begin(); 1175 typename connections_list::iterator itEnd = m_connected_slots.end(); 1176 1177 while(it != itEnd) 1178 { 1179 if((*it)->getdest() == pclass) 1180 { 1181 delete *it; 1182 m_connected_slots.erase(it); 1183 pclass->signal_disconnect(this); 1184 return; 1185 } 1186 1187 ++it; 1188 } 1189 } 1190 1191 void slot_disconnect(has_slots<mt_policy>* pslot) 1192 { 1193 lock_block<mt_policy> lock(this); 1194 typename connections_list::iterator it = m_connected_slots.begin(); 1195 typename connections_list::iterator itEnd = m_connected_slots.end(); 1196 1197 while(it != itEnd) 1198 { 1199 typename connections_list::iterator itNext = it; 1200 ++itNext; 1201 1202 if((*it)->getdest() == pslot) 1203 { 1204 m_connected_slots.erase(it); 1205 // delete *it; 1206 } 1207 1208 it = itNext; 1209 } 1210 } 1211 1212 protected: 1213 connections_list m_connected_slots; 1182 m_connected_slots.erase(it); 1183 pclass->signal_disconnect(this); 1184 return; 1185 } 1186 1187 ++it; 1188 } 1189 } 1190 1191 void slot_disconnect(has_slots<mt_policy>* pslot) 1192 { 1193 lock_block<mt_policy> lock(this); 1194 typename connections_list::iterator it = m_connected_slots.begin(); 1195 typename connections_list::iterator itEnd = m_connected_slots.end(); 1196 1197 while(it != itEnd) 1198 { 1199 typename connections_list::iterator itNext = it; 1200 ++itNext; 1201 1202 if((*it)->getdest() == pslot) 1203 { 1204 m_connected_slots.erase(it); 1205 // delete *it; 1206 } 1207 1208 it = itNext; 1209 } 1210 } 1211 1212 protected: 1213 connections_list m_connected_slots; 1214 1214 }; 1215 1215 … … 1218 1218 class _connection0 : public _connection_base0<mt_policy> 1219 1219 { 1220 public:1221 _connection0()1222 {1223 pobject = NULL;1224 pmemfun = NULL;1225 }1226 1227 _connection0(dest_type* pobject, void (dest_type::*pmemfun)())1228 {1229 m_pobject = pobject;1230 m_pmemfun = pmemfun;1231 }1232 1233 virtual _connection_base0<mt_policy>* clone()1234 {1235 return new _connection0<dest_type, mt_policy>(*this);1236 }1237 1238 virtual _connection_base0<mt_policy>* duplicate(has_slots<mt_policy>* pnewdest)1239 {1240 return new _connection0<dest_type, mt_policy>((dest_type *)pnewdest, m_pmemfun);1241 }1242 1243 virtual void emit()1244 {1245 (m_pobject->*m_pmemfun)();1246 }1247 1248 virtual has_slots<mt_policy>* getdest() const1249 {1250 return m_pobject;1251 }1252 1253 private:1254 dest_type* m_pobject;1255 void (dest_type::* m_pmemfun)();1220 public: 1221 _connection0() 1222 { 1223 m_pobject = NULL; 1224 m_pmemfun = NULL; 1225 } 1226 1227 _connection0(dest_type* pobject, void (dest_type::*pmemfun)()) 1228 { 1229 m_pobject = pobject; 1230 m_pmemfun = pmemfun; 1231 } 1232 1233 virtual _connection_base0<mt_policy>* clone() 1234 { 1235 return new _connection0<dest_type, mt_policy>(*this); 1236 } 1237 1238 virtual _connection_base0<mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) 1239 { 1240 return new _connection0<dest_type, mt_policy>((dest_type *)pnewdest, m_pmemfun); 1241 } 1242 1243 virtual void emit() 1244 { 1245 (m_pobject->*m_pmemfun)(); 1246 } 1247 1248 virtual has_slots<mt_policy>* getdest() const 1249 { 1250 return m_pobject; 1251 } 1252 1253 private: 1254 dest_type* m_pobject; 1255 void (dest_type::* m_pmemfun)(); 1256 1256 }; 1257 1257 … … 1259 1259 class _connection1 : public _connection_base1<arg1_type, mt_policy> 1260 1260 { 1261 public:1262 _connection1()1263 {1264 pobject = NULL;1265 pmemfun = NULL;1266 }1267 1268 _connection1(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type))1269 {1270 m_pobject = pobject;1271 m_pmemfun = pmemfun;1272 }1273 1274 virtual _connection_base1<arg1_type, mt_policy>* clone()1275 {1276 return new _connection1<dest_type, arg1_type, mt_policy>(*this);1277 }1278 1279 virtual _connection_base1<arg1_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest)1280 {1281 return new _connection1<dest_type, arg1_type, mt_policy>((dest_type *)pnewdest, m_pmemfun);1282 }1283 1284 virtual void emit(arg1_type a1)1285 {1286 (m_pobject->*m_pmemfun)(a1);1287 }1288 1289 virtual has_slots<mt_policy>* getdest() const1290 {1291 return m_pobject;1292 }1293 1294 private:1295 dest_type* m_pobject;1296 void (dest_type::* m_pmemfun)(arg1_type);1261 public: 1262 _connection1() 1263 { 1264 m_pobject = NULL; 1265 m_pmemfun = NULL; 1266 } 1267 1268 _connection1(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type)) 1269 { 1270 m_pobject = pobject; 1271 m_pmemfun = pmemfun; 1272 } 1273 1274 virtual _connection_base1<arg1_type, mt_policy>* clone() 1275 { 1276 return new _connection1<dest_type, arg1_type, mt_policy>(*this); 1277 } 1278 1279 virtual _connection_base1<arg1_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) 1280 { 1281 return new _connection1<dest_type, arg1_type, mt_policy>((dest_type *)pnewdest, m_pmemfun); 1282 } 1283 1284 virtual void emit(arg1_type a1) 1285 { 1286 (m_pobject->*m_pmemfun)(a1); 1287 } 1288 1289 virtual has_slots<mt_policy>* getdest() const 1290 { 1291 return m_pobject; 1292 } 1293 1294 private: 1295 dest_type* m_pobject; 1296 void (dest_type::* m_pmemfun)(arg1_type); 1297 1297 }; 1298 1298 … … 1300 1300 class _connection2 : public _connection_base2<arg1_type, arg2_type, mt_policy> 1301 1301 { 1302 public:1303 _connection2()1304 {1305 pobject = NULL;1306 pmemfun = NULL;1307 }1308 1309 _connection2(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type,1310 arg2_type))1311 {1312 m_pobject = pobject;1313 m_pmemfun = pmemfun;1314 }1315 1316 virtual _connection_base2<arg1_type, arg2_type, mt_policy>* clone()1317 {1318 return new _connection2<dest_type, arg1_type, arg2_type, mt_policy>(*this);1319 }1320 1321 virtual _connection_base2<arg1_type, arg2_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest)1322 {1323 return new _connection2<dest_type, arg1_type, arg2_type, mt_policy>((dest_type *)pnewdest, m_pmemfun);1324 }1325 1326 virtual void emit(arg1_type a1, arg2_type a2)1327 {1328 (m_pobject->*m_pmemfun)(a1, a2);1329 }1330 1331 virtual has_slots<mt_policy>* getdest() const1332 {1333 return m_pobject;1334 }1335 1336 private:1337 dest_type* m_pobject;1338 void (dest_type::* m_pmemfun)(arg1_type, arg2_type);1302 public: 1303 _connection2() 1304 { 1305 m_pobject = NULL; 1306 m_pmemfun = NULL; 1307 } 1308 1309 _connection2(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type, 1310 arg2_type)) 1311 { 1312 m_pobject = pobject; 1313 m_pmemfun = pmemfun; 1314 } 1315 1316 virtual _connection_base2<arg1_type, arg2_type, mt_policy>* clone() 1317 { 1318 return new _connection2<dest_type, arg1_type, arg2_type, mt_policy>(*this); 1319 } 1320 1321 virtual _connection_base2<arg1_type, arg2_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) 1322 { 1323 return new _connection2<dest_type, arg1_type, arg2_type, mt_policy>((dest_type *)pnewdest, m_pmemfun); 1324 } 1325 1326 virtual void emit(arg1_type a1, arg2_type a2) 1327 { 1328 (m_pobject->*m_pmemfun)(a1, a2); 1329 } 1330 1331 virtual has_slots<mt_policy>* getdest() const 1332 { 1333 return m_pobject; 1334 } 1335 1336 private: 1337 dest_type* m_pobject; 1338 void (dest_type::* m_pmemfun)(arg1_type, arg2_type); 1339 1339 }; 1340 1340 … … 1342 1342 class _connection3 : public _connection_base3<arg1_type, arg2_type, arg3_type, mt_policy> 1343 1343 { 1344 public:1345 _connection3()1346 {1347 pobject = NULL;1348 pmemfun = NULL;1349 }1350 1351 _connection3(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type,1352 arg2_type, arg3_type))1353 {1354 m_pobject = pobject;1355 m_pmemfun = pmemfun;1356 }1357 1358 virtual _connection_base3<arg1_type, arg2_type, arg3_type, mt_policy>* clone()1359 {1360 return new _connection3<dest_type, arg1_type, arg2_type, arg3_type, mt_policy>(*this);1361 }1362 1363 virtual _connection_base3<arg1_type, arg2_type, arg3_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest)1364 {1365 return new _connection3<dest_type, arg1_type, arg2_type, arg3_type, mt_policy>((dest_type *)pnewdest, m_pmemfun);1366 }1367 1368 virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3)1369 {1370 (m_pobject->*m_pmemfun)(a1, a2, a3);1371 }1372 1373 virtual has_slots<mt_policy>* getdest() const1374 {1375 return m_pobject;1376 }1377 1378 private:1379 dest_type* m_pobject;1380 void (dest_type::* m_pmemfun)(arg1_type, arg2_type, arg3_type);1344 public: 1345 _connection3() 1346 { 1347 m_pobject = NULL; 1348 m_pmemfun = NULL; 1349 } 1350 1351 _connection3(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type, 1352 arg2_type, arg3_type)) 1353 { 1354 m_pobject = pobject; 1355 m_pmemfun = pmemfun; 1356 } 1357 1358 virtual _connection_base3<arg1_type, arg2_type, arg3_type, mt_policy>* clone() 1359 { 1360 return new _connection3<dest_type, arg1_type, arg2_type, arg3_type, mt_policy>(*this); 1361 } 1362 1363 virtual _connection_base3<arg1_type, arg2_type, arg3_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) 1364 { 1365 return new _connection3<dest_type, arg1_type, arg2_type, arg3_type, mt_policy>((dest_type *)pnewdest, m_pmemfun); 1366 } 1367 1368 virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3) 1369 { 1370 (m_pobject->*m_pmemfun)(a1, a2, a3); 1371 } 1372 1373 virtual has_slots<mt_policy>* getdest() const 1374 { 1375 return m_pobject; 1376 } 1377 1378 private: 1379 dest_type* m_pobject; 1380 void (dest_type::* m_pmemfun)(arg1_type, arg2_type, arg3_type); 1381 1381 }; 1382 1382 … … 1386 1386 arg3_type, arg4_type, mt_policy> 1387 1387 { 1388 public:1389 _connection4()1390 {1391 pobject = NULL;1392 pmemfun = NULL;1393 }1394 1395 _connection4(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type,1396 arg2_type, arg3_type, arg4_type))1397 {1398 m_pobject = pobject;1399 m_pmemfun = pmemfun;1400 }1401 1402 virtual _connection_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>* clone()1403 {1404 return new _connection4<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>(*this);1405 }1406 1407 virtual _connection_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest)1408 {1409 return new _connection4<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>((dest_type *)pnewdest, m_pmemfun);1410 }1411 1412 virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3,1413 arg4_type a4)1414 {1415 (m_pobject->*m_pmemfun)(a1, a2, a3, a4);1416 }1417 1418 virtual has_slots<mt_policy>* getdest() const1419 {1420 return m_pobject;1421 }1422 1423 private:1424 dest_type* m_pobject;1425 void (dest_type::* m_pmemfun)(arg1_type, arg2_type, arg3_type,1426 arg4_type);1388 public: 1389 _connection4() 1390 { 1391 m_pobject = NULL; 1392 m_pmemfun = NULL; 1393 } 1394 1395 _connection4(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type, 1396 arg2_type, arg3_type, arg4_type)) 1397 { 1398 m_pobject = pobject; 1399 m_pmemfun = pmemfun; 1400 } 1401 1402 virtual _connection_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>* clone() 1403 { 1404 return new _connection4<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>(*this); 1405 } 1406 1407 virtual _connection_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) 1408 { 1409 return new _connection4<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>((dest_type *)pnewdest, m_pmemfun); 1410 } 1411 1412 virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3, 1413 arg4_type a4) 1414 { 1415 (m_pobject->*m_pmemfun)(a1, a2, a3, a4); 1416 } 1417 1418 virtual has_slots<mt_policy>* getdest() const 1419 { 1420 return m_pobject; 1421 } 1422 1423 private: 1424 dest_type* m_pobject; 1425 void (dest_type::* m_pmemfun)(arg1_type, arg2_type, arg3_type, 1426 arg4_type); 1427 1427 }; 1428 1428 … … 1432 1432 arg3_type, arg4_type, arg5_type, mt_policy> 1433 1433 { 1434 public:1435 _connection5()1436 {1437 pobject = NULL;1438 pmemfun = NULL;1439 }1440 1441 _connection5(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type,1442 arg2_type, arg3_type, arg4_type, arg5_type))1443 {1444 m_pobject = pobject;1445 m_pmemfun = pmemfun;1446 }1447 1448 virtual _connection_base5<arg1_type, arg2_type, arg3_type, arg4_type,1449 arg5_type, mt_policy>* clone()1450 {1451 return new _connection5<dest_type, arg1_type, arg2_type, arg3_type, arg4_type,1452 arg5_type, mt_policy>(*this);1453 }1454 1455 virtual _connection_base5<arg1_type, arg2_type, arg3_type, arg4_type,1456 arg5_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest)1457 {1458 return new _connection5<dest_type, arg1_type, arg2_type, arg3_type, arg4_type,1459 arg5_type, mt_policy>((dest_type *)pnewdest, m_pmemfun);1460 }1461 1462 virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,1463 arg5_type a5)1464 {1465 (m_pobject->*m_pmemfun)(a1, a2, a3, a4, a5);1466 }1467 1468 virtual has_slots<mt_policy>* getdest() const1469 {1470 return m_pobject;1471 }1472 1473 private:1474 dest_type* m_pobject;1475 void (dest_type::* m_pmemfun)(arg1_type, arg2_type, arg3_type, arg4_type,1476 arg5_type);1434 public: 1435 _connection5() 1436 { 1437 m_pobject = NULL; 1438 m_pmemfun = NULL; 1439 } 1440 1441 _connection5(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type, 1442 arg2_type, arg3_type, arg4_type, arg5_type)) 1443 { 1444 m_pobject = pobject; 1445 m_pmemfun = pmemfun; 1446 } 1447 1448 virtual _connection_base5<arg1_type, arg2_type, arg3_type, arg4_type, 1449 arg5_type, mt_policy>* clone() 1450 { 1451 return new _connection5<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, 1452 arg5_type, mt_policy>(*this); 1453 } 1454 1455 virtual _connection_base5<arg1_type, arg2_type, arg3_type, arg4_type, 1456 arg5_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) 1457 { 1458 return new _connection5<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, 1459 arg5_type, mt_policy>((dest_type *)pnewdest, m_pmemfun); 1460 } 1461 1462 virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, 1463 arg5_type a5) 1464 { 1465 (m_pobject->*m_pmemfun)(a1, a2, a3, a4, a5); 1466 } 1467 1468 virtual has_slots<mt_policy>* getdest() const 1469 { 1470 return m_pobject; 1471 } 1472 1473 private: 1474 dest_type* m_pobject; 1475 void (dest_type::* m_pmemfun)(arg1_type, arg2_type, arg3_type, arg4_type, 1476 arg5_type); 1477 1477 }; 1478 1478 … … 1482 1482 arg3_type, arg4_type, arg5_type, arg6_type, mt_policy> 1483 1483 { 1484 public:1485 _connection6()1486 {1487 pobject = NULL;1488 pmemfun = NULL;1489 }1490 1491 _connection6(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type,1492 arg2_type, arg3_type, arg4_type, arg5_type, arg6_type))1493 {1494 m_pobject = pobject;1495 m_pmemfun = pmemfun;1496 }1497 1498 virtual _connection_base6<arg1_type, arg2_type, arg3_type, arg4_type,1499 arg5_type, arg6_type, mt_policy>* clone()1500 {1501 return new _connection6<dest_type, arg1_type, arg2_type, arg3_type, arg4_type,1502 arg5_type, arg6_type, mt_policy>(*this);1503 }1504 1505 virtual _connection_base6<arg1_type, arg2_type, arg3_type, arg4_type,1506 arg5_type, arg6_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest)1507 {1508 return new _connection6<dest_type, arg1_type, arg2_type, arg3_type, arg4_type,1509 arg5_type, arg6_type, mt_policy>((dest_type *)pnewdest, m_pmemfun);1510 }1511 1512 virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,1513 arg5_type a5, arg6_type a6)1514 {1515 (m_pobject->*m_pmemfun)(a1, a2, a3, a4, a5, a6);1516 }1517 1518 virtual has_slots<mt_policy>* getdest() const1519 {1520 return m_pobject;1521 }1522 1523 private:1524 dest_type* m_pobject;1525 void (dest_type::* m_pmemfun)(arg1_type, arg2_type, arg3_type, arg4_type,1526 arg5_type, arg6_type);1484 public: 1485 _connection6() 1486 { 1487 m_pobject = NULL; 1488 m_pmemfun = NULL; 1489 } 1490 1491 _connection6(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type, 1492 arg2_type, arg3_type, arg4_type, arg5_type, arg6_type)) 1493 { 1494 m_pobject = pobject; 1495 m_pmemfun = pmemfun; 1496 } 1497 1498 virtual _connection_base6<arg1_type, arg2_type, arg3_type, arg4_type, 1499 arg5_type, arg6_type, mt_policy>* clone() 1500 { 1501 return new _connection6<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, 1502 arg5_type, arg6_type, mt_policy>(*this); 1503 } 1504 1505 virtual _connection_base6<arg1_type, arg2_type, arg3_type, arg4_type, 1506 arg5_type, arg6_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) 1507 { 1508 return new _connection6<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, 1509 arg5_type, arg6_type, mt_policy>((dest_type *)pnewdest, m_pmemfun); 1510 } 1511 1512 virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, 1513 arg5_type a5, arg6_type a6) 1514 { 1515 (m_pobject->*m_pmemfun)(a1, a2, a3, a4, a5, a6); 1516 } 1517 1518 virtual has_slots<mt_policy>* getdest() const 1519 { 1520 return m_pobject; 1521 } 1522 1523 private: 1524 dest_type* m_pobject; 1525 void (dest_type::* m_pmemfun)(arg1_type, arg2_type, arg3_type, arg4_type, 1526 arg5_type, arg6_type); 1527 1527 }; 1528 1528 … … 1532 1532 arg3_type, arg4_type, arg5_type, arg6_type, arg7_type, mt_policy> 1533 1533 { 1534 public:1535 _connection7()1536 {1537 pobject = NULL;1538 pmemfun = NULL;1539 }1540 1541 _connection7(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type,1542 arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, arg7_type))1543 {1544 m_pobject = pobject;1545 m_pmemfun = pmemfun;1546 }1547 1548 virtual _connection_base7<arg1_type, arg2_type, arg3_type, arg4_type,1549 arg5_type, arg6_type, arg7_type, mt_policy>* clone()1550 {1551 return new _connection7<dest_type, arg1_type, arg2_type, arg3_type, arg4_type,1552 arg5_type, arg6_type, arg7_type, mt_policy>(*this);1553 }1554 1555 virtual _connection_base7<arg1_type, arg2_type, arg3_type, arg4_type,1556 arg5_type, arg6_type, arg7_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest)1557 {1558 return new _connection7<dest_type, arg1_type, arg2_type, arg3_type, arg4_type,1559 arg5_type, arg6_type, arg7_type, mt_policy>((dest_type *)pnewdest, m_pmemfun);1560 }1561 1562 virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,1563 arg5_type a5, arg6_type a6, arg7_type a7)1564 {1565 (m_pobject->*m_pmemfun)(a1, a2, a3, a4, a5, a6, a7);1566 }1567 1568 virtual has_slots<mt_policy>* getdest() const1569 {1570 return m_pobject;1571 }1572 1573 private:1574 dest_type* m_pobject;1575 void (dest_type::* m_pmemfun)(arg1_type, arg2_type, arg3_type, arg4_type,1576 arg5_type, arg6_type, arg7_type);1534 public: 1535 _connection7() 1536 { 1537 m_pobject = NULL; 1538 m_pmemfun = NULL; 1539 } 1540 1541 _connection7(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type, 1542 arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, arg7_type)) 1543 { 1544 m_pobject = pobject; 1545 m_pmemfun = pmemfun; 1546 } 1547 1548 virtual _connection_base7<arg1_type, arg2_type, arg3_type, arg4_type, 1549 arg5_type, arg6_type, arg7_type, mt_policy>* clone() 1550 { 1551 return new _connection7<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, 1552 arg5_type, arg6_type, arg7_type, mt_policy>(*this); 1553 } 1554 1555 virtual _connection_base7<arg1_type, arg2_type, arg3_type, arg4_type, 1556 arg5_type, arg6_type, arg7_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) 1557 { 1558 return new _connection7<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, 1559 arg5_type, arg6_type, arg7_type, mt_policy>((dest_type *)pnewdest, m_pmemfun); 1560 } 1561 1562 virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, 1563 arg5_type a5, arg6_type a6, arg7_type a7) 1564 { 1565 (m_pobject->*m_pmemfun)(a1, a2, a3, a4, a5, a6, a7); 1566 } 1567 1568 virtual has_slots<mt_policy>* getdest() const 1569 { 1570 return m_pobject; 1571 } 1572 1573 private: 1574 dest_type* m_pobject; 1575 void (dest_type::* m_pmemfun)(arg1_type, arg2_type, arg3_type, arg4_type, 1576 arg5_type, arg6_type, arg7_type); 1577 1577 }; 1578 1578 … … 1583 1583 arg3_type, arg4_type, arg5_type, arg6_type, arg7_type, arg8_type, mt_policy> 1584 1584 { 1585 public:1586 _connection8()1587 {1588 pobject = NULL;1589 pmemfun = NULL;1590 }1591 1592 _connection8(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type,1593 arg2_type, arg3_type, arg4_type, arg5_type, arg6_type,1594 arg7_type, arg8_type))1595 {1596 m_pobject = pobject;1597 m_pmemfun = pmemfun;1598 }1599 1600 virtual _connection_base8<arg1_type, arg2_type, arg3_type, arg4_type,1601 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>* clone()1602 {1603 return new _connection8<dest_type, arg1_type, arg2_type, arg3_type, arg4_type,1604 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>(*this);1605 }1606 1607 virtual _connection_base8<arg1_type, arg2_type, arg3_type, arg4_type,1608 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest)1609 {1610 return new _connection8<dest_type, arg1_type, arg2_type, arg3_type, arg4_type,1611 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>((dest_type *)pnewdest, m_pmemfun);1612 }1613 1614 virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,1615 arg5_type a5, arg6_type a6, arg7_type a7, arg8_type a8)1616 {1617 (m_pobject->*m_pmemfun)(a1, a2, a3, a4, a5, a6, a7, a8);1618 }1619 1620 virtual has_slots<mt_policy>* getdest() const1621 {1622 return m_pobject;1623 }1624 1625 private:1626 dest_type* m_pobject;1627 void (dest_type::* m_pmemfun)(arg1_type, arg2_type, arg3_type, arg4_type,1628 arg5_type, arg6_type, arg7_type, arg8_type);1585 public: 1586 _connection8() 1587 { 1588 m_pobject = NULL; 1589 m_pmemfun = NULL; 1590 } 1591 1592 _connection8(dest_type* pobject, void (dest_type::*pmemfun)(arg1_type, 1593 arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, 1594 arg7_type, arg8_type)) 1595 { 1596 m_pobject = pobject; 1597 m_pmemfun = pmemfun; 1598 } 1599 1600 virtual _connection_base8<arg1_type, arg2_type, arg3_type, arg4_type, 1601 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>* clone() 1602 { 1603 return new _connection8<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, 1604 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>(*this); 1605 } 1606 1607 virtual _connection_base8<arg1_type, arg2_type, arg3_type, arg4_type, 1608 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>* duplicate(has_slots<mt_policy>* pnewdest) 1609 { 1610 return new _connection8<dest_type, arg1_type, arg2_type, arg3_type, arg4_type, 1611 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>((dest_type *)pnewdest, m_pmemfun); 1612 } 1613 1614 virtual void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, 1615 arg5_type a5, arg6_type a6, arg7_type a7, arg8_type a8) 1616 { 1617 (m_pobject->*m_pmemfun)(a1, a2, a3, a4, a5, a6, a7, a8); 1618 } 1619 1620 virtual has_slots<mt_policy>* getdest() const 1621 { 1622 return m_pobject; 1623 } 1624 1625 private: 1626 dest_type* m_pobject; 1627 void (dest_type::* m_pmemfun)(arg1_type, arg2_type, arg3_type, arg4_type, 1628 arg5_type, arg6_type, arg7_type, arg8_type); 1629 1629 }; 1630 1630 … … 1632 1632 class signal0 : public _signal_base0<mt_policy> 1633 1633 { 1634 public:1635 signal0()1636 {1637 ;1638 }1639 1640 signal0(const signal0<mt_policy>& s)1641 : _signal_base0<mt_policy>(s)1642 {1643 ;1644 }1645 1646 template<class desttype>1647 void connect(desttype* pclass, void (desttype::*pmemfun)())1648 {1649 lock_block<mt_policy> lock(this);1650 _connection0<desttype, mt_policy>* conn =1651 new _connection0<desttype, mt_policy>(pclass, pmemfun);1652 m_connected_slots.push_back(conn);1653 pclass->signal_connect(this);1654 }1655 1656 void emit()1657 {1658 lock_block<mt_policy> lock(this);1659 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();1660 typename connections_list::const_iterator itEnd =m_connected_slots.end();1661 1662 while(it != itEnd)1663 {1664 itNext = it;1665 ++itNext;1666 1667 (*it)->emit();1668 1669 it = itNext;1670 }1671 }1672 1673 void operator()()1674 {1675 lock_block<mt_policy> lock(this);1676 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();1677 typename connections_list::const_iterator itEnd =m_connected_slots.end();1678 1679 while(it != itEnd)1680 {1681 itNext = it;1682 ++itNext;1683 1684 (*it)->emit();1685 1686 it = itNext;1687 }1688 }1634 public: 1635 signal0() 1636 { 1637 ; 1638 } 1639 1640 signal0(const signal0<mt_policy>& s) 1641 : _signal_base0<mt_policy>(s) 1642 { 1643 ; 1644 } 1645 1646 template<class desttype> 1647 void connect(desttype* pclass, void (desttype::*pmemfun)()) 1648 { 1649 lock_block<mt_policy> lock(this); 1650 _connection0<desttype, mt_policy>* conn = 1651 new _connection0<desttype, mt_policy>(pclass, pmemfun); 1652 this->m_connected_slots.push_back(conn); 1653 pclass->signal_connect(this); 1654 } 1655 1656 void emit() 1657 { 1658 lock_block<mt_policy> lock(this); 1659 typename _signal_base0<mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 1660 typename _signal_base0<mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 1661 1662 while(it != itEnd) 1663 { 1664 itNext = it; 1665 ++itNext; 1666 1667 (*it)->emit(); 1668 1669 it = itNext; 1670 } 1671 } 1672 1673 void operator()() 1674 { 1675 lock_block<mt_policy> lock(this); 1676 typename _signal_base0<mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 1677 typename _signal_base0<mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 1678 1679 while(it != itEnd) 1680 { 1681 itNext = it; 1682 ++itNext; 1683 1684 (*it)->emit(); 1685 1686 it = itNext; 1687 } 1688 } 1689 1689 }; 1690 1690 … … 1692 1692 class signal1 : public _signal_base1<arg1_type, mt_policy> 1693 1693 { 1694 public:1695 signal1()1696 {1697 ;1698 }1699 1700 signal1(const signal1<arg1_type, mt_policy>& s)1701 : _signal_base1<arg1_type, mt_policy>(s)1702 {1703 ;1704 }1705 1706 template<class desttype>1707 void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type))1708 {1709 lock_block<mt_policy> lock(this);1710 _connection1<desttype, arg1_type, mt_policy>* conn =1711 new _connection1<desttype, arg1_type, mt_policy>(pclass, pmemfun);1712 m_connected_slots.push_back(conn);1713 pclass->signal_connect(this);1714 }1715 1716 void emit(arg1_type a1)1717 {1718 lock_block<mt_policy> lock(this);1719 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();1720 typename connections_list::const_iterator itEnd =m_connected_slots.end();1721 1722 while(it != itEnd)1723 {1724 itNext = it;1725 ++itNext;1726 1727 (*it)->emit(a1);1728 1729 it = itNext;1730 }1731 }1732 1733 void operator()(arg1_type a1)1734 {1735 lock_block<mt_policy> lock(this);1736 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();1737 typename connections_list::const_iterator itEnd =m_connected_slots.end();1738 1739 while(it != itEnd)1740 {1741 itNext = it;1742 ++itNext;1743 1744 (*it)->emit(a1);1745 1746 it = itNext;1747 }1748 }1694 public: 1695 signal1() 1696 { 1697 ; 1698 } 1699 1700 signal1(const signal1<arg1_type, mt_policy>& s) 1701 : _signal_base1<arg1_type, mt_policy>(s) 1702 { 1703 ; 1704 } 1705 1706 template<class desttype> 1707 void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type)) 1708 { 1709 lock_block<mt_policy> lock(this); 1710 _connection1<desttype, arg1_type, mt_policy>* conn = 1711 new _connection1<desttype, arg1_type, mt_policy>(pclass, pmemfun); 1712 this->m_connected_slots.push_back(conn); 1713 pclass->signal_connect(this); 1714 } 1715 1716 void emit(arg1_type a1) 1717 { 1718 lock_block<mt_policy> lock(this); 1719 typename _signal_base1<arg1_type, mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 1720 typename _signal_base1<arg1_type, mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 1721 1722 while(it != itEnd) 1723 { 1724 itNext = it; 1725 ++itNext; 1726 1727 (*it)->emit(a1); 1728 1729 it = itNext; 1730 } 1731 } 1732 1733 void operator()(arg1_type a1) 1734 { 1735 lock_block<mt_policy> lock(this); 1736 typename _signal_base1<arg1_type, mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 1737 typename _signal_base1<arg1_type, mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 1738 1739 while(it != itEnd) 1740 { 1741 itNext = it; 1742 ++itNext; 1743 1744 (*it)->emit(a1); 1745 1746 it = itNext; 1747 } 1748 } 1749 1749 }; 1750 1750 … … 1752 1752 class signal2 : public _signal_base2<arg1_type, arg2_type, mt_policy> 1753 1753 { 1754 public:1755 signal2()1756 {1757 ;1758 }1759 1760 signal2(const signal2<arg1_type, arg2_type, mt_policy>& s)1761 : _signal_base2<arg1_type, arg2_type, mt_policy>(s)1762 {1763 ;1764 }1765 1766 template<class desttype>1767 void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type,1768 arg2_type))1769 {1770 lock_block<mt_policy> lock(this);1771 _connection2<desttype, arg1_type, arg2_type, mt_policy>* conn = new1772 _connection2<desttype, arg1_type, arg2_type, mt_policy>(pclass, pmemfun);1773 m_connected_slots.push_back(conn);1774 pclass->signal_connect(this);1775 }1776 1777 void emit(arg1_type a1, arg2_type a2)1778 {1779 lock_block<mt_policy> lock(this);1780 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();1781 typename connections_list::const_iterator itEnd =m_connected_slots.end();1782 1783 while(it != itEnd)1784 {1785 itNext = it;1786 ++itNext;1787 1788 (*it)->emit(a1, a2);1789 1790 it = itNext;1791 }1792 }1793 1794 void operator()(arg1_type a1, arg2_type a2)1795 {1796 lock_block<mt_policy> lock(this);1797 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();1798 typename connections_list::const_iterator itEnd =m_connected_slots.end();1799 1800 while(it != itEnd)1801 {1802 itNext = it;1803 ++itNext;1804 1805 (*it)->emit(a1, a2);1806 1807 it = itNext;1808 }1809 }1754 public: 1755 signal2() 1756 { 1757 ; 1758 } 1759 1760 signal2(const signal2<arg1_type, arg2_type, mt_policy>& s) 1761 : _signal_base2<arg1_type, arg2_type, mt_policy>(s) 1762 { 1763 ; 1764 } 1765 1766 template<class desttype> 1767 void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type, 1768 arg2_type)) 1769 { 1770 lock_block<mt_policy> lock(this); 1771 _connection2<desttype, arg1_type, arg2_type, mt_policy>* conn = new 1772 _connection2<desttype, arg1_type, arg2_type, mt_policy>(pclass, pmemfun); 1773 this->m_connected_slots.push_back(conn); 1774 pclass->signal_connect(this); 1775 } 1776 1777 void emit(arg1_type a1, arg2_type a2) 1778 { 1779 lock_block<mt_policy> lock(this); 1780 typename _signal_base2<arg1_type, arg2_type, mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 1781 typename _signal_base2<arg1_type, arg2_type, mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 1782 1783 while(it != itEnd) 1784 { 1785 itNext = it; 1786 ++itNext; 1787 1788 (*it)->emit(a1, a2); 1789 1790 it = itNext; 1791 } 1792 } 1793 1794 void operator()(arg1_type a1, arg2_type a2) 1795 { 1796 lock_block<mt_policy> lock(this); 1797 typename _signal_base2<arg1_type, arg2_type, mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 1798 typename _signal_base2<arg1_type, arg2_type, mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 1799 1800 while(it != itEnd) 1801 { 1802 itNext = it; 1803 ++itNext; 1804 1805 (*it)->emit(a1, a2); 1806 1807 it = itNext; 1808 } 1809 } 1810 1810 }; 1811 1811 … … 1813 1813 class signal3 : public _signal_base3<arg1_type, arg2_type, arg3_type, mt_policy> 1814 1814 { 1815 public:1816 signal3()1817 {1818 ;1819 }1820 1821 signal3(const signal3<arg1_type, arg2_type, arg3_type, mt_policy>& s)1822 : _signal_base3<arg1_type, arg2_type, arg3_type, mt_policy>(s)1823 {1824 ;1825 }1826 1827 template<class desttype>1828 void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type,1829 arg2_type, arg3_type))1830 {1831 lock_block<mt_policy> lock(this);1832 _connection3<desttype, arg1_type, arg2_type, arg3_type, mt_policy>* conn =1833 new _connection3<desttype, arg1_type, arg2_type, arg3_type, mt_policy>(pclass,1834 pmemfun);1835 m_connected_slots.push_back(conn);1836 pclass->signal_connect(this);1837 }1838 1839 void emit(arg1_type a1, arg2_type a2, arg3_type a3)1840 {1841 lock_block<mt_policy> lock(this);1842 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();1843 typename connections_list::const_iterator itEnd =m_connected_slots.end();1844 1845 while(it != itEnd)1846 {1847 itNext = it;1848 ++itNext;1849 1850 (*it)->emit(a1, a2, a3);1851 1852 it = itNext;1853 }1854 }1855 1856 void operator()(arg1_type a1, arg2_type a2, arg3_type a3)1857 {1858 lock_block<mt_policy> lock(this);1859 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();1860 typename connections_list::const_iterator itEnd =m_connected_slots.end();1861 1862 while(it != itEnd)1863 {1864 itNext = it;1865 ++itNext;1866 1867 (*it)->emit(a1, a2, a3);1868 1869 it = itNext;1870 }1871 }1815 public: 1816 signal3() 1817 { 1818 ; 1819 } 1820 1821 signal3(const signal3<arg1_type, arg2_type, arg3_type, mt_policy>& s) 1822 : _signal_base3<arg1_type, arg2_type, arg3_type, mt_policy>(s) 1823 { 1824 ; 1825 } 1826 1827 template<class desttype> 1828 void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type, 1829 arg2_type, arg3_type)) 1830 { 1831 lock_block<mt_policy> lock(this); 1832 _connection3<desttype, arg1_type, arg2_type, arg3_type, mt_policy>* conn = 1833 new _connection3<desttype, arg1_type, arg2_type, arg3_type, mt_policy>(pclass, 1834 pmemfun); 1835 this->m_connected_slots.push_back(conn); 1836 pclass->signal_connect(this); 1837 } 1838 1839 void emit(arg1_type a1, arg2_type a2, arg3_type a3) 1840 { 1841 lock_block<mt_policy> lock(this); 1842 typename _signal_base3<arg1_type, arg2_type, arg3_type, mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 1843 typename _signal_base3<arg1_type, arg2_type, arg3_type, mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 1844 1845 while(it != itEnd) 1846 { 1847 itNext = it; 1848 ++itNext; 1849 1850 (*it)->emit(a1, a2, a3); 1851 1852 it = itNext; 1853 } 1854 } 1855 1856 void operator()(arg1_type a1, arg2_type a2, arg3_type a3) 1857 { 1858 lock_block<mt_policy> lock(this); 1859 typename _signal_base3<arg1_type, arg2_type, arg3_type, mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 1860 typename _signal_base3<arg1_type, arg2_type, arg3_type, mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 1861 1862 while(it != itEnd) 1863 { 1864 itNext = it; 1865 ++itNext; 1866 1867 (*it)->emit(a1, a2, a3); 1868 1869 it = itNext; 1870 } 1871 } 1872 1872 }; 1873 1873 … … 1876 1876 arg4_type, mt_policy> 1877 1877 { 1878 public:1879 signal4()1880 {1881 ;1882 }1883 1884 signal4(const signal4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>& s)1885 : _signal_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>(s)1886 {1887 ;1888 }1889 1890 template<class desttype>1891 void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type,1892 arg2_type, arg3_type, arg4_type))1893 {1894 lock_block<mt_policy> lock(this);1895 _connection4<desttype, arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>*1896 conn = new _connection4<desttype, arg1_type, arg2_type, arg3_type,1897 arg4_type, mt_policy>(pclass, pmemfun);1898 m_connected_slots.push_back(conn);1899 pclass->signal_connect(this);1900 }1901 1902 void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4)1903 {1904 lock_block<mt_policy> lock(this);1905 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();1906 typename connections_list::const_iterator itEnd =m_connected_slots.end();1907 1908 while(it != itEnd)1909 {1910 itNext = it;1911 ++itNext;1912 1913 (*it)->emit(a1, a2, a3, a4);1914 1915 it = itNext;1916 }1917 }1918 1919 void operator()(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4)1920 {1921 lock_block<mt_policy> lock(this);1922 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();1923 typename connections_list::const_iterator itEnd =m_connected_slots.end();1924 1925 while(it != itEnd)1926 {1927 itNext = it;1928 ++itNext;1929 1930 (*it)->emit(a1, a2, a3, a4);1931 1932 it = itNext;1933 }1934 }1878 public: 1879 signal4() 1880 { 1881 ; 1882 } 1883 1884 signal4(const signal4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>& s) 1885 : _signal_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>(s) 1886 { 1887 ; 1888 } 1889 1890 template<class desttype> 1891 void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type, 1892 arg2_type, arg3_type, arg4_type)) 1893 { 1894 lock_block<mt_policy> lock(this); 1895 _connection4<desttype, arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>* 1896 conn = new _connection4<desttype, arg1_type, arg2_type, arg3_type, 1897 arg4_type, mt_policy>(pclass, pmemfun); 1898 this->m_connected_slots.push_back(conn); 1899 pclass->signal_connect(this); 1900 } 1901 1902 void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4) 1903 { 1904 lock_block<mt_policy> lock(this); 1905 typename _signal_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 1906 typename _signal_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 1907 1908 while(it != itEnd) 1909 { 1910 itNext = it; 1911 ++itNext; 1912 1913 (*it)->emit(a1, a2, a3, a4); 1914 1915 it = itNext; 1916 } 1917 } 1918 1919 void operator()(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4) 1920 { 1921 lock_block<mt_policy> lock(this); 1922 typename _signal_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 1923 typename _signal_base4<arg1_type, arg2_type, arg3_type, arg4_type, mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 1924 1925 while(it != itEnd) 1926 { 1927 itNext = it; 1928 ++itNext; 1929 1930 (*it)->emit(a1, a2, a3, a4); 1931 1932 it = itNext; 1933 } 1934 } 1935 1935 }; 1936 1936 … … 1940 1940 arg4_type, arg5_type, mt_policy> 1941 1941 { 1942 public:1943 signal5()1944 {1945 ;1946 }1947 1948 signal5(const signal5<arg1_type, arg2_type, arg3_type, arg4_type,1949 arg5_type, mt_policy>& s)1950 : _signal_base5<arg1_type, arg2_type, arg3_type, arg4_type,1951 arg5_type, mt_policy>(s)1952 {1953 ;1954 }1955 1956 template<class desttype>1957 void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type,1958 arg2_type, arg3_type, arg4_type, arg5_type))1959 {1960 lock_block<mt_policy> lock(this);1961 _connection5<desttype, arg1_type, arg2_type, arg3_type, arg4_type,1962 arg5_type, mt_policy>* conn = new _connection5<desttype, arg1_type, arg2_type,1963 arg3_type, arg4_type, arg5_type, mt_policy>(pclass, pmemfun);1964 m_connected_slots.push_back(conn);1965 pclass->signal_connect(this);1966 }1967 1968 void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,1969 arg5_type a5)1970 {1971 lock_block<mt_policy> lock(this);1972 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();1973 typename connections_list::const_iterator itEnd =m_connected_slots.end();1974 1975 while(it != itEnd)1976 {1977 itNext = it;1978 ++itNext;1979 1980 (*it)->emit(a1, a2, a3, a4, a5);1981 1982 it = itNext;1983 }1984 }1985 1986 void operator()(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,1987 arg5_type a5)1988 {1989 lock_block<mt_policy> lock(this);1990 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();1991 typename connections_list::const_iterator itEnd =m_connected_slots.end();1992 1993 while(it != itEnd)1994 {1995 itNext = it;1996 ++itNext;1997 1998 (*it)->emit(a1, a2, a3, a4, a5);1999 2000 it = itNext;2001 }2002 }1942 public: 1943 signal5() 1944 { 1945 ; 1946 } 1947 1948 signal5(const signal5<arg1_type, arg2_type, arg3_type, arg4_type, 1949 arg5_type, mt_policy>& s) 1950 : _signal_base5<arg1_type, arg2_type, arg3_type, arg4_type, 1951 arg5_type, mt_policy>(s) 1952 { 1953 ; 1954 } 1955 1956 template<class desttype> 1957 void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type, 1958 arg2_type, arg3_type, arg4_type, arg5_type)) 1959 { 1960 lock_block<mt_policy> lock(this); 1961 _connection5<desttype, arg1_type, arg2_type, arg3_type, arg4_type, 1962 arg5_type, mt_policy>* conn = new _connection5<desttype, arg1_type, arg2_type, 1963 arg3_type, arg4_type, arg5_type, mt_policy>(pclass, pmemfun); 1964 this->m_connected_slots.push_back(conn); 1965 pclass->signal_connect(this); 1966 } 1967 1968 void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, 1969 arg5_type a5) 1970 { 1971 lock_block<mt_policy> lock(this); 1972 typename _signal_base5<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 1973 typename _signal_base5<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 1974 1975 while(it != itEnd) 1976 { 1977 itNext = it; 1978 ++itNext; 1979 1980 (*it)->emit(a1, a2, a3, a4, a5); 1981 1982 it = itNext; 1983 } 1984 } 1985 1986 void operator()(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, 1987 arg5_type a5) 1988 { 1989 lock_block<mt_policy> lock(this); 1990 typename _signal_base5<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 1991 typename _signal_base5<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 1992 1993 while(it != itEnd) 1994 { 1995 itNext = it; 1996 ++itNext; 1997 1998 (*it)->emit(a1, a2, a3, a4, a5); 1999 2000 it = itNext; 2001 } 2002 } 2003 2003 }; 2004 2004 … … 2009 2009 arg4_type, arg5_type, arg6_type, mt_policy> 2010 2010 { 2011 public:2012 signal6()2013 {2014 ;2015 }2016 2017 signal6(const signal6<arg1_type, arg2_type, arg3_type, arg4_type,2018 arg5_type, arg6_type, mt_policy>& s)2019 : _signal_base6<arg1_type, arg2_type, arg3_type, arg4_type,2020 arg5_type, arg6_type, mt_policy>(s)2021 {2022 ;2023 }2024 2025 template<class desttype>2026 void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type,2027 arg2_type, arg3_type, arg4_type, arg5_type, arg6_type))2028 {2029 lock_block<mt_policy> lock(this);2030 _connection6<desttype, arg1_type, arg2_type, arg3_type, arg4_type,2031 arg5_type, arg6_type, mt_policy>* conn =2032 new _connection6<desttype, arg1_type, arg2_type, arg3_type,2033 arg4_type, arg5_type, arg6_type, mt_policy>(pclass, pmemfun);2034 m_connected_slots.push_back(conn);2035 pclass->signal_connect(this);2036 }2037 2038 void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,2039 arg5_type a5, arg6_type a6)2040 {2041 lock_block<mt_policy> lock(this);2042 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();2043 typename connections_list::const_iterator itEnd =m_connected_slots.end();2044 2045 while(it != itEnd)2046 {2047 itNext = it;2048 ++itNext;2049 2050 (*it)->emit(a1, a2, a3, a4, a5, a6);2051 2052 it = itNext;2053 }2054 }2055 2056 void operator()(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,2057 arg5_type a5, arg6_type a6)2058 {2059 lock_block<mt_policy> lock(this);2060 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();2061 typename connections_list::const_iterator itEnd =m_connected_slots.end();2062 2063 while(it != itEnd)2064 {2065 itNext = it;2066 ++itNext;2067 2068 (*it)->emit(a1, a2, a3, a4, a5, a6);2069 2070 it = itNext;2071 }2072 }2011 public: 2012 signal6() 2013 { 2014 ; 2015 } 2016 2017 signal6(const signal6<arg1_type, arg2_type, arg3_type, arg4_type, 2018 arg5_type, arg6_type, mt_policy>& s) 2019 : _signal_base6<arg1_type, arg2_type, arg3_type, arg4_type, 2020 arg5_type, arg6_type, mt_policy>(s) 2021 { 2022 ; 2023 } 2024 2025 template<class desttype> 2026 void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type, 2027 arg2_type, arg3_type, arg4_type, arg5_type, arg6_type)) 2028 { 2029 lock_block<mt_policy> lock(this); 2030 _connection6<desttype, arg1_type, arg2_type, arg3_type, arg4_type, 2031 arg5_type, arg6_type, mt_policy>* conn = 2032 new _connection6<desttype, arg1_type, arg2_type, arg3_type, 2033 arg4_type, arg5_type, arg6_type, mt_policy>(pclass, pmemfun); 2034 this->m_connected_slots.push_back(conn); 2035 pclass->signal_connect(this); 2036 } 2037 2038 void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, 2039 arg5_type a5, arg6_type a6) 2040 { 2041 lock_block<mt_policy> lock(this); 2042 typename _signal_base6<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 2043 typename _signal_base6<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 2044 2045 while(it != itEnd) 2046 { 2047 itNext = it; 2048 ++itNext; 2049 2050 (*it)->emit(a1, a2, a3, a4, a5, a6); 2051 2052 it = itNext; 2053 } 2054 } 2055 2056 void operator()(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, 2057 arg5_type a5, arg6_type a6) 2058 { 2059 lock_block<mt_policy> lock(this); 2060 typename _signal_base6<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 2061 typename _signal_base6<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 2062 2063 while(it != itEnd) 2064 { 2065 itNext = it; 2066 ++itNext; 2067 2068 (*it)->emit(a1, a2, a3, a4, a5, a6); 2069 2070 it = itNext; 2071 } 2072 } 2073 2073 }; 2074 2074 … … 2078 2078 arg4_type, arg5_type, arg6_type, arg7_type, mt_policy> 2079 2079 { 2080 public:2081 signal7()2082 {2083 ;2084 }2085 2086 signal7(const signal7<arg1_type, arg2_type, arg3_type, arg4_type,2087 arg5_type, arg6_type, arg7_type, mt_policy>& s)2088 : _signal_base7<arg1_type, arg2_type, arg3_type, arg4_type,2089 arg5_type, arg6_type, arg7_type, mt_policy>(s)2090 {2091 ;2092 }2093 2094 template<class desttype>2095 void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type,2096 arg2_type, arg3_type, arg4_type, arg5_type, arg6_type,2097 arg7_type))2098 {2099 lock_block<mt_policy> lock(this);2100 _connection7<desttype, arg1_type, arg2_type, arg3_type, arg4_type,2101 arg5_type, arg6_type, arg7_type, mt_policy>* conn =2102 new _connection7<desttype, arg1_type, arg2_type, arg3_type,2103 arg4_type, arg5_type, arg6_type, arg7_type, mt_policy>(pclass, pmemfun);2104 m_connected_slots.push_back(conn);2105 pclass->signal_connect(this);2106 }2107 2108 void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,2109 arg5_type a5, arg6_type a6, arg7_type a7)2110 {2111 lock_block<mt_policy> lock(this);2112 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();2113 typename connections_list::const_iterator itEnd =m_connected_slots.end();2114 2115 while(it != itEnd)2116 {2117 itNext = it;2118 ++itNext;2119 2120 (*it)->emit(a1, a2, a3, a4, a5, a6, a7);2121 2122 it = itNext;2123 }2124 }2125 2126 void operator()(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,2127 arg5_type a5, arg6_type a6, arg7_type a7)2128 {2129 lock_block<mt_policy> lock(this);2130 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();2131 typename connections_list::const_iterator itEnd =m_connected_slots.end();2132 2133 while(it != itEnd)2134 {2135 itNext = it;2136 ++itNext;2137 2138 (*it)->emit(a1, a2, a3, a4, a5, a6, a7);2139 2140 it = itNext;2141 }2142 }2080 public: 2081 signal7() 2082 { 2083 ; 2084 } 2085 2086 signal7(const signal7<arg1_type, arg2_type, arg3_type, arg4_type, 2087 arg5_type, arg6_type, arg7_type, mt_policy>& s) 2088 : _signal_base7<arg1_type, arg2_type, arg3_type, arg4_type, 2089 arg5_type, arg6_type, arg7_type, mt_policy>(s) 2090 { 2091 ; 2092 } 2093 2094 template<class desttype> 2095 void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type, 2096 arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, 2097 arg7_type)) 2098 { 2099 lock_block<mt_policy> lock(this); 2100 _connection7<desttype, arg1_type, arg2_type, arg3_type, arg4_type, 2101 arg5_type, arg6_type, arg7_type, mt_policy>* conn = 2102 new _connection7<desttype, arg1_type, arg2_type, arg3_type, 2103 arg4_type, arg5_type, arg6_type, arg7_type, mt_policy>(pclass, pmemfun); 2104 this->m_connected_slots.push_back(conn); 2105 pclass->signal_connect(this); 2106 } 2107 2108 void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, 2109 arg5_type a5, arg6_type a6, arg7_type a7) 2110 { 2111 lock_block<mt_policy> lock(this); 2112 typename _signal_base7<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, arg7_type, mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 2113 typename _signal_base7<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, arg7_type, mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 2114 2115 while(it != itEnd) 2116 { 2117 itNext = it; 2118 ++itNext; 2119 2120 (*it)->emit(a1, a2, a3, a4, a5, a6, a7); 2121 2122 it = itNext; 2123 } 2124 } 2125 2126 void operator()(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, 2127 arg5_type a5, arg6_type a6, arg7_type a7) 2128 { 2129 lock_block<mt_policy> lock(this); 2130 typename _signal_base7<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, arg7_type, mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 2131 typename _signal_base7<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, arg7_type, mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 2132 2133 while(it != itEnd) 2134 { 2135 itNext = it; 2136 ++itNext; 2137 2138 (*it)->emit(a1, a2, a3, a4, a5, a6, a7); 2139 2140 it = itNext; 2141 } 2142 } 2143 2143 }; 2144 2144 … … 2148 2148 arg4_type, arg5_type, arg6_type, arg7_type, arg8_type, mt_policy> 2149 2149 { 2150 public:2151 signal8()2152 {2153 ;2154 }2155 2156 signal8(const signal8<arg1_type, arg2_type, arg3_type, arg4_type,2157 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>& s)2158 : _signal_base8<arg1_type, arg2_type, arg3_type, arg4_type,2159 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>(s)2160 {2161 ;2162 }2163 2164 template<class desttype>2165 void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type,2166 arg2_type, arg3_type, arg4_type, arg5_type, arg6_type,2167 arg7_type, arg8_type))2168 {2169 lock_block<mt_policy> lock(this);2170 _connection8<desttype, arg1_type, arg2_type, arg3_type, arg4_type,2171 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>* conn =2172 new _connection8<desttype, arg1_type, arg2_type, arg3_type,2173 arg4_type, arg5_type, arg6_type, arg7_type,2174 arg8_type, mt_policy>(pclass, pmemfun);2175 m_connected_slots.push_back(conn);2176 pclass->signal_connect(this);2177 }2178 2179 void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,2180 arg5_type a5, arg6_type a6, arg7_type a7, arg8_type a8)2181 {2182 lock_block<mt_policy> lock(this);2183 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();2184 typename connections_list::const_iterator itEnd =m_connected_slots.end();2185 2186 while(it != itEnd)2187 {2188 itNext = it;2189 ++itNext;2190 2191 (*it)->emit(a1, a2, a3, a4, a5, a6, a7, a8);2192 2193 it = itNext;2194 }2195 }2196 2197 void operator()(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4,2198 arg5_type a5, arg6_type a6, arg7_type a7, arg8_type a8)2199 {2200 lock_block<mt_policy> lock(this);2201 typename connections_list::const_iterator itNext, it =m_connected_slots.begin();2202 typename connections_list::const_iterator itEnd =m_connected_slots.end();2203 2204 while(it != itEnd)2205 {2206 itNext = it;2207 ++itNext;2208 2209 (*it)->emit(a1, a2, a3, a4, a5, a6, a7, a8);2210 2211 it = itNext;2212 }2213 }2150 public: 2151 signal8() 2152 { 2153 ; 2154 } 2155 2156 signal8(const signal8<arg1_type, arg2_type, arg3_type, arg4_type, 2157 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>& s) 2158 : _signal_base8<arg1_type, arg2_type, arg3_type, arg4_type, 2159 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>(s) 2160 { 2161 ; 2162 } 2163 2164 template<class desttype> 2165 void connect(desttype* pclass, void (desttype::*pmemfun)(arg1_type, 2166 arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, 2167 arg7_type, arg8_type)) 2168 { 2169 lock_block<mt_policy> lock(this); 2170 _connection8<desttype, arg1_type, arg2_type, arg3_type, arg4_type, 2171 arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>* conn = 2172 new _connection8<desttype, arg1_type, arg2_type, arg3_type, 2173 arg4_type, arg5_type, arg6_type, arg7_type, 2174 arg8_type, mt_policy>(pclass, pmemfun); 2175 this->m_connected_slots.push_back(conn); 2176 pclass->signal_connect(this); 2177 } 2178 2179 void emit(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, 2180 arg5_type a5, arg6_type a6, arg7_type a7, arg8_type a8) 2181 { 2182 lock_block<mt_policy> lock(this); 2183 typename _signal_base8<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 2184 typename _signal_base8<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 2185 2186 while(it != itEnd) 2187 { 2188 itNext = it; 2189 ++itNext; 2190 2191 (*it)->emit(a1, a2, a3, a4, a5, a6, a7, a8); 2192 2193 it = itNext; 2194 } 2195 } 2196 2197 void operator()(arg1_type a1, arg2_type a2, arg3_type a3, arg4_type a4, 2198 arg5_type a5, arg6_type a6, arg7_type a7, arg8_type a8) 2199 { 2200 lock_block<mt_policy> lock(this); 2201 typename _signal_base8<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>::connections_list::const_iterator itNext, it = this->m_connected_slots.begin(); 2202 typename _signal_base8<arg1_type, arg2_type, arg3_type, arg4_type, arg5_type, arg6_type, arg7_type, arg8_type, mt_policy>::connections_list::const_iterator itEnd = this->m_connected_slots.end(); 2203 2204 while(it != itEnd) 2205 { 2206 itNext = it; 2207 ++itNext; 2208 2209 (*it)->emit(a1, a2, a3, a4, a5, a6, a7, a8); 2210 2211 it = itNext; 2212 } 2213 } 2214 2214 }; 2215 2215
Note: See TracChangeset
for help on using the changeset viewer.










