package Ġra ft . rpc . message Ċ Ċ import Ġra ft . node . Node Endpoint Ċ import Ġra ft . node . NodeId ĊĊ Ċ class ĠInstall Snapshot Rpc Ġ{ ĊĠĠĠ Ġvar Ġterm Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġleader Id : ĠNode Id ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġlast Index Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġlast Term Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġlast Config : ĠSet < Node Endpoint >? Ġ= Ġnull ĊĠĠĠ Ġvar Ġoffset Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġdata : ĠByteArray ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġis Done Ġ= Ġfalse ĊĊĊĠĠĠ Ġfun ĠgetData Length (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdata !!. size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Install Snapshot Rpc {" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" data . size =" Ġ+ Ġ( if Ġ( data Ġ!= Ġnull ) Ġdata !!. size Ġelse Ġ 0 ) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġdone =" Ġ+ Ġis Done Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġlast Index =" Ġ+ Ġlast Index Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġlast Term =" Ġ+ Ġlast Term Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġleader Id =" Ġ+ Ġleader Id Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġoffset =" Ġ+ Ġoffset Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġterm =" Ġ+ Ġterm Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' }' ĊĠĠĠ Ġ} Ċ } ĊĊ