/* Ċ Ġ* Ġ============ LICENSE _ START ================================================ ======= Ċ Ġ* Ġd cae gen 2 - collect ors - ves hv Ċ Ġ* Ġ================================================================= =============== Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 - 2 0 1 9 ĠN OK IA Ċ Ġ* Ġ================================================================= =============== Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ġ============ LICENSE _ END ================================================ ========= Ċ Ġ*/ Ċ package Ġorg . on ap . dca e . collect ors . ves hv . ves . message . generator . generators Ċ Ċ import Ġcom . google . protobuf . ByteString Ċ import Ġorg . on ap . dca e . collect ors . ves hv . ves . message . generator . api . V es Event Parameters Ċ import Ġorg . on ap . dca e . collect ors . ves hv . ves . message . generator . api . V es EventType Ċ import Ġorg . on ap . dca e . collect ors . ves hv . ves . message . generator . api . V es EventType . FIXED _ PAYLOAD Ċ import Ġorg . on ap . dca e . collect ors . ves hv . ves . message . generator . api . V es EventType . TOO _ BIG _ PAYLOAD Ċ import Ġorg . on ap . dca e . collect ors . ves hv . ves . message . generator . api . V es EventType . VALID Ċ import Ġorg . on ap . dca e . collect ors . ves hv . ves . message . generator . impl . Payload Generator Ċ import Ġorg . on ap . ves . V es Event OuterClass . Common Event Header Ċ import Ġorg . on ap . ves . V es Event OuterClass . V es Event Ċ import Ġreactor . core . publisher . Flux Ċ import Ġreactor . core . publisher . Mono Ċ Ċ /** Ċ Ġ* Ġ@ author ĠJ ak ub ĠD udy cz Ġ< jak ub . d udy cz @ nok ia . com > Ċ Ġ* Ġ@ since ĠJune Ġ 2 0 1 8 Ċ Ġ*/ Ċ class ĠV es Event Generator Ġinternal Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpayload Generator : ĠPayload Generator , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmax Payload Size Bytes : ĠInt Ċ ) Ġ: ĠMessage Generator < V es Event Parameters , ĠV es Event >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Message Flux ( parameters : ĠV es Event Parameters ): ĠFlux < V es Event > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparameters . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMono ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. from Callable Ġ{ Ġcreate Message ( common Event Header , Ġmessage Type ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġrepeat Message ( it , Ġamount ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Message ( common Event Header : ĠCommon Event Header , Ġmessage Type : ĠV es EventType ): ĠV es Event Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( message Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVALID Ġ-> Ġv es Event ( common Event Header , Ġpayload Generator . generate Payload ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTO O _ BIG _ PAYLOAD Ġ-> Ġv es Event ( common Event Header , Ġover sized Payload ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFIX ED _ PAYLOAD Ġ-> Ġv es Event ( common Event Header , Ġfixed Payload ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġv es Event ( common Event Header : ĠCommon Event Header , Ġpayload : ĠByte String ): ĠV es Event Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV es Event . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Common Event Header ( common Event Header ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Event Fields ( payload ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġprivate Ġfun Ġover sized Payload (): ĠByte String Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayload Generator . generate Raw Payload ( max Payload Size Bytes Ġ+ Ġ 1 ) ĊĊĠĠĠ Ġprivate Ġfun Ġfixed Payload (): ĠByte String Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpayload Generator . generate Raw Payload ( FIXED _ PAYLOAD _ SIZE ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFIX ED _ PAYLOAD _ SIZE Ġ= Ġ 1 0 0 ĊĠĠĠ Ġ} Ċ } Ċ