@@ -20,10 +20,8 @@ import { Span } from './span'
2020import { debug } from '../../internal/util'
2121import { Stackdriver } from '../../exporters/stackdriver/stackdriver'
2222import { StackdriverOptions } from '../../exporters/stackdriver/options'
23- import { Exporter } from '../../exporters/exporter'
24- import { TraceContext , OnEndSpanEventListener } from '../types/tracetypes' ;
25- import { TracerConfig , defaultConfig } from '../tracing' ;
26- import { Buffer } from '../../exporters/buffer'
23+ import { TraceContext , TraceOptions , OnEndSpanEventListener } from '../types/tracetypes' ;
24+ import { TracerConfig , defaultConfig } from '../tracing' ;
2725
2826export type Func < T > = ( ...args : any [ ] ) => T ;
2927
@@ -73,13 +71,14 @@ export class Tracer implements OnEndSpanEventListener {
7371 return this . _active ;
7472 }
7573
76- public startRootSpan ( name ?: string , type ?: string , context ?: TraceContext ) : RootSpan {
77- let newRootSpan = new RootSpan ( this , context ) ;
78- if ( name ) { newRootSpan . name = name }
79- if ( type ) { newRootSpan . type = type }
80- this . setCurrentRootSpan ( newRootSpan ) ;
81- newRootSpan . start ( ) ;
82- return newRootSpan ;
74+ public startRootSpan < T > ( options : TraceOptions , fn : ( root : RootSpan ) => T ) : T {
75+ debug ( 'starting root span: %o' , options )
76+ return this . contextManager . runAndReturn ( ( root ) => {
77+ let newRoot = new RootSpan ( this , options ) ;
78+ this . setCurrentRootSpan ( newRoot ) ;
79+ newRoot . start ( ) ;
80+ return fn ( newRoot ) ;
81+ } ) ;
8382 }
8483
8584
@@ -94,14 +93,9 @@ export class Tracer implements OnEndSpanEventListener {
9493 //this.clearCurrentTrace();
9594 }
9695
97- //TODO: review
98- public runInContex < T > ( fn : Func < T > ) : T {
99- return this . contextManager . runAndReturn ( fn )
100- }
101-
102- public registerEndSpanListener ( listener : OnEndSpanEventListener ) {
103- this . eventListeners . push ( listener ) ;
104- //this.buffer.registerExporter(exporter)
96+
97+ public registerEndSpanListener ( listner : OnEndSpanEventListener ) {
98+ this . eventListeners . push ( listner ) ;
10599 }
106100
107101 /*public registerExporter(exporter: Exporter) {
0 commit comments