X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/8c6fa3fbaccc22127280bf77a48fab5a3ee0716e..46b0747592074017ff0ea4b33d4a7194235886e5:/stargazer/plugins/other/smux/value2os.h diff --git a/stargazer/plugins/other/smux/value2os.h b/stargazer/plugins/other/smux/value2os.h new file mode 100644 index 00000000..c069affd --- /dev/null +++ b/stargazer/plugins/other/smux/value2os.h @@ -0,0 +1,64 @@ +#ifndef __VALUE_2_OS_H__ +#define __VALUE_2_OS_H__ + +#include "stg/ObjectSyntax.h" + +template +bool ValueToOS(const T & value, ObjectSyntax * objectSyntax); + +template <> +inline +bool ValueToOS(const int & value, ObjectSyntax * objectSyntax) +{ +objectSyntax->present = ObjectSyntax_PR_simple; +SimpleSyntax_t * simpleSyntax = &objectSyntax->choice.simple; +simpleSyntax->present = SimpleSyntax_PR_number; +asn_long2INTEGER(&simpleSyntax->choice.number, value); +return true; +} + +template <> +inline +bool ValueToOS(const unsigned int & value, ObjectSyntax * objectSyntax) +{ +objectSyntax->present = ObjectSyntax_PR_simple; +SimpleSyntax_t * simpleSyntax = &objectSyntax->choice.simple; +simpleSyntax->present = SimpleSyntax_PR_number; +asn_long2INTEGER(&simpleSyntax->choice.number, value); +return true; +} + +template <> +inline +bool ValueToOS(const long & value, ObjectSyntax * objectSyntax) +{ +objectSyntax->present = ObjectSyntax_PR_simple; +SimpleSyntax_t * simpleSyntax = &objectSyntax->choice.simple; +simpleSyntax->present = SimpleSyntax_PR_number; +asn_long2INTEGER(&simpleSyntax->choice.number, value); +return true; +} + +template <> +inline +bool ValueToOS(const unsigned long & value, ObjectSyntax * objectSyntax) +{ +objectSyntax->present = ObjectSyntax_PR_simple; +SimpleSyntax_t * simpleSyntax = &objectSyntax->choice.simple; +simpleSyntax->present = SimpleSyntax_PR_number; +asn_long2INTEGER(&simpleSyntax->choice.number, value); +return true; +} + +template <> +inline +bool ValueToOS(const std::string & value, ObjectSyntax * objectSyntax) +{ +objectSyntax->present = ObjectSyntax_PR_simple; +SimpleSyntax_t * simpleSyntax = &objectSyntax->choice.simple; +simpleSyntax->present = SimpleSyntax_PR_string; +OCTET_STRING_fromBuf(&simpleSyntax->choice.string, value.c_str(), static_cast(value.length())); +return true; +} + +#endif