@@ -20,8 +20,10 @@ 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'
2324import { TraceContext , OnEndSpanEventListener } from '../types/tracetypes' ;
2425import { TracerConfig , defaultConfig } from '../tracing' ;
26+ import { Buffer } from '../../exporters/buffer'
2527
2628export type Func < T > = ( ...args : any [ ] ) => T ;
2729
@@ -30,12 +32,13 @@ export class Tracer implements OnEndSpanEventListener {
3032
3133 readonly PLUGINS = [ 'http' , 'https' , 'mongodb-core' , 'express' ] ;
3234
35+ //public buffer: Buffer;
3336 private _active : boolean ;
3437 private contextManager : cls . Namespace ;
3538 private config : TracerConfig ;
3639
3740 //TODO: simple solution - to be rewied in future
38- private eventListeners : OnEndSpanEventListener [ ] = [ ] ;
41+ private eventListeners : OnEndSpanEventListener [ ] = [ ] ;
3942 //TODO: temp solution
4043 private endedTraces : RootSpan [ ] = [ ] ;
4144
@@ -58,6 +61,10 @@ export class Tracer implements OnEndSpanEventListener {
5861 return this ;
5962 }
6063
64+ public getEventListeners ( ) : OnEndSpanEventListener [ ] {
65+ return this . eventListeners ;
66+ }
67+
6168 public stop ( ) {
6269 this . _active = false ;
6370 }
@@ -74,34 +81,40 @@ export class Tracer implements OnEndSpanEventListener {
7481 }
7582
7683
77- public onEndSpan ( root :RootSpan ) : void {
84+ public onEndSpan ( root : RootSpan ) : void {
7885 if ( ! this . currentRootSpan ) {
7986 return debug ( 'cannot end trace - no active trace found' )
8087 }
81- if ( this . currentRootSpan != root ) {
82- return debug ( 'currentRootSpan != root on notifyEnd. Possbile implementation bug.' )
88+ if ( this . currentRootSpan != root ) {
89+ return debug ( 'currentRootSpan != root on notifyEnd. Possbile implementation bug.' )
8390 }
8491 this . notifyEndSpan ( this . currentRootSpan ) ;
8592 //this.clearCurrentTrace();
8693 }
8794
8895 //TODO: review
8996 public runInContex < T > ( fn : Func < T > ) : T {
90- return this . contextManager . runAndReturn ( fn )
97+ return this . contextManager . runAndReturn ( fn )
9198 }
92-
93- public registerEndSpanListener ( listner : OnEndSpanEventListener ) {
9499
95- this . eventListeners . push ( listner ) ;
100+ public registerEndSpanListener ( listener : OnEndSpanEventListener ) {
101+ this . eventListeners . push ( listener ) ;
102+ //this.buffer.registerExporter(exporter)
96103 }
104+
105+ /*public registerExporter(exporter: Exporter) {
106+ //this.eventListeners.push(listner);
107+ this.buffer.registerExporter(exporter)
108+ }*/
97109
98110 private notifyEndSpan ( root : RootSpan ) {
99111 if ( this . active ) {
100- if ( this . eventListeners && this . eventListeners . length > 0 ) {
112+ //this.buffer.onEndSpan(root);
113+ if ( this . eventListeners && this . eventListeners . length > 0 ) {
101114 this . eventListeners . forEach ( ( listener ) => listener . onEndSpan ( root ) )
102115 }
103116 } else {
104- debug ( 'this tracer is inactivate cant notify endspan' )
117+ debug ( 'this tracer is inactivate cant notify endspan' )
105118 }
106119 }
107120
0 commit comments