/* Ċ Ġ* ĠCopyright ĠThe ĠOpen Telemetry ĠAuthors Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ*/ Ċ package Ġio . op entelemetry . kotlin . api . metrics . internal Ċ Ċ import Ġio . op entelemetry . kotlin . api . common . Attributes Ċ import Ġio . op entelemetry . kotlin . api . metrics . Bound Double Counter Ċ import Ġio . op entelemetry . kotlin . api . metrics . Bound Double Histogram Ċ import Ġio . op entelemetry . kotlin . api . metrics . Bound Double UpDown Counter Ċ import Ġio . op entelemetry . kotlin . api . metrics . Bound Long Counter Ċ import Ġio . op entelemetry . kotlin . api . metrics . Bound Long Histogram Ċ import Ġio . op entelemetry . kotlin . api . metrics . Bound Long UpDown Counter Ċ import Ġio . op entelemetry . kotlin . api . metrics . Double Counter Ċ import Ġio . op entelemetry . kotlin . api . metrics . Double Counter Builder Ċ import Ġio . op entelemetry . kotlin . api . metrics . Double Gauge Builder Ċ import Ġio . op entelemetry . kotlin . api . metrics . Double Histogram Ċ import Ġio . op entelemetry . kotlin . api . metrics . Double Histogram Builder Ċ import Ġio . op entelemetry . kotlin . api . metrics . Double UpDown Counter Ċ import Ġio . op entelemetry . kotlin . api . metrics . Double UpDown Counter Builder Ċ import Ġio . op entelemetry . kotlin . api . metrics . Long Counter Ċ import Ġio . op entelemetry . kotlin . api . metrics . Long Counter Builder Ċ import Ġio . op entelemetry . kotlin . api . metrics . Long Gauge Builder Ċ import Ġio . op entelemetry . kotlin . api . metrics . Long Histogram Ċ import Ġio . op entelemetry . kotlin . api . metrics . Long Histogram Builder Ċ import Ġio . op entelemetry . kotlin . api . metrics . Long UpDown Counter Ċ import Ġio . op entelemetry . kotlin . api . metrics . Long UpDown Counter Builder Ċ import Ġio . op entelemetry . kotlin . api . metrics . Meter Ċ import Ġio . op entelemetry . kotlin . api . metrics . Observable Double Measurement Ċ import Ġio . op entelemetry . kotlin . api . metrics . Observable Long Measurement Ċ import Ġio . op entelemetry . kotlin . context . Context Ċ Ċ /** Ċ Ġ* ĠNo - op Ġimplementations Ġof Ġ[ Meter ]. Ċ Ġ* Ċ Ġ* ĠThis Ġimplementation Ġshould Ġin duce Ġas Ġclose Ġto Ġzero Ġoverhead Ġas Ġpossible . Ċ Ġ* Ċ Ġ* ĠA Ġfew Ġnotes Ġfrom Ġthe Ġspecific ait on Ġon Ġallowed Ġbehaviors Ġleading Ġto Ġthis Ġde as ign Ġ[ Ċ Ġ* Ġ[ Instrument Ċ Ġ* ĠSpec ]( https :// github . com / open - telemetry / op entelemetry - specification / blob / main / specification / metrics / api . md # instrument ) Ċ Ġ* Ġ] : Ċ Ġ* Ċ Ġ* Ġ* ĠMultiple ĠInst ur ments Ġwith Ġthe Ġsame Ġname Ġunder Ġthe Ġsame ĠMeter ĠMUST Ġreturn Ġan Ġerror Ċ Ġ* Ġ* ĠDifferent ĠMet ers ĠMUST Ġbe Ġtreated Ġas Ġseparate Ġnamespaces Ċ Ġ* Ġ* ĠImplement ations ĠMUST ĠNOT Ġrequire Ġusers Ġto Ġrepeatedly Ġobtain Ġa ĠMeter Ġagain Ġwith Ġthe Ġsame Ċ Ġ* Ġname + version + schema _ url Ġto Ġpick Ġup Ġconfiguration Ġchanges . ĠThis Ġcan Ġbe Ġachieved Ġeither Ġby Ġallowing Ċ Ġ* Ġto Ġwork Ġwith Ġan Ġoutdated Ġconfiguration Ġor Ġby Ġensuring Ġthat Ġnew Ġconfiguration Ġapplies Ġalso Ġto Ċ Ġ* Ġpreviously Ġreturned ĠMet ers . Ċ Ġ* Ġ* ĠA ĠMeter Provider Ġcould Ġalso Ġreturn Ġa Ġno - op ĠMeter Ġhere Ġif Ġapplication Ġowners Ġconfigure Ġthe ĠSDK Ġto Ċ Ġ* Ġsuppress Ġtelemetry Ġproduced Ġby Ġthis Ġlibrary Ċ Ġ* Ġ* ĠIn Ġcase Ġan Ġinvalid Ġname Ġ( null Ġor Ġempty Ġstring ) Ġis Ġspecified , Ġa Ġworking ĠMeter Ġimplementation Ċ Ġ* ĠMUST Ġbe Ġreturned Ġas Ġa Ġfallback Ġrather Ġthan Ġreturning Ġnull Ġor Ġthrowing Ġan Ġexception , Ċ Ġ*/ Ċ class ĠNo op Meter Ġprivate Ġconstructor () Ġ: ĠMeter Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcounter Builder ( name : ĠString ): ĠLong Counter Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠNo op Long Counter Builder () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġup Down Counter Builder ( name : ĠString ): ĠLong UpDown Counter Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠNo op Long UpDown Counter Builder () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhistogram Builder ( name : ĠString ): ĠDouble Histogram Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠNo op Double Histogram Builder () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgauge Builder ( name : ĠString ): ĠDouble Gauge Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠNo op Double Observable Instrument Builder () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠNo op Long Counter Ġ: ĠLong Counter Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠLong , Ġattributes : ĠAttributes , Ġcontext : ĠContext ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠLong , Ġattributes : ĠAttributes ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠLong ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind ( attributes : ĠAttributes ): ĠBound Long Counter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Bound Long Counter () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠNo op Bound Long Counter Ġ: ĠBound Long Counter Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠLong ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠLong , Ġcontext : ĠContext ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġun bind () Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠNo op Double Counter Ġ: ĠDouble Counter Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠDouble , Ġattributes : ĠAttributes , Ġcontext : ĠContext ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠDouble , Ġattributes : ĠAttributes ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠDouble ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind ( attributes : ĠAttributes ): ĠBound Double Counter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Bound Double Counter () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠNo op Bound Double Counter Ġ: ĠBound Double Counter Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠDouble ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠDouble , Ġcontext : ĠContext ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġun bind () Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠNo op Long Counter Builder Ġ: ĠLong Counter Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Description ( description : ĠString ): ĠLong Counter Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Unit ( unit : ĠString ): ĠLong Counter Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġof Doubles (): ĠDouble Counter Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Double Counter Builder () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild (): ĠLong Counter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Long Counter () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild With Callback ( callback : Ġ( Observable Long Measurement ) Ġ-> ĠUnit ) Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠNo op Double Counter Builder Ġ: ĠDouble Counter Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Description ( description : ĠString ): ĠDouble Counter Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Unit ( unit : ĠString ): ĠDouble Counter Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġof Long s (): ĠLong Counter Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Long Counter Builder () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild (): ĠDouble Counter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Double Counter () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild With Callback ( callback : Ġ( Observable Double Measurement ) Ġ-> ĠUnit ) Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠNo op Long UpDown Counter Ġ: ĠLong UpDown Counter Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠLong , Ġattributes : ĠAttributes , Ġcontext : ĠContext ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠLong , Ġattributes : ĠAttributes ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠLong ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind ( attributes : ĠAttributes ): ĠBound Long UpDown Counter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Bound Long UpDown Counter () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠNo op Bound Long UpDown Counter Ġ: ĠBound Long UpDown Counter Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠLong , Ġcontext : ĠContext ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠLong ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġun bind () Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠNo op Double UpDown Counter Ġ: ĠDouble UpDown Counter Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠDouble , Ġattributes : ĠAttributes , Ġcontext : ĠContext ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠDouble , Ġattributes : ĠAttributes ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠDouble ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind ( attributes : ĠAttributes ): ĠBound Double UpDown Counter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Bound Double UpDown Counter () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠNo op Bound Double UpDown Counter Ġ: ĠBound Double UpDown Counter Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠDouble , Ġcontext : ĠContext ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġadd ( value : ĠDouble ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġun bind () Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠNo op Long UpDown Counter Builder Ġ: ĠLong UpDown Counter Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Description ( description : ĠString ): ĠLong UpDown Counter Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Unit ( unit : ĠString ): ĠLong UpDown Counter Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġof Doubles (): ĠDouble UpDown Counter Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Double UpDown Counter Builder () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild (): ĠLong UpDown Counter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Long UpDown Counter () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild With Callback ( callback : Ġ( Observable Long Measurement ) Ġ-> ĠUnit ) Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠNo op Double UpDown Counter Builder Ġ: ĠDouble UpDown Counter Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Description ( description : ĠString ): ĠDouble UpDown Counter Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Unit ( unit : ĠString ): ĠDouble UpDown Counter Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġof Long s (): ĠLong UpDown Counter Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Long UpDown Counter Builder () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild (): ĠDouble UpDown Counter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Double UpDown Counter () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild With Callback ( callback : Ġ( Observable Double Measurement ) Ġ-> ĠUnit ) Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠNo op Double Histogram Ġ: ĠDouble Histogram Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrecord ( value : ĠDouble , Ġattributes : ĠAttributes , Ġcontext : ĠContext ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrecord ( value : ĠDouble , Ġattributes : ĠAttributes ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrecord ( value : ĠDouble ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind ( attributes : ĠAttributes ): ĠBound Double Histogram Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Bound Double Histogram () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠNo op Bound Double Histogram Ġ: ĠBound Double Histogram Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrecord ( value : ĠDouble , Ġcontext : ĠContext ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrecord ( value : ĠDouble ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġun bind () Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠNo op Long Histogram Ġ: ĠLong Histogram Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrecord ( value : ĠLong , Ġattributes : ĠAttributes , Ġcontext : ĠContext ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrecord ( value : ĠLong , Ġattributes : ĠAttributes ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrecord ( value : ĠLong ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbind ( attributes : ĠAttributes ): ĠBound Long Histogram Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Bound Long Histogram () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠNo op Bound Long Histogram Ġ: ĠBound Long Histogram Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrecord ( value : ĠLong , Ġcontext : ĠContext ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrecord ( value : ĠLong ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġun bind () Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠNo op Double Histogram Builder Ġ: ĠDouble Histogram Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Description ( description : ĠString ): ĠDouble Histogram Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Unit ( unit : ĠString ): ĠDouble Histogram Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġof Long s (): ĠLong Histogram Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Long Histogram Builder () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild (): ĠDouble Histogram Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Double Histogram () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠNo op Long Histogram Builder Ġ: ĠLong Histogram Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Description ( description : ĠString ): ĠLong Histogram Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Unit ( unit : ĠString ): ĠLong Histogram Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġof Doubles (): ĠDouble Histogram Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Double Histogram Builder () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild (): ĠLong Histogram Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Long Histogram () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠNo op Double Observable Instrument Builder Ġ: ĠDouble Gauge Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Description ( description : ĠString ): ĠDouble Gauge Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Unit ( unit : ĠString ): ĠDouble Gauge Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġof Long s (): ĠLong Gauge Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Long Observable Instrument Builder () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild With Callback ( callback : Ġ( Observable Double Measurement ) Ġ-> ĠUnit ) Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠNo op Long Observable Instrument Builder Ġ: ĠLong Gauge Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Description ( description : ĠString ): ĠLong Gauge Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset Unit ( unit : ĠString ): ĠLong Gauge Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġof Doubles (): ĠDouble Gauge Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠNo op Double Observable Instrument Builder () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbuild With Callback ( callback : Ġ( Observable Long Measurement ) Ġ-> ĠUnit ) Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠINSTANCE Ġ= ĠNo op Meter () ĊĠĠĠĠĠĠĠ Ġval Ġinstance : ĠMeter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= ĠINSTANCE ĊĠĠĠ Ġ} Ċ } Ċ