|
Lines 105-111
CompositeTraceResolver::DoAddSource (std
|
Link Here
|
|---|
|
| 105 |
path.append (this->name); |
105 |
path.append (this->name); |
| 106 |
TraceContext ctx = context; |
106 |
TraceContext ctx = context; |
| 107 |
ctx.Union (this->context); |
107 |
ctx.Union (this->context); |
| 108 |
collection->AddUnique (path, ctx, this->doc); |
108 |
collection->AddUnique (path, ctx, this->doc, GetCallbackType ()); |
| 109 |
} |
109 |
} |
| 110 |
virtual void TraceAll (std::ostream &os, const TraceContext &context) |
110 |
virtual void TraceAll (std::ostream &os, const TraceContext &context) |
| 111 |
{ |
111 |
{ |
|
Lines 115-120
CompositeTraceResolver::DoAddSource (std
|
Link Here
|
|---|
|
| 115 |
} |
115 |
} |
| 116 |
TraceSource *trace; |
116 |
TraceSource *trace; |
| 117 |
TraceDoc doc; |
117 |
TraceDoc doc; |
|
|
118 |
|
| 119 |
const std::type_info* GetCallbackType () |
| 120 |
{ |
| 121 |
const CallbackTraceSourceBase *callbackSource = |
| 122 |
dynamic_cast<const CallbackTraceSourceBase *> (trace); |
| 123 |
if (callbackSource == NULL) |
| 124 |
{ |
| 125 |
return NULL; |
| 126 |
} |
| 127 |
else |
| 128 |
{ |
| 129 |
return &callbackSource->GetCallbackType (); |
| 130 |
} |
| 131 |
} |
| 118 |
} *item = new SourceResolveItem (); |
132 |
} *item = new SourceResolveItem (); |
| 119 |
item->name = name; |
133 |
item->name = name; |
| 120 |
item->context = context; |
134 |
item->context = context; |
|
|
| 438 |
bool |
452 |
bool |
| 439 |
CompositeTraceResolverTest::RunTests (void) |
453 |
CompositeTraceResolverTest::RunTests (void) |
| 440 |
{ |
454 |
{ |
| 441 |
bool ok = true; |
455 |
bool result = true; |
| 442 |
|
456 |
|
| 443 |
CallbackTraceSource<double> traceDoubleA; |
457 |
CallbackTraceSource<double> traceDoubleA; |
| 444 |
CallbackTraceSource<double> traceDoubleB; |
458 |
CallbackTraceSource<double> traceDoubleB; |
|
Lines 453-471
CompositeTraceResolverTest::RunTests (vo
|
Link Here
|
|---|
|
| 453 |
|
467 |
|
| 454 |
resolver.Connect ("/*", MakeCallback (&CompositeTraceResolverTest::TraceDouble, this), TraceContext ()); |
468 |
resolver.Connect ("/*", MakeCallback (&CompositeTraceResolverTest::TraceDouble, this), TraceContext ()); |
| 455 |
|
469 |
|
|
|
470 |
{ |
| 471 |
TraceResolver::SourceCollection collection; |
| 472 |
resolver.CollectSources ("/*", context, &collection); |
| 473 |
|
| 474 |
int numSources = 0; |
| 475 |
for (TraceResolver::SourceCollection::Iterator source = collection.Begin (); |
| 476 |
source != collection.End (); source++) |
| 477 |
{ |
| 478 |
NS_TEST_ASSERT (source->callbackType != NULL); |
| 479 |
if (source->callbackType != NULL) |
| 480 |
{ |
| 481 |
numSources++; |
| 482 |
NS_TEST_ASSERT (*source->callbackType == typeid (Callback<void, TraceContext const &, double>)); |
| 483 |
} |
| 484 |
} |
| 485 |
NS_TEST_ASSERT (numSources > 0); |
| 486 |
} |
| 487 |
|
| 456 |
m_gotDoubleA = false; |
488 |
m_gotDoubleA = false; |
| 457 |
m_gotDoubleB = false; |
489 |
m_gotDoubleB = false; |
| 458 |
traceDoubleA (0); |
490 |
traceDoubleA (0); |
| 459 |
if (!m_gotDoubleA || m_gotDoubleB) |
491 |
if (!m_gotDoubleA || m_gotDoubleB) |
| 460 |
{ |
492 |
{ |
| 461 |
ok = false; |
493 |
result = false; |
| 462 |
} |
494 |
} |
| 463 |
m_gotDoubleA = false; |
495 |
m_gotDoubleA = false; |
| 464 |
traceDoubleA (0); |
496 |
traceDoubleA (0); |
| 465 |
traceDoubleB (0); |
497 |
traceDoubleB (0); |
| 466 |
if (!m_gotDoubleA || !m_gotDoubleB) |
498 |
if (!m_gotDoubleA || !m_gotDoubleB) |
| 467 |
{ |
499 |
{ |
| 468 |
ok = false; |
500 |
result = false; |
| 469 |
} |
501 |
} |
| 470 |
m_gotDoubleA = false; |
502 |
m_gotDoubleA = false; |
| 471 |
m_gotDoubleB = false; |
503 |
m_gotDoubleB = false; |
|
Lines 478-484
CompositeTraceResolverTest::RunTests (vo
|
Link Here
|
|---|
|
| 478 |
traceDoubleB (0); |
510 |
traceDoubleB (0); |
| 479 |
if (m_gotDoubleA || m_gotDoubleB) |
511 |
if (m_gotDoubleA || m_gotDoubleB) |
| 480 |
{ |
512 |
{ |
| 481 |
ok = false; |
513 |
result = false; |
| 482 |
} |
514 |
} |
| 483 |
|
515 |
|
| 484 |
resolver.Connect ("/trace-double-a", |
516 |
resolver.Connect ("/trace-double-a", |
|
Lines 489-495
CompositeTraceResolverTest::RunTests (vo
|
Link Here
|
|---|
|
| 489 |
traceDoubleB (0); |
521 |
traceDoubleB (0); |
| 490 |
if (!m_gotDoubleA || m_gotDoubleB) |
522 |
if (!m_gotDoubleA || m_gotDoubleB) |
| 491 |
{ |
523 |
{ |
| 492 |
ok = false; |
524 |
result = false; |
| 493 |
} |
525 |
} |
| 494 |
resolver.Disconnect ("/trace-double-a", |
526 |
resolver.Disconnect ("/trace-double-a", |
| 495 |
MakeCallback (&CompositeTraceResolverTest::TraceDouble, this)); |
527 |
MakeCallback (&CompositeTraceResolverTest::TraceDouble, this)); |
|
Lines 502-508
CompositeTraceResolverTest::RunTests (vo
|
Link Here
|
|---|
|
| 502 |
traceDoubleB (0); |
534 |
traceDoubleB (0); |
| 503 |
if (!m_gotDoubleA || m_gotDoubleB) |
535 |
if (!m_gotDoubleA || m_gotDoubleB) |
| 504 |
{ |
536 |
{ |
| 505 |
ok = false; |
537 |
result = false; |
| 506 |
} |
538 |
} |
| 507 |
resolver.Disconnect ("/trace-double-a", |
539 |
resolver.Disconnect ("/trace-double-a", |
| 508 |
MakeCallback (&CompositeTraceResolverTest::TraceDouble, this)); |
540 |
MakeCallback (&CompositeTraceResolverTest::TraceDouble, this)); |
|
Lines 515-521
CompositeTraceResolverTest::RunTests (vo
|
Link Here
|
|---|
|
| 515 |
traceDoubleB (0); |
547 |
traceDoubleB (0); |
| 516 |
if (!m_gotDoubleA || !m_gotDoubleB) |
548 |
if (!m_gotDoubleA || !m_gotDoubleB) |
| 517 |
{ |
549 |
{ |
| 518 |
ok = false; |
550 |
result = false; |
| 519 |
} |
551 |
} |
| 520 |
resolver.Disconnect ("/trace-double-a", |
552 |
resolver.Disconnect ("/trace-double-a", |
| 521 |
MakeCallback (&CompositeTraceResolverTest::TraceDouble, this)); |
553 |
MakeCallback (&CompositeTraceResolverTest::TraceDouble, this)); |
|
Lines 525-531
CompositeTraceResolverTest::RunTests (vo
|
Link Here
|
|---|
|
| 525 |
traceDoubleB (0); |
557 |
traceDoubleB (0); |
| 526 |
if (m_gotDoubleA || !m_gotDoubleB) |
558 |
if (m_gotDoubleA || !m_gotDoubleB) |
| 527 |
{ |
559 |
{ |
| 528 |
ok = false; |
560 |
result = false; |
| 529 |
} |
561 |
} |
| 530 |
|
562 |
|
| 531 |
|
563 |
|
|
Lines 537-543
CompositeTraceResolverTest::RunTests (vo
|
Link Here
|
|---|
|
| 537 |
traceDoubleB (0); |
569 |
traceDoubleB (0); |
| 538 |
if (m_gotDoubleA || m_gotDoubleB) |
570 |
if (m_gotDoubleA || m_gotDoubleB) |
| 539 |
{ |
571 |
{ |
| 540 |
ok = false; |
572 |
result = false; |
| 541 |
} |
573 |
} |
| 542 |
|
574 |
|
| 543 |
resolver.Add ("subresolver", |
575 |
resolver.Add ("subresolver", |
|
Lines 549-555
CompositeTraceResolverTest::RunTests (vo
|
Link Here
|
|---|
|
| 549 |
m_traceInt (1); |
581 |
m_traceInt (1); |
| 550 |
if (!m_gotInt) |
582 |
if (!m_gotInt) |
| 551 |
{ |
583 |
{ |
| 552 |
ok = false; |
584 |
result = false; |
| 553 |
} |
585 |
} |
| 554 |
|
586 |
|
| 555 |
resolver.Disconnect ("/subresolver/trace-int", |
587 |
resolver.Disconnect ("/subresolver/trace-int", |
|
Lines 558-564
CompositeTraceResolverTest::RunTests (vo
|
Link Here
|
|---|
|
| 558 |
m_traceInt (1); |
590 |
m_traceInt (1); |
| 559 |
if (m_gotInt) |
591 |
if (m_gotInt) |
| 560 |
{ |
592 |
{ |
| 561 |
ok = false; |
593 |
result = false; |
| 562 |
} |
594 |
} |
| 563 |
|
595 |
|
| 564 |
resolver.Connect ("/*/trace-int", |
596 |
resolver.Connect ("/*/trace-int", |
|
Lines 567-573
CompositeTraceResolverTest::RunTests (vo
|
Link Here
|
|---|
|
| 567 |
m_traceInt (1); |
599 |
m_traceInt (1); |
| 568 |
if (!m_gotInt) |
600 |
if (!m_gotInt) |
| 569 |
{ |
601 |
{ |
| 570 |
ok = false; |
602 |
result = false; |
| 571 |
} |
603 |
} |
| 572 |
|
604 |
|
| 573 |
resolver.Disconnect ("/subresolver/trace-int", |
605 |
resolver.Disconnect ("/subresolver/trace-int", |
|
Lines 576-582
CompositeTraceResolverTest::RunTests (vo
|
Link Here
|
|---|
|
| 576 |
m_traceInt (1); |
608 |
m_traceInt (1); |
| 577 |
if (m_gotInt) |
609 |
if (m_gotInt) |
| 578 |
{ |
610 |
{ |
| 579 |
ok = false; |
611 |
result = false; |
| 580 |
} |
612 |
} |
| 581 |
|
613 |
|
| 582 |
SVTraceSource<uint16_t> source; |
614 |
SVTraceSource<uint16_t> source; |
|
Lines 584-590
CompositeTraceResolverTest::RunTests (vo
|
Link Here
|
|---|
|
| 584 |
resolver.AddSource ("uint16_t", TraceDoc ("test source"), source, TraceSourceTest (TraceSourceTest::UINT16_T)); |
616 |
resolver.AddSource ("uint16_t", TraceDoc ("test source"), source, TraceSourceTest (TraceSourceTest::UINT16_T)); |
| 585 |
|
617 |
|
| 586 |
|
618 |
|
| 587 |
return ok; |
619 |
return result; |
| 588 |
} |
620 |
} |
| 589 |
|
621 |
|
| 590 |
static CompositeTraceResolverTest g_compositeTraceResolverTest; |
622 |
static CompositeTraceResolverTest g_compositeTraceResolverTest; |