[cap-talk] use cases for whiteboard (update)

John Carlson john.carlson3 at sbcglobal.net
Sat Jun 10 12:37:28 EDT 2006


Here are my use cases for the whiteboard again.  Maybe some  
explaination is needed.
I have replaced Server:SELECT with Server:TRIGGER.

The basic form is

Return Value <- Function Parameters

The return value and parameters may have a preceding user name.  This
is the person who the capability was created for.

John


As Alice:
Alice:INBOX_CAP <- Server:CREATE "INBOX" "alice at alice.com"
Alice:INSERT_INBOX_CAP <- Server:FACET Alice:INBOX_CAP "INSERT"
Alice:SELECT_INBOX_CAP <- Server:FACET Alice:INBOX_CAP "SELECT"
Alice:DELETE_INBOX_CAP <- Server:FACET Alice:INBOX_CAP "DELETE"

As Bob:
Bob:INBOX_CAP <- Server:CREATE "INBOX" "bob at bob.com"
Bob:INSERT_INBOX_CAP <- Server:FACET Bob:INBOX_CAP "INSERT"
Bob:SELECT_INBOX_CAP <- Server:FACET Bob:INBOX_CAP "SELECT"
Bob:DELETE_INBOX_CAP <- Server:FACET Bob:INBOX_CAP "DELETE"

As Carol:
Server:ERROR <- Server:CREATE "INBOX" "bob at bob.com"

As Alice:
Alice:REVOKE_INBOX_CAP <- Server:PUBLISH Alice:INSERT_INBOX_CAP  
"bob at bob.com"

As Bob:
Bob:REVOKE_INBOX_CAP <- Server:PUBLISH Bob:INSERT_INBOX_CAP  
"alice at alice.com"
Alice:INSERT_INBOX_CAP <- Server:TRIGGER Bob:SELECT_INBOX_CAP

As Alice:
Bob:INSERT_INBOX_CAP <- Server:TRIGGER Alice:SELECT_INBOX_CAP
Alice:WHITEBOARD_CAP <- Server:CREATE "WHITEBOARD"
Alice:INSERT_WHITEBOARD_CAP <- Server:FACET Alice:WHITEBOARD_CAP  
"INSERT"
Alice:SELECT_WHITEBOARD_CAP <- Server:FACET Alice:WHITEBOARD_CAP  
"SELECT"
Alice:UPDATE_WHITEBOARD_CAP <- Server:FACET Alice:WHITEBOARD_CAP  
"UPDATE"
Alice:ERASE_WHITEBOARD_CAP <- Server:FACET Alice:WHITEBOARD_CAP "DELETE"
Alice:boolean <- Server:INSERT Bob:INSERT_INBOX_CAP  
Alice:SELECT_WHITEBOARD_CAP
Alice:NODE_CAP1 <- Server:CREATE "NODE"
Alice:boolean <- Server:INSERT Alice:INSERT_WHITEBOARD_CAP  
Alice:NODE_CAP1 x1 y1 z1
Alice:boolean <- Server:UPDATE Alice:UPDATE_WHITEBOARD_CAP  
Alice:NODE_CAP1 x2 y2 z2
Alice:NODE_CAP2 <- Server:CREATE "NODE"
Alice:boolean <- Server:INSERT Alice:INSERT_WHITEBOARD_CAP  
Alice:NODE_CAP2 x3 y3 z3
Alice:ARC_CAP <- Server:CREATE "ARC"
Alice:DETACH_CAP1<- Server:ATTACH Alice:ARC_CAP Alice_NODE_CAP1
Alice:DETACH_CAP2<- Server:ATTACH Alice:ARC_CAP Alice_NODE_CAP2
Alice:boolean <- Server:INSERT Bob:INSERT_INBOX_CAP Alice:DETACH_CAP1
Alice:boolean <- Server:INSERT Bob:INSERT_INBOX_CAP Alice:DETACH_CAP2
Alice:boolean <- Server:INSERT Bob:INSERT_INBOX_CAP  
Alice:ERASE_WHITEBOARD_CAP

As Bob:
Alice:SELECT_WHITEBOARD_CAP <- Server:TRIGGER Bob:SELECT_INBOX_CAP
Loop:
         Bob:WHITEBOARD_GUI <- Server:TRIGGER  
Alice:SELECT_WHITEBOARD_CAP
                 Alice:NODE_CAP1 <-
                 Alice:NODE_CAP1 <-
                 Alice:NODE_CAP2 <-
                 Alice:ARC_CAP <-
Otherwise:
Alice:DETACH_CAP1 <- Server:TRIGGER Bob:SELECT_INBOX_CAP
Alice:DETACH_CAP2 <- Server:TRIGGER Bob:SELECT_INBOX_CAP
Bob:boolean <- Server:DETACH Alice:DETACH_CAP1
Bob:boolean <- Server:DETACH Alice:DETACH_CAP2
Alice:ERASE_WHITEBOARD_CAP <- Server:TRIGGER Bob:SELECT_INBOX_CAP
Bob:boolean <- Server:DELETE Alice:ERASE_WHITEBOARD_CAP Alice:ARC_CAP
Bob:boolean <- Server:DELETE Alice:ERASE_WHITEBOARD_CAP Alice:NODE_CAP1
Bob:boolean <- Server:DELETE Alice:ERASE_WHITEBOARD_CAP Alice:NODE_CAP2

As Alice:
Loop:
         Alice:WHITEBOARD_GUI <- Server:TRIGGER  
Alice:ERASE_WHITEBOARD_CAP
                 Alice:ARC_CAP <-
                 Alice:NODE_CAP1 <-
                 Alice:NODE_CAP2 <-



More information about the cap-talk mailing list