nl::Weave::Encoding::BigEndian

此命名空間提供的函式包括:

摘要

  • 根據主機系統的相關位元組重新排序,按照 16、32 位元和 64 位元型別的大型位元組排序值值執行位元組重新排序。
  • 安全地執行簡單、高效率的記憶體對應存取作業 (可能與未對齊的記憶體位置 (無論是否有位元組重新排序) 到 8、16、32 和 64 位元大端位元組排序,無論有/不使用指標管理都沒問題)。

在大型端的主機系統中,不會實際進行位元組重新排序。在其他系統中,系統會適當地重新排序位元組。

函式

Get16(const uint8_t *p)
uint16_t
從指定指標位址對大型端位元組排序的 16 位元值執行 (可能未對齊) 讀取,然後視需要執行位元組重新排序,讓目標系統能夠將值放入目標系統位元組順序。
Get32(const uint8_t *p)
uint32_t
從指定指標位址對大型端位元組排序的 32 位元值執行 (可能未對齊) 讀取,然後視需要執行位元組重新排序,讓目標系統能夠將值放入目標系統位元組順序。
Get64(const uint8_t *p)
uint64_t
從指定指標位址執行一個可能未對齊且內容為 64 位元位元組排序的大型記憶體讀取,視需要執行位元組重新排序,讓目標系統能夠將值放入目標系統位元組順序。
HostSwap16(uint16_t v)
uint16_t
這會有條件執行至目標系統有必要時按照指定 16 位元值的值交換位元組順序,並假設為傳送至目標系統的位元組順序交換 (即
HostSwap32(uint32_t v)
uint32_t
這會有條件執行至目標系統有必要時按照指定 32 位元值的值交換位元組順序,並假設為傳送至目標系統的位元組順序交換 (即
HostSwap64(uint64_t v)
uint64_t
這會有條件執行至目標系統有必要時按照指定 64 位元值的值交換位元組順序,並假設為傳送至目標系統的位元組順序交換 (即
Put16(uint8_t *p, uint16_t v)
void
對目標系統位元組排序 16 位元值,執行未對齊、可能未對齊至指定的指標位址,然後視需要執行位元組重新排序,讓目標系統能夠以大端位元組順序排列值。
Put32(uint8_t *p, uint32_t v)
void
對目標系統位元組排序的 32 位元值,執行未對齊且可能未對齊的記憶體寫入指定指標位址,然後視需要執行位元組重新排序,讓目標系統能夠以大端位元組順序排列值。
Put64(uint8_t *p, uint64_t v)
void
針對目標系統位元組排序的 64 位元值,執行未對齊且可能未對齊的記憶體寫入指定指標位址,然後視需要執行位元組重新排序,讓目標系統能夠以大端位元組順序排列值。
Read16(uint8_t *& p)
uint16_t
從指定指標位址執行一個可能未對齊且內容為 16 位元位元組排序的大端位元組讀取,視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並以 16 位元 (2 位元組) 為單位來增加指標。
Read16(const uint8_t *& p)
uint16_t
從指定指標位址執行一個可能未對齊且內容為 16 位元位元組排序的大端位元組讀取,視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並以 16 位元 (2 位元組) 為單位來增加指標。
Read32(uint8_t *& p)
uint32_t
從指定指標位址執行一個可能未對齊且內容為 32 位元位元組排序的大端位元組讀取,視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並以 32 位元 (4 個位元組) 為單位遞增指標。
Read32(const uint8_t *& p)
uint32_t
從指定指標位址執行一個可能未對齊且內容為 32 位元位元組排序的大端位元組讀取,視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並以 32 位元 (4 個位元組) 為單位遞增指標。
Read64(uint8_t *& p)
uint64_t
從指定指標位址執行一個可能未對齊且內容為 64 位元位元組排序的大型記憶體讀取,視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並以 64 位元 (8 位元組) 將指標遞增。
Read64(const uint8_t *& p)
uint64_t
從指定指標位址執行一個可能未對齊且內容為 64 位元位元組排序的大型記憶體讀取,視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並以 64 位元 (8 位元組) 將指標遞增。
Write16(uint8_t *& p, uint16_t v)
void
對目標系統位元組排序 16 位元值,執行未對齊、可能未對齊至指定的指標位址,然後視需要執行位元組重新排序,讓目標系統能夠以大端位元組順序排列值。
Write32(uint8_t *& p, uint32_t v)
void
對目標系統位元組排序的 32 位元值,執行未對齊且可能未對齊的記憶體寫入指定指標位址,然後視需要執行位元組重新排序,讓目標系統能夠以大端位元組順序排列值。
Write64(uint8_t *& p, uint64_t v)
void
針對目標系統位元組排序的 64 位元值,執行未對齊且可能未對齊的記憶體寫入指定指標位址,然後視需要執行位元組重新排序,讓目標系統能夠以大端位元組順序排列值。

函式

Get16

uint16_t Get16(
  const uint8_t *p
)

從指定指標位址對大型端位元組排序的 16 位元值執行 (可能未對齊) 讀取,然後視需要執行位元組重新排序,讓目標系統能夠將值放入目標系統位元組順序。

詳細說明
參數
[in] p
指標位址,可能未對齊,用於讀取 16 位元大端位元組排序值。
傳回
視需要重新排序指定指標位址的 16 位元值。

Get32

uint32_t Get32(
  const uint8_t *p
)

從指定指標位址對大型端位元組排序的 32 位元值執行 (可能未對齊) 讀取,然後視需要執行位元組重新排序,讓目標系統能夠將值放入目標系統位元組順序。

詳細說明
參數
[in] p
指標位址,可能未對齊,用於讀取 32 位元大端位元組排序值。
傳回
視需要重新排序指定指標位址的 32 位元值。

Get64

uint64_t Get64(
  const uint8_t *p
)

從指定指標位址執行一個可能未對齊且內容為 64 位元位元組排序的大型記憶體讀取,視需要執行位元組重新排序,讓目標系統能夠將值放入目標系統位元組順序。

詳細說明
參數
[in] p
指標位址,可能未對齊,用於讀取 64 位元大端位元組排序值。
傳回
視需要重新排序指定指標位址的 64 位元值。

HostSwap16

uint16_t HostSwap16(
  uint16_t v
)

這會有條件執行至目標系統有必要時按照指定 16 位元值的值交換位元組順序,並假設為傳送至目標系統的位元組順序交換 (即

位元組排序。

因此,在位元端的目標系統中,這是免人工管理,在大型目標系統中,這會執行重新排序。

詳細說明
參數
[in] v
要交換的 16 位元值。
傳回
輸入的值 (如有必要,已交換位元組順序)。

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

這會有條件執行至目標系統有必要時按照指定 32 位元值的值交換位元組順序,並假設為傳送至目標系統的位元組順序交換 (即

位元組排序。

因此,在位元端的目標系統中,這是免人工管理,在大型目標系統中,這會執行重新排序。

詳細說明
參數
[in] v
要交換的 32 位元值。
傳回
輸入的值 (如有必要,已交換位元組順序)。

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

這會有條件執行至目標系統有必要時按照指定 64 位元值的值交換位元組順序,並假設為傳送至目標系統的位元組順序交換 (即

位元組排序。

因此,在位元端的目標系統中,這是免人工管理,在大型目標系統中,這會執行重新排序。

詳細說明
參數
[in] v
要交換的 64 位元值。
傳回
輸入的值 (如有必要,已交換位元組順序)。

Put16

void Put16(
  uint8_t *p,
  uint16_t v
)

對目標系統位元組排序 16 位元值,執行未對齊、可能未對齊至指定的指標位址,然後視需要執行位元組重新排序,讓目標系統能夠以大端位元組順序排列值。

詳細說明
參數
[in] p
指標位址,可能未對齊,用於將已排序 16 位元值的目標系統位元組以大端位元組順序寫入。
[in] v
要寫入的 16 位元值 (如有必要,已交換位元組順序)。

Put32

void Put32(
  uint8_t *p,
  uint32_t v
)

對目標系統位元組排序的 32 位元值,執行未對齊且可能未對齊的記憶體寫入指定指標位址,然後視需要執行位元組重新排序,讓目標系統能夠以大端位元組順序排列值。

詳細說明
參數
[in] p
指標位址,可能未對齊,用於以大端序位元組順序將目標系統位元組排序的 32 位元值寫入目標系統位元組。
[in] v
要寫入的 32 位元值 (如有必要,已交換位元組順序)。

Put64

void Put64(
  uint8_t *p,
  uint64_t v
)

針對目標系統位元組排序的 64 位元值,執行未對齊且可能未對齊的記憶體寫入指定指標位址,然後視需要執行位元組重新排序,讓目標系統能夠以大端位元組順序排列值。

詳細說明
參數
[in] p
指標位址,可能未對齊,用於以大端序位元組順序將目標系統位元組的 64 位元值寫入目標系統位元組。
[in] v
要寫入的 64 位元值 (如有必要,已交換位元組順序)。

Read16

uint16_t Read16(
  uint8_t *& p
)

從指定指標位址執行一個可能未對齊且內容為 16 位元位元組排序的大端位元組讀取,視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並以 16 位元 (2 位元組) 為單位來增加指標。

詳細說明
參數
[in,out] p
指標位址的參照,可能未對齊,用於讀取 16 位元大端位元組排序值,然後以 16 位元 (2 位元組) 遞增。
傳回
指定指標位址的 16 位元值 (如有必要,已替換位元組順序)。

Read16

uint16_t Read16(
  const uint8_t *& p
)

從指定指標位址執行一個可能未對齊且內容為 16 位元位元組排序的大端位元組讀取,視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並以 16 位元 (2 位元組) 為單位來增加指標。

詳細說明
參數
[in,out] p
常數指標位址的參照 (可能未對齊),用於讀取 16 位元大端位元組排序值的參照值,然後以 16 位元 (2 位元組) 遞增。
傳回
指定指標位址的 16 位元值 (如有必要,已替換位元組順序)。

Read32

uint32_t Read32(
  uint8_t *& p
)

從指定指標位址執行一個可能未對齊且內容為 32 位元位元組排序的大端位元組讀取,視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並以 32 位元 (4 個位元組) 為單位遞增指標。

詳細說明
參數
[in,out] p
指標位址的參照,可能未對齊,用於讀取 32 位元大端位元組排序值,然後以 32 位元 (4 個位元組) 遞增。
傳回
指定指標位址的 32 位元值 (如有必要,已替換位元組順序)。

Read32

uint32_t Read32(
  const uint8_t *& p
)

從指定指標位址執行一個可能未對齊且內容為 32 位元位元組排序的大端位元組讀取,視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並以 32 位元 (4 個位元組) 為單位遞增指標。

詳細說明
參數
[in,out] p
常數指標位址的參照 (可能未對齊),用於讀取 32 位元大端位元組排序值的參照值,然後以 32 位元 (4 個位元組) 遞增。
傳回
指定指標位址的 32 位元值 (如有必要,已替換位元組順序)。

Read64

uint64_t Read64(
  uint8_t *& p
)

從指定指標位址執行一個可能未對齊且內容為 64 位元位元組排序的大型記憶體讀取,視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並以 64 位元 (8 位元組) 將指標遞增。

詳細說明
參數
[in,out] p
指標位址的參照,可能未對齊,用於讀取 64 位元大端位元組排序值,然後以 64 位元 (8 位元組) 遞增。
傳回
指定指標位址的 64 位元值 (如有必要,已替換位元組順序)。

Read64

uint64_t Read64(
  const uint8_t *& p
)

從指定指標位址執行一個可能未對齊且內容為 64 位元位元組排序的大型記憶體讀取,視需要執行位元組重新排序,讓目標系統在目標系統位元組排序中放置值,並以 64 位元 (8 位元組) 將指標遞增。

詳細說明
參數
[in,out] p
常數指標位址的參照 (可能未對齊),用於讀取 64 位元大端位元組排序的值,然後以 64 位元 (8 位元組) 遞增。
傳回
指定指標位址的 64 位元值 (如有必要,已替換位元組順序)。

Write16

void Write16(
  uint8_t *& p,
  uint16_t v
)

對目標系統位元組排序 16 位元值,執行未對齊、可能未對齊至指定的指標位址,然後視需要執行位元組重新排序,讓目標系統能夠以大端位元組順序排列值。

詳細說明
參數
[in] p
指標位址的參照 (可能不會對齊),用於將已排序的 16 位元值 (依大端序位元組順序) 寫入目標系統位元組,然後以 16 位元 (2 位元組) 遞增。
[in] v
要寫入的 16 位元值 (如有必要,已交換位元組順序)。

Write32

void Write32(
  uint8_t *& p,
  uint32_t v
)

對目標系統位元組排序的 32 位元值,執行未對齊且可能未對齊的記憶體寫入指定指標位址,然後視需要執行位元組重新排序,讓目標系統能夠以大端位元組順序排列值。

詳細說明
參數
[in] p
指標位址的參照 (可能未對齊),用於將已排序的 32 位元值 (依大端序位元組排序) 寫入目標系統位元組,然後以 32 位元 (4 個位元組) 遞增。
[in] v
要寫入的 32 位元值 (如有必要,已交換位元組順序)。

Write64

void Write64(
  uint8_t *& p,
  uint64_t v
)

針對目標系統位元組排序的 64 位元值,執行未對齊且可能未對齊的記憶體寫入指定指標位址,然後視需要執行位元組重新排序,讓目標系統能夠以大端位元組順序排列值。

詳細說明
參數
[in] p
指標位址的參照 (可能未對齊),用於將已排序的 64 位元值 (以大端序位元組順序) 寫入目標系統位元組,然後以 64 位元 (8 位元組) 遞增。
[in] v
要寫入的 64 位元值 (如有必要,已交換位元組順序)。