Advertisement
Guest User

Untitled

a guest
Mar 26th, 2015
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. trait IntermittentlyAvailableResource
  2. trait AlwaysAvailableResource
  3. trait Transactional
  4. trait CleanupAfter
  5. sealed abstract class TransactionResults[A](val result: A)
  6.  
  7. class Something {
  8. def grabItemFromQueue: Future[Item] = ...
  9. def ifNoResourceAvailable = ...
  10. def queueItemCleanup(item: Item) = ....
  11. def queueItemTransactionCommit(item: Item) = /* delete from queue*/
  12.  
  13. val QueueGrabber grabs an IntermittentlyAvailableResource and performs an operation with Transactional and CleanupAfter ...
  14. (ifResourceNotAvailable execute ifResourceNotAvailable)(cleanup execute queueItemCleanup)(commit execute queueItemTransaction)
  15.  
  16. def something = {
  17. QueueGrabber.with{
  18. resource =>
  19. //operate on resource without worrying about cleanup, commit, availability, etc
  20. }
  21.  
  22. }
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement