package Ġm ary k . ro cksdb Ċ Ċ /** Ċ Ġ* ĠOptions Ġthat Ġcontrol Ġwrite Ġoperations . Ċ Ġ* Ċ Ġ* ĠNote Ġthat Ġdevelopers Ġshould Ġcall ĠWrite Options . dispose () Ġto Ġrelease Ġthe Ċ Ġ* Ġc ++ Ġside Ġmemory Ġbefore Ġa ĠWrite Options Ġinstance Ġruns Ġout Ġof Ġscope . Ċ Ġ*/ Ċ expect Ġclass ĠWrite Options () Ġ: ĠR ocks Object Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġtrue , Ġthe Ġwrite Ġwill Ġbe Ġfl ushed Ġfrom Ġthe Ġoperating Ġsystem ĊĠĠĠĠ Ġ* Ġbuffer Ġcache Ġ( by Ġcalling ĠWrit able File :: Sync ()) Ġbefore Ġthe Ġwrite ĊĠĠĠĠ Ġ* Ġis Ġconsidered Ġcomplete . Ġ ĠIf Ġthis Ġflag Ġis Ġtrue , Ġwrites Ġwill Ġbe ĊĠĠĠĠ Ġ* Ġslower . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġthis Ġflag Ġis Ġfalse , Ġand Ġthe Ġmachine Ġcrashes , Ġsome Ġrecent ĊĠĠĠĠ Ġ* Ġwrites Ġmay Ġbe Ġlost . Ġ ĠNote Ġthat Ġif Ġit Ġis Ġjust Ġthe Ġprocess Ġthat ĊĠĠĠĠ Ġ* Ġcrashes Ġ( i . e ., Ġthe Ġmachine Ġdoes Ġnot Ġreboot ), Ġno Ġwrites Ġwill Ġbe ĊĠĠĠĠ Ġ* Ġlost Ġeven Ġif Ġsync == false . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIn Ġother Ġwords , Ġa ĠDB Ġwrite Ġwith Ġsync == false Ġhas Ġsimilar ĊĠĠĠĠ Ġ* Ġcrash Ġsemantics Ġas Ġthe Ġ" write ()" Ġsystem Ġcall . Ġ ĠA ĠDB Ġwrite ĊĠĠĠĠ Ġ* Ġwith Ġsync == true Ġhas Ġsimilar Ġcrash Ġsemantics Ġto Ġa Ġ" write ()" ĊĠĠĠĠ Ġ* Ġsystem Ġcall Ġfollowed Ġby Ġ" f dat async () ". ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠDefault : Ġfalse ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġflag Ġa Ġboolean Ġflag Ġto Ġindicate Ġwhether Ġa Ġwrite ĊĠĠĠĠ Ġ* Ġshould Ġbe Ġsynchronized . ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġinstance Ġof Ġthe Ġcurrent ĠWrite Options . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Sync ( flag : ĠBoolean ): ĠWrite Options ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġtrue , Ġthe Ġwrite Ġwill Ġbe Ġfl ushed Ġfrom Ġthe Ġoperating Ġsystem ĊĠĠĠĠ Ġ* Ġbuffer Ġcache Ġ( by Ġcalling ĠWrit able File :: Sync ()) Ġbefore Ġthe Ġwrite ĊĠĠĠĠ Ġ* Ġis Ġconsidered Ġcomplete . Ġ ĠIf Ġthis Ġflag Ġis Ġtrue , Ġwrites Ġwill Ġbe ĊĠĠĠĠ Ġ* Ġslower . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIf Ġthis Ġflag Ġis Ġfalse , Ġand Ġthe Ġmachine Ġcrashes , Ġsome Ġrecent ĊĠĠĠĠ Ġ* Ġwrites Ġmay Ġbe Ġlost . ĠNote Ġthat Ġif Ġit Ġis Ġjust Ġthe Ġprocess Ġthat ĊĠĠĠĠ Ġ* Ġcrashes Ġ( i . e ., Ġthe Ġmachine Ġdoes Ġnot Ġreboot ), Ġno Ġwrites Ġwill Ġbe ĊĠĠĠĠ Ġ* Ġlost Ġeven Ġif Ġsync == false . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIn Ġother Ġwords , Ġa ĠDB Ġwrite Ġwith Ġsync == false Ġhas Ġsimilar ĊĠĠĠĠ Ġ* Ġcrash Ġsemantics Ġas Ġthe Ġ" write ()" Ġsystem Ġcall . Ġ ĠA ĠDB Ġwrite ĊĠĠĠĠ Ġ* Ġwith Ġsync == true Ġhas Ġsimilar Ġcrash Ġsemantics Ġto Ġa Ġ" write ()" ĊĠĠĠĠ Ġ* Ġsystem Ġcall Ġfollowed Ġby Ġ" f dat async () ". ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġboolean Ġvalue Ġindicating Ġif Ġsync Ġis Ġactive . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsync (): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġtrue , Ġwrites Ġwill Ġnot Ġfirst Ġgo Ġto Ġthe Ġwrite Ġahead Ġlog , ĊĠĠĠĠ Ġ* Ġand Ġthe Ġwrite Ġmay Ġgot Ġlost Ġafter Ġa Ġcrash . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġflag Ġa Ġboolean Ġflag Ġto Ġspecify Ġwhether Ġto Ġdisable ĊĠĠĠĠ Ġ* Ġwrite - ahead - log Ġon Ġwrites . ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġinstance Ġof Ġthe Ġcurrent ĠWrite Options . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Disable WAL ( flag : ĠBoolean ): ĠWrite Options ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġtrue , Ġwrites Ġwill Ġnot Ġfirst Ġgo Ġto Ġthe Ġwrite Ġahead Ġlog , ĊĠĠĠĠ Ġ* Ġand Ġthe Ġwrite Ġmay Ġgot Ġlost Ġafter Ġa Ġcrash . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġboolean Ġvalue Ġindicating Ġif ĠW AL Ġis Ġdisabled . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdisable WAL (): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġtrue Ġand Ġif Ġuser Ġis Ġtrying Ġto Ġwrite Ġto Ġcolumn Ġfam ilies Ġthat Ġdon 't Ġexist ĊĠĠĠĠ Ġ* Ġ( they Ġwere Ġdropped ), Ġignore Ġthe Ġwrite Ġ( don 't Ġreturn Ġan Ġerror ). ĠIf Ġthere ĊĠĠĠĠ Ġ* Ġare Ġmultiple Ġwrites Ġin Ġa ĠWrite Batch , Ġother Ġwrites Ġwill Ġsucceed . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠDefault : Ġfalse ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġignore Missing Column F amilies Ġtrue Ġto Ġignore Ġwrites Ġto Ġcolumn Ġfam ilies ĊĠĠĠĠ Ġ* Ġwhich Ġdon 't Ġexist ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġinstance Ġof Ġthe Ġcurrent ĠWrite Options . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Ignore Missing Column F amilies ( ĊĠĠĠĠĠĠĠ Ġignore Missing Column F amilies : ĠBoolean ĊĠĠĠ Ġ): ĠWrite Options ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġtrue Ġand Ġif Ġuser Ġis Ġtrying Ġto Ġwrite Ġto Ġcolumn Ġfam ilies Ġthat Ġdon 't Ġexist ĊĠĠĠĠ Ġ* Ġ( they Ġwere Ġdropped ), Ġignore Ġthe Ġwrite Ġ( don 't Ġreturn Ġan Ġerror ). ĠIf Ġthere ĊĠĠĠĠ Ġ* Ġare Ġmultiple Ġwrites Ġin Ġa ĠWrite Batch , Ġother Ġwrites Ġwill Ġsucceed . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠDefault : Ġfalse ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue Ġif Ġwrites Ġto Ġcolumn Ġfam ilies Ġwhich Ġdon 't Ġexist Ġare Ġignored ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġignore Missing Column F amilies (): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġtrue Ġand Ġwe Ġneed Ġto Ġwait Ġor Ġsleep Ġfor Ġthe Ġwrite Ġrequest , Ġfails ĊĠĠĠĠ Ġ* Ġimmediately Ġwith Ġ[ Status . Code . Incomplete ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġno Slow down Ġtrue Ġto Ġfail Ġwrite Ġrequests Ġif Ġwe Ġneed Ġto Ġwait Ġor Ġsleep ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġinstance Ġof Ġthe Ġcurrent ĠWrite Options . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset No Slow down ( no Slow down : ĠBoolean ): ĠWrite Options ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġtrue Ġand Ġwe Ġneed Ġto Ġwait Ġor Ġsleep Ġfor Ġthe Ġwrite Ġrequest , Ġfails ĊĠĠĠĠ Ġ* Ġimmediately Ġwith Ġ[ Status . Code . Incomplete ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue Ġwhen Ġwrite Ġrequests Ġare Ġfailed Ġif Ġwe Ġneed Ġto Ġwait Ġor Ġsleep ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġno Slow down (): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġtrue , Ġthis Ġwrite Ġrequest Ġis Ġof Ġlower Ġpriority Ġif Ġcomp action Ġis ĊĠĠĠĠ Ġ* Ġbehind . ĠIn Ġthis Ġcase Ġthat , Ġ[. no Slow down ] Ġ== Ġtrue , Ġthe Ġrequest ĊĠĠĠĠ Ġ* Ġwill Ġbe Ġcancelled Ġimmediately Ġwith Ġ[ Status . Code . Incomplete ] Ġreturned . ĊĠĠĠĠ Ġ* ĠOtherwise , Ġit Ġwill Ġbe Ġslow ed Ġdown . ĠThe Ġslow down Ġvalue Ġis Ġdetermined Ġby ĊĠĠĠĠ Ġ* ĠR ocks DB Ġto Ġguarantee Ġit Ġintroduces Ġminimum Ġimpact s Ġto Ġhigh Ġpriority Ġwrites . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠDefault : Ġfalse ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlow Pri Ġtrue Ġif Ġthe Ġwrite Ġrequest Ġshould Ġbe Ġof Ġlower Ġpriority Ġthan ĊĠĠĠĠ Ġ* Ġcomp actions Ġwhich Ġare Ġbehind . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġinstance Ġof Ġthe Ġcurrent ĠWrite Options . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Low Pri ( low Pri : ĠBoolean ): ĠWrite Options ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġtrue Ġif Ġthis Ġwrite Ġrequest Ġis Ġof Ġlower Ġpriority Ġif Ġcomp action Ġis ĊĠĠĠĠ Ġ* Ġbehind . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSee Ġ[. set Low Pri ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue Ġif Ġthis Ġwrite Ġrequest Ġis Ġof Ġlower Ġpriority , Ġfalse Ġotherwise . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġlow Pri (): ĠBoolean Ċ } Ċ