package Ġkotlinx . io . core Ċ Ċ import Ġkotlinx . io . pool .* Ċ Ċ expect Ġclass ĠByte Read Packet Ġinternal Ġconstructor ( head : ĠIo Buffer , Ġremaining : ĠLong , Ġpool : ĠObject Pool < Io Buffer >) Ġ: ĊĠĠĠ ĠByte Read Packet Platform Base Ġ{ ĊĠĠĠ Ġconstructor ( head : ĠIo Buffer , Ġpool : ĠObject Pool < Io Buffer >) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠEmpty : ĠByte Read Packet ĊĠĠĠĠĠĠĠ Ġval ĠReserved Size : ĠInt ĊĠĠĠ Ġ} Ċ } Ċ Ċ expect Ġabstract Ġclass ĠByte Read Packet Platform Base Ġprotected Ġconstructor ( ĊĠĠĠ Ġhead : ĠIo Buffer , ĊĠĠĠ Ġremaining : ĠLong , ĊĠĠĠ Ġpool : ĠObject Pool < Io Buffer > Ċ ) Ġ: ĠByte Read Packet Base Ġ{ Ċ } Ċ Ċ /** Ċ Ġ* ĠThe Ġdefault Ġabstract Ġbase Ġclass Ġfor Ġimplementing Ġ[ Input ] Ġinterface . Ċ Ġ* Ġ@ see Ġ[ Byte Read Packet Base . fill ] Ġamd Ġ[ Byte Read Packet Base . close Source ] Ċ Ġ*/ Ċ @ Experimental Io Api Ċ abstract Ġclass ĠAbstract Input ( ĊĠĠĠ Ġhead : ĠIo Buffer Ġ= ĠIo Buffer . Empty , ĊĠĠĠ Ġremaining : ĠLong Ġ= Ġhead . remaining All (), ĊĠĠĠ Ġpool : ĠObject Pool < Io Buffer > Ġ= ĠIo Buffer . Pool Ċ ) Ġ: ĠByte Read Packet Platform Base ( head , Ġremaining , Ġpool ) Ġ{ ĊĠĠĠ Ġabstract Ġoverride Ġfun Ġfill (): ĠIo Buffer ? ĊĠĠĠ Ġabstract Ġoverride Ġfun Ġclose Source () Ċ } Ċ Ċ expect Ġfun ĠByte Read Packet ( ĊĠĠĠ Ġarray : ĠByteArray , Ġoffset : ĠInt Ġ= Ġ 0 , Ġlength : ĠInt Ġ= Ġarray . size , ĊĠĠĠ Ġblock : Ġ( ByteArray ) Ġ-> ĠUnit Ċ ): ĠByte Read Packet Ċ Ċ @ Suppress (" NOTH ING _ TO _ INLINE ") Ċ inline Ġfun ĠByte Read Packet ( array : ĠByteArray , Ġoffset : ĠInt Ġ= Ġ 0 , Ġlength : ĠInt Ġ= Ġarray . size ): ĠByte Read Packet Ġ{ ĊĠĠĠ Ġreturn ĠByte Read Packet ( array , Ġoffset , Ġlength ) Ġ{} Ċ } Ċ