1.1.
RPCS ASSOCIATED WITH FIELDS
CHAPTER 1.
INTRODUCTION
1.1
RPCs associated with fields
Each field,
f
, has an RPC accessor associated with it that returns
f
’s value:
•
“
get f(Ref x)
”: takes a
Ref
that refers to an object and returns the value of
f
.
Each field,
f
, with attribute
RW
and whose outermost type is
Set
has the following additional
RPCs associated with it:
•
an “
add to f(Ref x, v)
” RPC adds a new element v to the set
1
;
•
a “
remove from f(Ref x, v)
” RPC removes element
v
from the set;
Each field,
f
, with attribute
RW
and whose outermost type is
Map
has the following additional
RPCs associated with it:
•
an “
add to f(Ref x, k, v)
” RPC adds new pair
(k, v)
to the mapping stored in
f
in
object
x
. Adding a new pair for duplicate key,
k
, overwrites any previous mapping for
k
.
•
a “
remove from f(Ref x, k)
” RPC removes the pair with key
k
from the mapping stored
in
f
in object
x
.
Each field whose outermost type is neither
Set
nor
Map
, but whose attribute is
RW
has an RPC
acessor associated with it that sets its value:
•
For
RW
(
R
ead/
W
rite), a “
set f(Ref x, v)
” RPC function is also provided. This sets field
f
on object
x
to value
v
.
1.2
RPCs associated with classes
•
Each class has a
constructor
RPC named “
create
” that takes as parameters all fields marked
RW
and
RO
ins
. The result of this RPC is that a new
persistent
object is created on the
server-side with the specified field values.
•
Each class has a
get by uuid(uuid)
RPC that returns the object of that class that has the
specified
uuid
.
•
Each class that has a
name label
field has a “
get by name label(name)
” RPC that returns
a set of objects of that class that have the specified
label
.
•
Each class has a “
destroy(Ref x)
” RPC that explicitly deletes the persistent object spec-
ified by
x
from the system. This is a non-cascading delete – if the object being removed is
referenced by another object then the
destroy
call will fail.
1.2.1
Additional RPCs
As well as the RPCs enumerated above, some classes have additional RPCs associated with them.
For example, the
VM
class has RPCs for cloning, suspending, starting etc. Such additional RPCs
are described explicitly in the API reference.
1
Since sets cannot contain duplicate values this operation has no action in the case that
v
was already in the
set.
6