package Ġorg . war far in . ck ys ch ool . side car j . remote . plugin Ċ Ċ import Ġorg . war far in . ck ys ch ool . side car j . remote . model . Ck ys ch ool Protocol Header Ċ Ċ type alias ĠBase Remoting Plugin Kit Generic Ġ= ĠBase Remoting Plugin Kit < *, Ġ*, Ġ*, Ġ*, Ġ*, Ġ*> Ċ Ċ abstract Ġclass ĠBase Remoting Plugin Kit < T , ĠIn , ĠOut , ĠContext : ĠBase Remoting Plugin Session Context < T , ĠIn , ĠOut >, ĠCodec Meta , ĠDecode Out >( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcodec : ĠRem oting Plugin Codec < Codec Meta , ĠDecode Out >, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġconsumer : ĠRem oting Plugin Consumer < T , ĠIn , ĠOut , ĠContext >, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġprovider : ĠRem oting Plugin Provider < T , ĠIn , ĠOut , ĠContext >) Ġ: ĠSide car Remoting Plug ged Ġ{ ĊĠĠĠ Ġ// ĠTODO Ġimplementation Ċ } Ċ Ċ abstract Ġclass ĠBase Remoting Plugin Session Context < T , ĠIn , ĠOut >( ĊĠĠĠĠĠĠĠ Ġval Ġplugin Id : ĠByte , ĊĠĠĠĠĠĠĠ Ġval Ġheader : ĠC k ys ch ool Protocol Header , ĊĠĠĠĠĠĠĠ Ġval Ġcontext : ĠT ? Ċ ) Ġ{ ĊĠĠĠ Ġabstract Ġfun Ġget Input (): ĠIn ? ĊĠĠĠ Ġabstract Ġfun Ġset Input ( input : ĠIn ?) ĊĠĠĠ Ġabstract Ġfun Ġget Output (): ĠOut ? ĊĠĠĠ Ġabstract Ġfun Ġset Output ( output : ĠOut ?) Ċ }