package Ġorg . map db ĊĊ Ċ /** Ċ Ġ* ĠStores Ġrecords Ċ Ġ*/ Ċ interface ĠStore Immutable Ġ{ ĊĊĠĠĠ Ġfun Ġ< R > Ġget ( rec id : ĠLong , Ġserializer : ĠSerializer < R >): ĠR ? ĊĊĠĠĠ Ġfun ĠgetAll Rec ids (): ĠLong Iterator ĊĊĠĠĠ Ġfun ĠgetAll Files (): ĠIterable < String > Ċ } Ċ /** Ċ Ġ* ĠStores Ġrecords , Ġmutable Ġversion Ċ Ġ*/ Ċ interface ĠStore : ĠStore Immutable , ĠVer ifiable , ĊĠĠĠĠĠĠĠ ĠCon currency Aware Ġ{ Ġ// TODO Ġput Ġassertions Ġfor Ġunderlying Ġcollections Ġand ĠVolume s ĊĊĠĠĠ Ġfun Ġpre allocate (): Long ; ĊĊĠĠĠ Ġfun Ġ< R > Ġput ( record : ĠR ?, Ġserializer : ĠSerializer < R >): Long ĊĠĠĠ Ġfun Ġ< R > Ġupdate ( rec id : ĠLong , Ġrecord : ĠR ?, Ġserializer : ĠSerializer < R >) ĊĠĠĠ Ġfun Ġ< R > Ġcompare And Swap ( rec id : ĠLong , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Old Record : ĠR ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Record : ĠR ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserializer : ĠSerializer < R > ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠBoolean ĊĊĠĠĠ Ġfun Ġ< R > Ġdelete ( rec id : ĠLong , Ġserializer : ĠSerializer < R >) ĊĊĠĠĠ Ġfun Ġcommit (); ĊĠĠĠ Ġfun Ġcompact () ĊĊĠĠĠ Ġfun Ġclose (); ĊĠĠĠ Ġval Ġis Closed : Boolean ; ĊĊĠĠĠ Ġoverride Ġfun Ġverify () ĊĊĠĠĠ Ġval Ġis ReadOnly : ĠBoolean ĊĊĠĠĠ Ġfun Ġfile Load (): ĠBoolean ; Ċ } Ċ Ċ /** Ċ Ġ* ĠStores Ġrecords , Ġtransaction al Ġversion Ċ Ġ*/ Ċ interface ĠStore Tx : Store { ĊĠĠĠ Ġfun Ġrollback (); Ċ } Ċ Ċ interface ĠStore Binary : Store { ĊĊĠĠĠ Ġfun Ġget Binary Long ( rec id : Long , Ġf : Store Binary Get Long ): Long Ċ } Ċ