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; |