api.fabaccess-api/traits/lockers.capnp
Nadja von Reitzenstein Čerpnjak d7c26ed4c1 Add traits
2024-04-16 14:37:41 +02:00

42 lines
1.2 KiB
Cap'n Proto

@0x82abdb5c1dcf399d;
using import "traits.capnp".TraitSuper;
using import "utils.capnp".Fallible;
using import "traits_error.capnp".TraitError;
# OID for this trait: 1.3.6.1.4.1.61783.612.1.4
# │ │ │ │
# RLKM UG PEN ╯ │ │ │
# │ │ │
# FabAccess subtree ╯ │ │
# │ │
# Traits ╯ │
# │
# Lockers ╯
interface TraitLocker extends (TraitSuper) {
getState @0 () -> StateLocker;
engage @1 () -> Fallible(TraitLocker, TraitError(ErrorLocker))
unengage @2 () -> Fallible(TraitLocker, TraitError(ErrorLocker));
}
struct StateLocker {
union {
locked @0 :Void;
unlocked @1 :Void;
open @2 :Void;
unenganged @3 :Void;
}
}
struct ErrorLocker {
union {
isLocked @0 :Void;
isUnlocked @1 :Void;
isOpen @2 :Void;
incomplete @3 :AnyPointer;
# Object is incomplete in some way.
# TODO: Define this interface
}
}