// ĠCopyright Ġ 2 0 1 7 ĠHP ĠDevelopment ĠCompany , ĠL . P . Ċ // ĠSPDX - License - Identifier : ĠMIT Ċ Ċ package Ġcom . hp . j ipp . encoding Ċ Ċ import Ġcom . hp . j ipp . encoding . I pp InputStream . Companion . LENGTH _ LENGTH Ċ import Ġjava . io . Data OutputStream Ċ import Ġjava . io . OutputStream Ċ Ċ class ĠI pp OutputStream ( output Stream : ĠOutputStream ) Ġ: ĠData OutputStream ( output Stream ) Ġ{ ĊĠĠĠ Ġ/** ĠWrite Ġa Ġseries Ġof Ġbytes Ġto Ġthe Ġoutput Ġstream , Ġprefixed Ġby Ġlength . Ġ*/ ĊĠĠĠ Ġfun Ġwrite Value Bytes ( bytes : ĠByteArray ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Short ( bytes . size ) ĊĠĠĠĠĠĠĠ Ġwrite ( bytes ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠWrite Ġa Ġstring Ġto Ġthe Ġoutput Ġstream , Ġprefixed Ġby Ġlength . Ġ*/ ĊĠĠĠ Ġfun Ġwrite String ( string : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwrite Value Bytes ( string . toByteArray ( Charsets . UTF _ 8 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠWrite Ġa ĠTag Ġto Ġthe Ġoutput Ġstream Ġ*/ ĊĠĠĠ Ġfun Ġwrite Tag ( tag : ĠTag ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtag . write ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠReturn Ġthe Ġlength Ġof Ġthis Ġstring Ġas Ġit Ġwould Ġbe Ġencoded Ġin Ġthe Ġoutput Ġstream . Ġ*/ ĊĠĠĠ Ġfun Ġstring Length ( string : ĠString ) Ġ= ĠLEN GTH _ LENGTH Ġ+ Ġstring . toByteArray ( Charsets . UTF _ 8 ). size Ċ } Ċ