XMesaCmplr16DefsC:
DEFINITIONS = {
AttributeType:
TYPE =
MACHINE
DEPENDENT{
protocol-documented
checksum(0), childrenUniquelyNamed(1), createdBy(2), createdOn(3),
fileID(4), isDirectory(5), isTemporary(6), modifiedBy(7), modifiedOn(8),
name(9), numberOfChildren(10), ordering(11), parentID(12), position(13),
readBy(14), readOn(15), sizeInBytes(16), type(17), version(18),
protocol-undocumented
accessList(19), defaultAccessList(20), pathname(21),
locally interpreted
service(22), backedUpOn(23), filedBy(24), filedOn(25),
sizeInPages(26), subtreeSize(27), subtreeSizeLimit(28),
other
extended(29)};
ExtendedAttributeType: TYPE = LONG CARDINAL;
ControlType: TYPE = MACHINE DEPENDENT {lock(0), timeout(1), access(2)};
ScopeType:
TYPE =
MACHINE
DEPENDENT{
-- Used for error reporting
count(0), direction(1), filter(2), ordering(3), depth(4)};
Error: ERROR [error: ErrorRecord];
ErrorRecord:
TYPE =
RECORD [
SELECT errorType: ErrorType
FROM
access => [problem: AccessProblem],
attributeType, attributeValue =>
[problem : ArgumentProblem, type: AttributeType,
extendedType: ExtendedAttributeType ←
-- relevant iff type = extended --
LAST[ExtendedAttributeType]],
authentication => [problem: AuthenticationProblem],
clearingHouse => [problem: ClearinghouseProblem],
connection => [problem: ConnectionProblem],
controlType, controlValue => [problem: ArgumentProblem, type: ControlType],
handle => [problem: HandleProblem],
insertion => [problem: InsertionProblem],
range => [problem: ArgumentProblem],
scopeType, scopeValue => [problem: ArgumentProblem, type: ScopeType],
service => [problem: ServiceProblem],
session => [problem: SessionProblem],
space => [problem: SpaceProblem],
transfer => [problem: TransferProblem],
undefined => [problem: UndefinedProblem]
ENDCASE];
ErrorType:
TYPE = {
access, -- problem in obtaining access to a file
attributeType, attributeValue, -- problem with an attribute type or value
authentication, -- problem with credentials or verifier
clearingHouse, -- problem with CH interaction
connection, -- problem with a bulk data transfer
controlType, controlValue, -- problem with a control type or value
handle, -- problem with a file handle
insertion, -- problem during insertion in directory (or changing attributes)
range, -- problem with random access argument
scopeType, scopeValue, -- problem with a scope type or value
service, -- problem during Logon or Logoff
session, -- problem with a session handle
space, -- insufficient resources for operation
transfer, -- problem during bulk data transfer
undefined -- some undefined (and implementation-dependent) problem occurred
};
AccessProblem:
TYPE =
MACHINE
DEPENDENT {
accessRightsInsufficient(0), -- the user doesn't have access
accessRightsIndeterminate(1), -- cannot determine whether the user has access
fileChanged(2), -- in such a way that operation cannot continue
fileDamaged(3), -- this file should not be used
fileInUse(4), -- file is still unavailable after expiration of timeout
fileNotFound(5), -- the file does not exist in the specified context
fileOpen(6), -- the file cannot be moved or deleted while it is open
fileNotLocal(7)}; -- the requested operation is illegal for remote files
ArgumentProblem:
TYPE =
MACHINE
DEPENDENT {
illegal(0), -- this type or value is never allowed
disallowed(1), -- this type or value is not allowed in this operation
unreasonable(2), -- this type or value does not make sense in this context
unimplemented(3), -- this type or value is not supported in this implementation
duplicated(4), -- this type or value is specified twice
missing(5)}; -- this type or value is not specified where it is required
AuthenticationProblem:
TYPE = {
cannotReachAS, -- could not reach service to initiate authentication.
credentialsInvalid, -- identity was not valid.
credentialsTooWeak, -- stronger authentication flavor required.
keysUnavailable, -- required resource unavailable.
other, -- unanticipated error in authentication.
simpleKeyDoesNotExist, -- no simple authentication key found.
strongKeyDoesNotExist, -- no strong authentication key found.
tooBusy}; -- authentication service too busy to handle the request.
ClearinghouseProblem:
TYPE = {
notAllowed, -- operation prevented by access controls.
rejectedTooBusy, -- server is too busy to service this request.
allDown, -- remote CHServer was down and it was needed for this operation.
illegalOrgName, -- org name has illegal length or illegal characters.
illegalDomainName, -- domain name has illegal length or characters.
illegalLocalName, -- local name has illegal length or illegal characters.
noSuchOrg, -- the specified organization does not exist.
noSuchDomain, -- the specified domain does not exist in the organization.
noSuchLocal, -- the specified local does not exist in the domain.
other, -- unanticipated error in Clearinghouse interaction.
wasUpNowDown};
ConnectionProblem:
TYPE =
MACHINE
DEPENDENT {
noRoute(0), -- no route to the other party could be found
noResponse(1), -- the other party never answered
transmissionHardware(2), -- local transmission hardware was inoperable
transportTimeout(3), -- other party responded but later failed to respond
tooManyLocalConnections(4), -- no additional connection is possible
tooManyRemoteConnections(5), -- the other party rejected the connection
missingCourier(6), -- other party had no Courier implementation
missingProgram(7), -- other party did not implement bulk data program
missingProcedure(8), -- other party did no implement the procedure
protocolMismatch(9), -- two parties have no Courier version in common
parameterInconsistency(10), -- a protocol violation occurred in parameters
invalidMessage(11), -- a protocol violation occurred in message format
returnTimedOut(12), -- the procedure call never returned
otherCallProblem(LAST[CARDINAL])}; -- other protocol violation during call
HandleProblem:
TYPE =
MACHINE
DEPENDENT {
invalid(0), -- this file handle is not valid
nullDisallowed(1), -- a null handle is not allowed here
directoryRequired(2), -- the handle must refer to a directory
obsolete(3), -- the specified file handle is no longer valid
nullRequired(4)}; -- a null handle is required here
InsertionProblem:
TYPE =
MACHINE
DEPENDENT {
positionUnavailable(0), -- no "point" at which to insert in order-by-position
fileNotUnique(1), -- identifying information (e.g. name) is not unique
loopInHierarchy(2)}; -- cyclic directory structures are illegal
ServiceProblem:
TYPE =
MACHINE
DEPENDENT {
cannotAuthenticate(0), -- cannot reach authentication service, for example
serviceFull(1), -- no more logons can be accepted
serviceUnavailable(2), -- logons are not being accepted
sessionInUse(3), -- cannot logoff while an operation is in progress
serviceUnknown(4)}; -- no such service
SessionProblem:
TYPE =
MACHINE
DEPENDENT {
sessionInvalid(0)}; -- the session is invalid
SpaceProblem:
TYPE =
MACHINE
DEPENDENT {
allocationExceeded(0), -- specifically-allocated file space exceeded
attributeAreaFull(1), -- no more attributes may be stored on file
mediumFull(2)}; -- no more room is available on the medium
TransferProblem:
TYPE =
MACHINE
DEPENDENT {
aborted(0), -- the transfer was aborted by the client
checksumIncorrect(1), -- the checksum attribute was found to be incorrect
formatIncorrect(2), -- bulk data from source did not have proper format
noRendezvous(3), -- the identifier of the other party never appeared
wrongDirection(4)}; -- the other party wished to transfer data in wrong direction
UndefinedProblem: TYPE = CARDINAL; -- implementation dependent
}.