X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/76e975a593f0194edcbfbfc952eb391b2b8605cf..296c906e2689b9b5dc26d2f2d3e1e2d9e1662d3b:/projects/stargazer/plugins/other/smux/value2os.h diff --git a/projects/stargazer/plugins/other/smux/value2os.h b/projects/stargazer/plugins/other/smux/value2os.h index 420616a1..9084aa72 100644 --- a/projects/stargazer/plugins/other/smux/value2os.h +++ b/projects/stargazer/plugins/other/smux/value2os.h @@ -1,20 +1,61 @@ -#ifndef __VALUE_2_OS_H__ -#define __VALUE_2_OS_H__ +#pragma once +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wold-style-cast" #include "stg/ObjectSyntax.h" +#pragma GCC diagnostic pop + +#include template -bool ValueToOS(const T & value, ObjectSyntax * objectSyntax); +void ValueToOS(const T & value, ObjectSyntax * objectSyntax); + +template <> +inline +void 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); +} + +template <> +inline +void 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); +} template <> inline -bool ValueToOS(const int & value, ObjectSyntax * objectSyntax) +void 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; } -#endif +template <> +inline +void 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); +} + +template <> +inline +void 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())); +}