Copied Types
The following three types are equivalent; the difference lies in what we consider to be legitimate values ...
Name: TYPE ~ XNSCHName.Name; -- valid name (or alias) of object
Pattern: TYPE ~ Name; -- may contain wildcards
Element: TYPE ~ Name; -- element of a group, needn't name an object
PropertyID: TYPE ~ CHOps.Property;
unspecified: PropertyID ~ CHOps.all;
AccessList: TYPE ~ CHACLOps.AccessList;
Conversation: TYPE ~ XNSCH.Conversation;
ElementStreamProc: TYPE ~ XNSCH.ElementStreamProc;
Operations on Property ACLs
ListMembersOfPropertyACL:
PROC [c: Conversation, pattern: Pattern, pID: PropertyID, acl: AccessList, eachMember: ElementStreamProc]
RETURNS [distingName: Name];
! Error
IsMemberOfPropertyACLClosure:
PROC [c: Conversation, pattern: Pattern, pID: PropertyID, acl: AccessList, member: Element, pID2: PropertyID ¬ unspecified]
RETURNS [distingName: Name, isMember:
BOOL];
! Error
AddMemberToPropertyACL:
PROC [c: Conversation, name: Name, pID: PropertyID, acl: AccessList, member: Element]
RETURNS [distingName: Name];
! Error
DeleteMemberFromPropertyACL:
PROC [c: Conversation, name: Name, pID: PropertyID, acl: AccessList, member: Element]
RETURNS [distingName: Name];
! Error
Operations on Domain ACLs
ListMembersOfDomainACL:
PROC [c: Conversation, domain: Name, acl: AccessList, eachMember: ElementStreamProc];
! Error
IsMemberOfDomainACLClosure:
PROC [c: Conversation, domain: Name, acl: AccessList, member: Element, pID2: PropertyID ¬ unspecified]
RETURNS [isMember:
BOOL];
! Error
AddMemberToDomainACL:
PROC [c: Conversation, domain: Name, acl: AccessList, member: Element];
! Error
DeleteMemberFromDomainACL:
PROC [c: Conversation, domain: Name, acl: AccessList, member: Element];
! Error
Operations on Organization ACLs
ListMembersOfOrganizationACL:
PROC [c: Conversation, organization: Name, acl: AccessList, eachMember: ElementStreamProc];
! Error
IsMemberOfOrganizationACLClosure:
PROC [c: Conversation, organization: Name, acl: AccessList, member: Element, pID2: PropertyID ¬ unspecified]
RETURNS [isMember:
BOOL];
! Error
AddMemberToOrganizationACL:
PROC [c: Conversation, organization: Name, acl: AccessList, member: Element];
! Error
DeleteMemberFromOrganizationACL:
PROC [c: Conversation, organization: Name, acl: AccessList, member: Element];
! Error
}.