package Ġcom . opens im ulation platform . co sim Ċ Ċ import Ġcom . opens im ulation platform . co sim . jni . Cos im Library Ċ import Ġcom . opens im ulation platform . co sim . jni . Observer Ptr Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . io . Closeable Ċ import Ġjava . io . File Ċ Ċ sealed Ġclass ĠCos im Observer ( ĊĠĠĠ Ġprotected Ġvar Ġobserver Ptr : ĠObserver Ptr Ċ ) Ġ: ĠClose able Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( observer Ptr Ġ!= Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCos im Library . destroy Observer ( observer Ptr ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobserver Ptr Ġ= Ġ 0 L ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ interface ĠStep EventListener Ġ{ ĊĠĠĠ Ġfun Ġadded To Execution ( execution : ĠCos im Execution ) ĊĠĠĠ Ġfun Ġon Simulation Initialized ( currentTime : ĠDouble ) ĊĠĠĠ Ġfun Ġon Step Complete ( step Number : ĠLong , ĠcurrentTime : ĠDouble , Ġlast Step Size : ĠDouble ) Ċ } Ċ Ċ abstract Ġclass ĠStep Event Adapter Ġ: ĠStep EventListener Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġadded To Execution ( execution : ĠCos im Execution ) Ġ{} ĊĠĠĠ Ġoverride Ġfun Ġon Simulation Initialized ( currentTime : ĠDouble ) Ġ{} ĊĠĠĠ Ġoverride Ġfun Ġon Step Complete ( step Number : ĠLong , ĠcurrentTime : ĠDouble , Ġlast Step Size : ĠDouble ) Ġ{} Ċ } Ċ Ċ class ĠCos im Step EventListener Ġinternal Ġconstructor ( ĊĠĠĠ Ġobserver : ĠObserver Ptr Ċ ) Ġ: ĠCos im Observer ( observer ) Ċ Ċ class ĠCos im File Observer Ġinternal Ġconstructor ( ĊĠĠĠ Ġobserver : ĠObserver Ptr , ĊĠĠĠ Ġval Ġlog Dir : ĠFile Ċ ) Ġ: ĠCos im Observer ( observer ) Ċ Ċ class ĠCos im TimeSeries Observer Ġinternal Ġconstructor ( ĊĠĠĠ Ġobserver : ĠObserver Ptr Ċ ) Ġ: ĠCos im Observer ( observer ) Ġ{ ĊĊĠĠĠ Ġfun Ġstart Ob serving ( slave Index : ĠInt , Ġvariable : ĠCos im Variable Description ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCos im Library . start Ob serving ( observer Ptr , Ġslave Index , Ġvariable . type , Ġvariable . value Reference ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstop Ob serving ( slave Index : ĠInt , Ġvariable : ĠCos im Variable Description ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCos im Library . stop Ob serving ( observer Ptr , Ġslave Index , Ġvariable . type , Ġvariable . value Reference ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Real Samples ( slave Index : ĠInt , Ġvr : ĠLong , Ġstep Number : ĠLong , Ġn Samples : ĠInt ): ĠCos im Real Samples Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCos im Library . get Real Samples ( observer Ptr , Ġslave Index , Ġvr , Ġstep Number , Ġn Samples ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Integer Samples ( slave Index : ĠInt , Ġvr : ĠLong , Ġstep Number : ĠLong , Ġn Samples : ĠInt ): ĠCos im Integer Samples Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCos im Library . getInteger Samples ( observer Ptr , Ġslave Index , Ġvr , Ġstep Number , Ġn Samples ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Step Numbers For Duration ( slave Index : ĠInt , Ġduration : ĠDouble ): ĠPair < Long , ĠLong > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLong Array ( 2 ). let Ġ{ Ġsteps Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCos im Library . get Step Numbers For Duration ( observer Ptr , Ġslave Index , Ġduration , Ġsteps ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsteps [ 0 ] Ġto Ġsteps [ 1 ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Step Numbers ( slave Index : ĠInt , Ġbegin : ĠDouble , Ġend : ĠDouble ): ĠPair < Long , ĠLong > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠLong Array ( 2 ). let Ġ{ Ġsteps Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCos im Library . get Step Numbers ( observer Ptr , Ġslave Index , Ġbegin , Ġend , Ġsteps ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsteps [ 0 ] Ġto Ġsteps [ 1 ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠCos im Last Value Observer ( ĊĠĠĠ Ġobserver : ĠObserver Ptr Ċ ) Ġ: ĠCos im Observer ( observer ) Ġ{ ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval ĠLOG : ĠLogger Ġ= ĠLoggerFactory . getLogger ( Cos im Last Value Observer :: class . java ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Real ( slave Index : ĠInt , Ġvr : ĠLong ): ĠDouble ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDouble Array ( 1 ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! get Real ( slave Index , Ġlong ArrayOf ( vr ), Ġit )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} [ 0 ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Real ( slave Index : ĠInt , Ġvr : ĠLong Array , Ġref : ĠDouble Array ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCos im Library . get Real ( observer Ptr , Ġslave Index , Ġvr , Ġref ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . warn (" get Real Ġfailed , Ġlast Ġreported Ġerror : Ġ${ Cos im Library . getLast Error () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Integer ( slave Index : ĠInt , Ġvr : ĠLong ): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠInt Array ( 1 ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! getInteger ( slave Index , Ġlong ArrayOf ( vr ), Ġit )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} [ 0 ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Integer ( slave Index : ĠInt , Ġvr : ĠLong Array , Ġref : ĠInt Array ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCos im Library . getInteger ( observer Ptr , Ġslave Index , Ġvr , Ġref ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . warn (" getInteger Ġfailed , Ġlast Ġreported Ġerror : Ġ${ Cos im Library . getLast Error () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Boolean ( slave Index : ĠInt , Ġvr : ĠLong ): ĠBoolean ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠBoolean Array ( 1 ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! getBoolean ( slave Index , Ġlong ArrayOf ( vr ), Ġit )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} [ 0 ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Boolean ( slave Index : ĠInt , Ġvr : ĠLong Array , Ġref : ĠBoolean Array ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCos im Library . getBoolean ( observer Ptr , Ġslave Index , Ġvr , Ġref ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . warn (" getBoolean Ġfailed , Ġlast Ġreported Ġerror : Ġ${ Cos im Library . getLast Error () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetString ( slave Index : ĠInt , Ġvr : ĠLong ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠArray ( 1 ) Ġ{ Ġ"" Ġ}. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! getString ( slave Index , Ġlong ArrayOf ( vr ), Ġit )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} [ 0 ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetString ( slave Index : ĠInt , Ġvr : ĠLong Array , Ġref : ĠArray < String >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCos im Library . getString ( observer Ptr , Ġslave Index , Ġvr , Ġref ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . warn (" getString Ġfailed , Ġlast Ġreported Ġerror : Ġ${ Cos im Library . getLast Error () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ