@wildboar/rose
Version:
Remote Operation Service Element PDUs in TypeScript
52 lines (51 loc) • 2.32 kB
JavaScript
/* eslint-disable */
import { ASN1TagClass as _TagClass, } from '@wildboar/asn1';
import * as $ from '@wildboar/asn1/functional';
import { _decode_Invoke, _encode_Invoke, } from '../Remote-Operations-Generic-ROS-PDUs/Invoke.ta.mjs';
import { _decode_ReturnResult, _encode_ReturnResult, } from '../Remote-Operations-Generic-ROS-PDUs/ReturnResult.ta.mjs';
import { _decode_ReturnError, _encode_ReturnError, } from '../Remote-Operations-Generic-ROS-PDUs/ReturnError.ta.mjs';
import { _decode_Reject, _encode_Reject, } from '../Remote-Operations-Generic-ROS-PDUs/Reject.ta.mjs';
let _cached_decoder_for_ROS = null;
/**
* @summary Decodes an ASN.1 element into a(n) ROS
* @function
* @param {_Element} el The element being decoded.
* @returns {ROS} The decoded data structure.
*/
export function _decode_ROS(el) {
if (!_cached_decoder_for_ROS) {
_cached_decoder_for_ROS = $._decode_inextensible_choice({
'CONTEXT 1': ['invoke', $._decode_implicit(() => _decode_Invoke)],
'CONTEXT 2': [
'returnResult',
$._decode_implicit(() => _decode_ReturnResult),
],
'CONTEXT 3': [
'returnError',
$._decode_implicit(() => _decode_ReturnError),
],
'CONTEXT 4': ['reject', $._decode_implicit(() => _decode_Reject)],
});
}
return _cached_decoder_for_ROS(el);
}
let _cached_encoder_for_ROS = null;
/**
* @summary Encodes a(n) ROS into an ASN.1 Element.
* @function
* @param value The element being encoded.
* @param elGetter A function that can be used to get new ASN.1 elements.
* @returns {_Element} The ROS, encoded as an ASN.1 Element.
*/
export function _encode_ROS(value, elGetter) {
if (!_cached_encoder_for_ROS) {
_cached_encoder_for_ROS = $._encode_choice({
invoke: $._encode_implicit(_TagClass.context, 1, () => _encode_Invoke, $.BER),
returnResult: $._encode_implicit(_TagClass.context, 2, () => _encode_ReturnResult, $.BER),
returnError: $._encode_implicit(_TagClass.context, 3, () => _encode_ReturnError, $.BER),
reject: $._encode_implicit(_TagClass.context, 4, () => _encode_Reject, $.BER),
}, $.BER);
}
return _cached_encoder_for_ROS(value, elGetter);
}
/* eslint-enable */