Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- trait Cake
- extends OrderedBlockFileDSModule[IO]
- with NettySyncModule[IO]
- with VanillaServer[IO]
- with IndexModuleImpl[IO] {
- override val M = IO.ioMonad
- def main(): IO[RRUnit] = for {
- syncer <- Syncer(listener)
- tracker = syncer.tracker
- data <- readDataFromUser
- chunks = splitIntoChunks(data, Config.BlockSize)
- blocks <- chunks traverse balloc
- extent <- store(blocks)
- _ <- extent.blocks traverse { block => tracker.publishBlock(block.hash, true) }
- _ <- syncer.run.run
- }
- def listener: StepT[Block, IO, A] = {
- StepT.Cont { in =>
- in.fold(
- el = { block => putStrLn(block.hash) },
- ....)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement