SAI Metadata
Loading...
Searching...
No Matches
SAI - Serialize Definitions

Macros

#define SAI_SERIALIZE_ERROR   (-1)
 
#define SAI_CHARDATA_LENGTH   32
 

Functions

bool sai_serialize_is_char_allowed (_In_ char c)
 Is char allowed.
 
int sai_serialize_bool (_Out_ char *buffer, _In_ bool flag)
 Serialize bool value.
 
int sai_deserialize_bool (_In_ const char *buffer, _Out_ bool *flag)
 Deserialize bool value.
 
int sai_serialize_chardata (_Out_ char *buffer, _In_ const char data[SAI_CHARDATA_LENGTH])
 Serialize char data value.
 
int sai_deserialize_chardata (_In_ const char *buffer, _Out_ char data[SAI_CHARDATA_LENGTH])
 Deserialize char data value.
 
int sai_serialize_uint8 (_Out_ char *buffer, _In_ uint8_t u8)
 Serialize 8 bit unsigned integer.
 
int sai_deserialize_uint8 (_In_ const char *buffer, _Out_ uint8_t *u8)
 Deserialize 8 bit unsigned integer.
 
int sai_serialize_int8 (_Out_ char *buffer, _In_ int8_t u8)
 Serialize 8 bit signed integer.
 
int sai_deserialize_int8 (_In_ const char *buffer, _Out_ int8_t *s8)
 Deserialize 8 bit signed integer.
 
int sai_serialize_uint16 (_Out_ char *buffer, _In_ uint16_t u16)
 Serialize 16 bit unsigned integer.
 
int sai_deserialize_uint16 (_In_ const char *buffer, _Out_ uint16_t *u16)
 Deserialize 16 bit unsigned integer.
 
int sai_serialize_int16 (_Out_ char *buffer, _In_ int16_t s16)
 Serialize 16 bit signed integer.
 
int sai_deserialize_int16 (_In_ const char *buffer, _Out_ int16_t *s16)
 Deserialize 16 bit signed integer.
 
int sai_serialize_uint32 (_Out_ char *buffer, _In_ uint32_t u32)
 Serialize 32 bit unsigned integer.
 
int sai_deserialize_uint32 (_In_ const char *buffer, _Out_ uint32_t *u32)
 Deserialize 32 bit unsigned integer.
 
int sai_serialize_int32 (_Out_ char *buffer, _In_ int32_t s32)
 Serialize 32 bit signed integer.
 
int sai_deserialize_int32 (_In_ const char *buffer, _Out_ int32_t *s32)
 Deserialize 32 bit signed integer.
 
int sai_serialize_uint64 (_Out_ char *buffer, _In_ uint64_t u64)
 Serialize 64 bit unsigned integer.
 
int sai_deserialize_uint64 (_In_ const char *buffer, _Out_ uint64_t *u64)
 Deserialize 64 bit unsigned integer.
 
int sai_serialize_int64 (_Out_ char *buffer, _In_ int64_t s64)
 Serialize 64 bit signed integer.
 
int sai_deserialize_int64 (_In_ const char *buffer, _Out_ int64_t *s64)
 Deserialize 64 bit signed integer.
 
int sai_serialize_size (_Out_ char *buffer, _In_ sai_size_t size)
 Serialize sai_size_t.
 
int sai_deserialize_size (_In_ const char *buffer, _Out_ sai_size_t *size)
 Deserialize sai_size_t.
 
int sai_serialize_object_id (_Out_ char *buffer, _In_ sai_object_id_t object_id)
 Serialize object ID.
 
int sai_deserialize_object_id (_In_ const char *buffer, _Out_ sai_object_id_t *object_id)
 Deserialize object Id.
 
int sai_serialize_mac (_Out_ char *buffer, _In_ const sai_mac_t mac_address)
 Serialize MAC address.
 
int sai_deserialize_mac (_In_ const char *buffer, _Out_ sai_mac_t mac)
 Deserialize MAC address.
 
int sai_serialize_encrypt_key (_Out_ char *buffer, _In_ const sai_encrypt_key_t key)
 Serialize encrypt_key.
 
int sai_deserialize_encrypt_key (_In_ const char *buffer, _Out_ sai_encrypt_key_t key)
 Deserialize encrypt_key.
 
int sai_serialize_auth_key (_Out_ char *buffer, _In_ const sai_auth_key_t auth)
 Serialize auth_key.
 
int sai_deserialize_auth_key (_In_ const char *buffer, _Out_ sai_auth_key_t auth)
 Deserialize auth_key.
 
int sai_serialize_macsec_sak (_Out_ char *buffer, _In_ const sai_macsec_sak_t sak)
 Serialize macsec_sak.
 
int sai_deserialize_macsec_sak (_In_ const char *buffer, _Out_ sai_macsec_sak_t sak)
 Deserialize macsec_sak.
 
int sai_serialize_macsec_auth_key (_Out_ char *buffer, _In_ const sai_macsec_auth_key_t auth)
 Serialize macsec_auth_key.
 
int sai_deserialize_macsec_auth_key (_In_ const char *buffer, _Out_ sai_macsec_auth_key_t auth)
 Deserialize macsec_auth_key.
 
int sai_serialize_macsec_salt (_Out_ char *buffer, _In_ const sai_macsec_salt_t salt)
 Serialize macsec_salt.
 
int sai_deserialize_macsec_salt (_In_ const char *buffer, _Out_ sai_macsec_salt_t salt)
 Deserialize macsec_salt.
 
int sai_serialize_enum (_Out_ char *buffer, _In_ const sai_enum_metadata_t *meta, _In_ int32_t value)
 Serialize enum value.
 
int sai_deserialize_enum (_In_ const char *buffer, _In_ const sai_enum_metadata_t *meta, _Out_ int32_t *value)
 Deserialize enum value.
 
int sai_serialize_ip4 (_Out_ char *buffer, _In_ const sai_ip4_t ip4)
 Serialize IPv4 address.
 
int sai_deserialize_ip4 (_In_ const char *buffer, _Out_ sai_ip4_t *ip4)
 Deserialize IPv4 address.
 
int sai_serialize_ip6 (_Out_ char *buffer, _In_ const sai_ip6_t ip6)
 Serialize IPv6 address.
 
int sai_deserialize_ip6 (_In_ const char *buffer, _Out_ sai_ip6_t ip6)
 Deserialize IPv6 address.
 
int sai_serialize_ip_address (_Out_ char *buffer, _In_ const sai_ip_address_t *ip_address)
 Serialize IP address.
 
int sai_deserialize_ip_address (_In_ const char *buffer, _Out_ sai_ip_address_t *ip_address)
 Deserialize IP address.
 
int sai_serialize_ip_prefix (_Out_ char *buffer, _In_ const sai_ip_prefix_t *ip_prefix)
 Serialize IP prefix.
 
int sai_deserialize_ip_prefix (_In_ const char *buffer, _Out_ sai_ip_prefix_t *ip_prefix)
 Deserialize IP prefix.
 
int sai_serialize_ip4_mask (_Out_ char *buffer, _In_ sai_ip4_t ip4_mask)
 Serialize IPv4 mask.
 
int sai_deserialize_ip4_mask (_In_ const char *buffer, _Out_ sai_ip4_t *ip4_mask)
 Deserialize IPv4 mask.
 
int sai_serialize_ip6_mask (_Out_ char *buffer, _In_ const sai_ip6_t ip6_mask)
 Serialize IPv6 mask.
 
int sai_deserialize_ip6_mask (_In_ const char *buffer, _Out_ sai_ip6_t ip6_mask)
 Deserialize IPv6 mask.
 
int sai_serialize_pointer (_Out_ char *buffer, _In_ const sai_pointer_t pointer)
 Serialize pointer.
 
int sai_deserialize_pointer (_In_ const char *buffer, _Out_ sai_pointer_t *pointer)
 Deserialize pointer.
 
int sai_serialize_enum_list (_Out_ char *buffer, _In_ const sai_enum_metadata_t *meta, _In_ const sai_s32_list_t *s32_list)
 Serialize enum list.
 
int sai_deserialize_enum_list (_In_ const char *buffer, _In_ const sai_enum_metadata_t *meta, _Out_ sai_s32_list_t *s32_list)
 Deserialize enum list.
 
int sai_serialize_attr_id (_Out_ char *buffer, _In_ const sai_attr_metadata_t *meta, _In_ sai_attr_id_t attr_id)
 Serialize attribute id.
 
int sai_deserialize_attr_id (_In_ const char *buffer, _Out_ sai_attr_id_t *attr_id)
 Deserialize attribute id.
 
int sai_serialize_attribute (_Out_ char *buffer, _In_ const sai_attr_metadata_t *meta, _In_ const sai_attribute_t *attribute)
 Serialize SAI attribute.
 
int sai_deserialize_attribute (_In_ const char *buffer, _Out_ sai_attribute_t *attribute)
 Deserialize SAI attribute.
 
void sai_free_attribute (_In_ const sai_attr_metadata_t *meta, _In_ const sai_attribute_t *attribute)
 Free SAI attribute.
 

Detailed Description

Macro Definition Documentation

◆ SAI_CHARDATA_LENGTH

#define SAI_CHARDATA_LENGTH   32

Defines size of char data inside sai_attribute_value_t union.

Definition at line 47 of file saiserialize.h.

◆ SAI_SERIALIZE_ERROR

#define SAI_SERIALIZE_ERROR   (-1)

Returned from serialize/deserialize methods on any error. Meta log functions are used to produce specific error message.

Definition at line 40 of file saiserialize.h.

Function Documentation

◆ sai_deserialize_attr_id()

int sai_deserialize_attr_id ( _In_ const char *  buffer,
_Out_ sai_attr_id_t *  attr_id 
)

Deserialize attribute id.

Metadata is not needed since attribute ID is serialized as string, and it can point to unique attribute metadata.

Parameters
[in]bufferInput buffer to be examined.
[out]attr_idDeserialized attribute id.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_attribute()

int sai_deserialize_attribute ( _In_ const char *  buffer,
_Out_ sai_attribute_t attribute 
)

Deserialize SAI attribute.

Metadata is not needed since attribute ID is serialized as string, and it can point to unique attribute metadata.

Parameters
[in]bufferInput buffer to be examined.
[out]attributeDeserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_auth_key()

int sai_deserialize_auth_key ( _In_ const char *  buffer,
_Out_ sai_auth_key_t  auth 
)

Deserialize auth_key.

Parameters
[in]bufferInput buffer to be examined.
[out]authThe auth_key deserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_bool()

int sai_deserialize_bool ( _In_ const char *  buffer,
_Out_ bool *  flag 
)

Deserialize bool value.

Parameters
[in]bufferInput buffer to be examined.
[out]flagDeserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_chardata()

int sai_deserialize_chardata ( _In_ const char *  buffer,
_Out_ char  data[SAI_CHARDATA_LENGTH] 
)

Deserialize char data value.

Parameters
[in]bufferInput buffer to be examined.
[out]dataDeserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_encrypt_key()

int sai_deserialize_encrypt_key ( _In_ const char *  buffer,
_Out_ sai_encrypt_key_t  key 
)

Deserialize encrypt_key.

Parameters
[in]bufferInput buffer to be examined.
[out]keyThe encrypt_key deserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_enum()

int sai_deserialize_enum ( _In_ const char *  buffer,
_In_ const sai_enum_metadata_t meta,
_Out_ int32_t *  value 
)

Deserialize enum value.

If buffer will not contain valid enum name, function will attempt to deserialize value as signed 32 bit integer.

Parameters
[in]bufferInput buffer to be examined.
[in]metaEnum metadata.
[out]valueDeserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_enum_list()

int sai_deserialize_enum_list ( _In_ const char *  buffer,
_In_ const sai_enum_metadata_t meta,
_Out_ sai_s32_list_t s32_list 
)

Deserialize enum list.

If enum metadata is null, then list is deserialized using sai_deserialize_s32_list and it will not contain quotes.

Parameters
[in]bufferInput buffer to be examined.
[in]metaEnum metadata.
[out]s32_listDeserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_int16()

int sai_deserialize_int16 ( _In_ const char *  buffer,
_Out_ int16_t *  s16 
)

Deserialize 16 bit signed integer.

Parameters
[in]bufferInput buffer to be examined.
[out]s16Deserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_int32()

int sai_deserialize_int32 ( _In_ const char *  buffer,
_Out_ int32_t *  s32 
)

Deserialize 32 bit signed integer.

Parameters
[in]bufferInput buffer to be examined.
[out]s32Deserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_int64()

int sai_deserialize_int64 ( _In_ const char *  buffer,
_Out_ int64_t *  s64 
)

Deserialize 64 bit signed integer.

Parameters
[in]bufferInput buffer to be examined.
[out]s64Deserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_int8()

int sai_deserialize_int8 ( _In_ const char *  buffer,
_Out_ int8_t *  s8 
)

Deserialize 8 bit signed integer.

Parameters
[in]bufferInput buffer to be examined.
[out]s8Deserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_ip4()

int sai_deserialize_ip4 ( _In_ const char *  buffer,
_Out_ sai_ip4_t *  ip4 
)

Deserialize IPv4 address.

Parameters
[in]bufferInput buffer to be examined.
[out]ip4Deserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_ip4_mask()

int sai_deserialize_ip4_mask ( _In_ const char *  buffer,
_Out_ sai_ip4_t *  ip4_mask 
)

Deserialize IPv4 mask.

Parameters
[in]bufferInput buffer to be examined.
[out]ip4_maskDeserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_ip6()

int sai_deserialize_ip6 ( _In_ const char *  buffer,
_Out_ sai_ip6_t  ip6 
)

Deserialize IPv6 address.

Parameters
[in]bufferInput buffer to be examined.
[out]ip6Deserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_ip6_mask()

int sai_deserialize_ip6_mask ( _In_ const char *  buffer,
_Out_ sai_ip6_t  ip6_mask 
)

Deserialize IPv6 mask.

Parameters
[in]bufferInput buffer to be examined.
[out]ip6_maskDeserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_ip_address()

int sai_deserialize_ip_address ( _In_ const char *  buffer,
_Out_ sai_ip_address_t ip_address 
)

Deserialize IP address.

Parameters
[in]bufferInput buffer to be examined.
[out]ip_addressDeserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_ip_prefix()

int sai_deserialize_ip_prefix ( _In_ const char *  buffer,
_Out_ sai_ip_prefix_t ip_prefix 
)

Deserialize IP prefix.

Parameters
[in]bufferInput buffer to be examined.
[out]ip_prefixDeserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_mac()

int sai_deserialize_mac ( _In_ const char *  buffer,
_Out_ sai_mac_t  mac 
)

Deserialize MAC address.

Parameters
[in]bufferInput buffer to be examined.
[out]macDeserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_macsec_auth_key()

int sai_deserialize_macsec_auth_key ( _In_ const char *  buffer,
_Out_ sai_macsec_auth_key_t  auth 
)

Deserialize macsec_auth_key.

Parameters
[in]bufferInput buffer to be examined.
[out]authThe macsec_auth_key deserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_macsec_sak()

int sai_deserialize_macsec_sak ( _In_ const char *  buffer,
_Out_ sai_macsec_sak_t  sak 
)

Deserialize macsec_sak.

Parameters
[in]bufferInput buffer to be examined.
[out]sakThe macsec_sak deserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_macsec_salt()

int sai_deserialize_macsec_salt ( _In_ const char *  buffer,
_Out_ sai_macsec_salt_t  salt 
)

Deserialize macsec_salt.

Parameters
[in]bufferInput buffer to be examined.
[out]saltThe macsec_salt Deserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_object_id()

int sai_deserialize_object_id ( _In_ const char *  buffer,
_Out_ sai_object_id_t *  object_id 
)

Deserialize object Id.

Parameters
[in]bufferInput buffer to be examined.
[out]object_idDeserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_pointer()

int sai_deserialize_pointer ( _In_ const char *  buffer,
_Out_ sai_pointer_t *  pointer 
)

Deserialize pointer.

Parameters
[in]bufferInput buffer to be examined.
[out]pointerDeserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_size()

int sai_deserialize_size ( _In_ const char *  buffer,
_Out_ sai_size_t *  size 
)

Deserialize sai_size_t.

Parameters
[in]bufferInput buffer to be examined.
[out]sizeDeserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_uint16()

int sai_deserialize_uint16 ( _In_ const char *  buffer,
_Out_ uint16_t *  u16 
)

Deserialize 16 bit unsigned integer.

Parameters
[in]bufferInput buffer to be examined.
[out]u16Deserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_uint32()

int sai_deserialize_uint32 ( _In_ const char *  buffer,
_Out_ uint32_t *  u32 
)

Deserialize 32 bit unsigned integer.

Parameters
[in]bufferInput buffer to be examined.
[out]u32Deserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_uint64()

int sai_deserialize_uint64 ( _In_ const char *  buffer,
_Out_ uint64_t *  u64 
)

Deserialize 64 bit unsigned integer.

Parameters
[in]bufferInput buffer to be examined.
[out]u64Deserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_deserialize_uint8()

int sai_deserialize_uint8 ( _In_ const char *  buffer,
_Out_ uint8_t *  u8 
)

Deserialize 8 bit unsigned integer.

Parameters
[in]bufferInput buffer to be examined.
[out]u8Deserialized value.
Returns
Number of characters consumed from the buffer, or SAI_SERIALIZE_ERROR on error.

◆ sai_free_attribute()

void sai_free_attribute ( _In_ const sai_attr_metadata_t meta,
_In_ const sai_attribute_t attribute 
)

Free SAI attribute.

Parameters
[in]metaAttribute metadata.
[in]attributeAttribute to be freed.

◆ sai_serialize_attr_id()

int sai_serialize_attr_id ( _Out_ char *  buffer,
_In_ const sai_attr_metadata_t meta,
_In_ sai_attr_id_t  attr_id 
)

Serialize attribute id.

Parameters
[out]bufferOutput buffer for serialized value.
[in]metaAttribute metadata.
[in]attr_idAttribute id to be serialized
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_attribute()

int sai_serialize_attribute ( _Out_ char *  buffer,
_In_ const sai_attr_metadata_t meta,
_In_ const sai_attribute_t attribute 
)

Serialize SAI attribute.

Parameters
[out]bufferOutput buffer for serialized value.
[in]metaAttribute metadata.
[in]attributeAttribute to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_auth_key()

int sai_serialize_auth_key ( _Out_ char *  buffer,
_In_ const sai_auth_key_t  auth 
)

Serialize auth_key.

Parameters
[out]bufferOutput buffer for serialized value.
[in]authThe auth_key to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_bool()

int sai_serialize_bool ( _Out_ char *  buffer,
_In_ bool  flag 
)

Serialize bool value.

Parameters
[out]bufferOutput buffer for serialized value.
[in]flagBool flag to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_chardata()

int sai_serialize_chardata ( _Out_ char *  buffer,
_In_ const char  data[SAI_CHARDATA_LENGTH] 
)

Serialize char data value.

All printable characters (isprint) are allowed except '\' and '"'.

Parameters
[out]bufferOutput buffer for serialized value.
[in]dataData to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_encrypt_key()

int sai_serialize_encrypt_key ( _Out_ char *  buffer,
_In_ const sai_encrypt_key_t  key 
)

Serialize encrypt_key.

Parameters
[out]bufferOutput buffer for serialized value.
[in]keyThe encrypt_key to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_enum()

int sai_serialize_enum ( _Out_ char *  buffer,
_In_ const sai_enum_metadata_t meta,
_In_ int32_t  value 
)

Serialize enum value.

Buffer will contain actual enum name of number if enum value was not found in specified enum metadata.

Parameters
[out]bufferOutput buffer for serialized value.
[in]metaEnum metadata for serialization info.
[in]valueEnum value to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_enum_list()

int sai_serialize_enum_list ( _Out_ char *  buffer,
_In_ const sai_enum_metadata_t meta,
_In_ const sai_s32_list_t s32_list 
)

Serialize enum list.

If enum metadata is null, then list is serialized using sai_serialize_s32_list and it will not contain quotes.

Parameters
[out]bufferOutput buffer for serialized value.
[in]metaEnum metadata used to serialize.
[in]s32_listList of enum values to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_int16()

int sai_serialize_int16 ( _Out_ char *  buffer,
_In_ int16_t  s16 
)

Serialize 16 bit signed integer.

Parameters
[out]bufferOutput buffer for serialized value.
[in]s16Integer to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_int32()

int sai_serialize_int32 ( _Out_ char *  buffer,
_In_ int32_t  s32 
)

Serialize 32 bit signed integer.

Parameters
[out]bufferOutput buffer for serialized value.
[in]s32Integer to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_int64()

int sai_serialize_int64 ( _Out_ char *  buffer,
_In_ int64_t  s64 
)

Serialize 64 bit signed integer.

Parameters
[out]bufferOutput buffer for serialized value.
[in]s64Integer to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_int8()

int sai_serialize_int8 ( _Out_ char *  buffer,
_In_ int8_t  u8 
)

Serialize 8 bit signed integer.

Parameters
[out]bufferOutput buffer for serialized value.
[in]u8Integer to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_ip4()

int sai_serialize_ip4 ( _Out_ char *  buffer,
_In_ const sai_ip4_t  ip4 
)

Serialize IPv4 address.

Parameters
[out]bufferOutput buffer for serialized value.
[in]ip4IP address to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_ip4_mask()

int sai_serialize_ip4_mask ( _Out_ char *  buffer,
_In_ sai_ip4_t  ip4_mask 
)

Serialize IPv4 mask.

Mask will be serialized as single number like. Holes in mask are not supported.

Parameters
[out]bufferOutput buffer for serialized value.
[in]ip4_maskIPv4 mask to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_ip6()

int sai_serialize_ip6 ( _Out_ char *  buffer,
_In_ const sai_ip6_t  ip6 
)

Serialize IPv6 address.

Parameters
[out]bufferOutput buffer for serialized value.
[in]ip6IP address to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_ip6_mask()

int sai_serialize_ip6_mask ( _Out_ char *  buffer,
_In_ const sai_ip6_t  ip6_mask 
)

Serialize IPv6 mask.

Mask will be serialized as single number like. Holes in mask are not supported.

Parameters
[out]bufferOutput buffer for serialized value.
[in]ip6_maskIPv6 mask to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_ip_address()

int sai_serialize_ip_address ( _Out_ char *  buffer,
_In_ const sai_ip_address_t ip_address 
)

Serialize IP address.

Parameters
[out]bufferOutput buffer for serialized value.
[in]ip_addressIP address to be serialized
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_ip_prefix()

int sai_serialize_ip_prefix ( _Out_ char *  buffer,
_In_ const sai_ip_prefix_t ip_prefix 
)

Serialize IP prefix.

Parameters
[out]bufferOutput buffer for serialized value.
[in]ip_prefixIP prefix to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_is_char_allowed()

bool sai_serialize_is_char_allowed ( _In_ char  c)

Is char allowed.

Function checks if given char is one of the following:

  • '\0', '"', ',', ']', '}'

Since serialization is done to json format, after each value there may be some characters specific to json format, like:

  • quote, if value was in quotes (string)
  • comma, if value was without quotes but an item in array (number, bool)
  • square bracket, if item was last item in array (number, bool)
  • curly bracket, if item was last item in object (number, bool)

This means that deserialize is "relaxed", so each item don't need to end as zero '\0' but it can end on any of those characters. This allows us to deserialize json string reading it directly without creating json object tree and without any extra string copy. For example if we have item: {"foo":true}, we can just read value "true}" and ignore last character and still value will be deserialized correctly.

This is not ideal solution, but in this case it will work just fine.

NOTE: All auto generated methods will enforce to check extra characters at the end of each value.

◆ sai_serialize_mac()

int sai_serialize_mac ( _Out_ char *  buffer,
_In_ const sai_mac_t  mac_address 
)

Serialize MAC address.

Parameters
[out]bufferOutput buffer for serialized value.
[in]mac_addressMAC address to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_macsec_auth_key()

int sai_serialize_macsec_auth_key ( _Out_ char *  buffer,
_In_ const sai_macsec_auth_key_t  auth 
)

Serialize macsec_auth_key.

Parameters
[out]bufferOutput buffer for serialized value.
[in]authThe macsec_auth_key to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_macsec_sak()

int sai_serialize_macsec_sak ( _Out_ char *  buffer,
_In_ const sai_macsec_sak_t  sak 
)

Serialize macsec_sak.

Parameters
[out]bufferOutput buffer for serialized value.
[in]sakThe macsec_sak to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_macsec_salt()

int sai_serialize_macsec_salt ( _Out_ char *  buffer,
_In_ const sai_macsec_salt_t  salt 
)

Serialize macsec_salt.

Parameters
[out]bufferOutput buffer for serialized value.
[in]saltThe macsec_salt to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_object_id()

int sai_serialize_object_id ( _Out_ char *  buffer,
_In_ sai_object_id_t  object_id 
)

Serialize object ID.

Parameters
[out]bufferOutput buffer for serialized value.
[in]object_idObject ID to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_pointer()

int sai_serialize_pointer ( _Out_ char *  buffer,
_In_ const sai_pointer_t  pointer 
)

Serialize pointer.

Parameters
[out]bufferOutput buffer for serialized value.
[in]pointerPointer to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_size()

int sai_serialize_size ( _Out_ char *  buffer,
_In_ sai_size_t  size 
)

Serialize sai_size_t.

Parameters
[out]bufferOutput buffer for serialized value.
[in]sizeSize to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_uint16()

int sai_serialize_uint16 ( _Out_ char *  buffer,
_In_ uint16_t  u16 
)

Serialize 16 bit unsigned integer.

Parameters
[out]bufferOutput buffer for serialized value.
[in]u16Integer to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_uint32()

int sai_serialize_uint32 ( _Out_ char *  buffer,
_In_ uint32_t  u32 
)

Serialize 32 bit unsigned integer.

Parameters
[out]bufferOutput buffer for serialized value.
[in]u32Integer to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_uint64()

int sai_serialize_uint64 ( _Out_ char *  buffer,
_In_ uint64_t  u64 
)

Serialize 64 bit unsigned integer.

Parameters
[out]bufferOutput buffer for serialized value.
[in]u64Integer to be serialized.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.

◆ sai_serialize_uint8()

int sai_serialize_uint8 ( _Out_ char *  buffer,
_In_ uint8_t  u8 
)

Serialize 8 bit unsigned integer.

Parameters
[out]bufferOutput buffer for serialized value.
[in]u8Deserialized value.
Returns
Number of characters written to buffer excluding '\0', or SAI_SERIALIZE_ERROR on error.