Буферный парсинг клиентской стороны
Откройте Directory обеспечивает стандартный парсинг буфера данных для a tDataBuffer
возвращенный плагином обслужил функции dsGetRecordList
, dsDoAttributeValueSearch
, и dsDoAttributeValueSearchWithData
если и только если буфер был создан с помощью стандартного формата, известного, как Client Side Buffer Parsing (CSBP) описал в этом разделе.
CSBP сокращает цикл обработки Мах и трафик сообщений TCP между клиентом и сервером, который иначе потребовал бы передачи всего tDataBuffer
. Таким образом CSBP приводит к значительному повышению производительности в обслуживании вызовов к dsGetRecordEntry
, dsGetAttributeEntry
, и dsGetAttributeValue
, которые должны извлечь определенные точки данных, такие как значения атрибута из a tDataBuffer
.
Существует два стандарта CSBP: StdA и StdB. StdB был первым форматом, и это все еще поддерживается. StdA допускает большие атрибуты и является рекомендуемым форматом.
Таблица 12-1 перечисляет порядок полного блока данных, содержащего x число записей.
Число байтов | Описание |
---|---|
4 | ulong:: тег, описывающий блок данных; значение |
4 | ulong:: количество записей содержится в этом блоке данных |
4 | ulong:: смещение в байтах к запуску первого рекордного блока |
4 | ulong:: смещение в байтах к запуску второго рекордного блока |
... | |
4 | ulong:: смещение в байтах к запуску последнего рекордного блока |
4 | ulong:: конец описания тега смещений; значение |
... | вакуум до запуска последнего рекордного блока; т.е. рекордные блоки упаковываются в буферный запуск в конце блока данных |
4 | ulong:: длина в байтах последнего рекордного блока |
# | последний рекордный блок |
... | |
4 | ulong:: длина в байтах первого рекордного блока |
# | первый рекордный блок |
Таблица 12-2 перечисляет порядок StdA единственный рекордный блок, содержащий y полные блоки атрибута.
Число байтов | Описание |
---|---|
2 | ushort:: длина строки типа записи |
n | UTF-8 [n]:: строка типа записи |
2 | ushort:: длина рекордной строки имени |
m | UTF-8 [m]:: запишите строку имени |
2 | ushort:: число атрибутов в этом рекордном блоке |
4 | ulong:: длина в байтах первого блока атрибута |
# | сначала припишите блок для этого рекордного блока |
.... | |
4 | ulong:: длина в байтах последнего блока атрибута |
# | в последний раз припишите блок для этого рекордного блока |
Таблица 12-3 перечисляет порядок StdA единственный блок атрибута, содержащий z значения (т.е. все значения атрибута).
Число байтов | Описание |
---|---|
2 | ushort:: длина названия атрибута |
r | UTF-8[r]:: строка названия атрибута |
2 | ushort:: число значений атрибута в этом блоке атрибута |
4 | ulong:: длина первого значения атрибута |
s | байт [с]:: первое значение атрибута для этого типа атрибута |
.... | |
4 | ulong:: длина последнего значения атрибута |
t | байт [т]:: последнее значение атрибута для этого типа атрибута |
Таблица 12-4 перечисляет порядок StdB единственный рекордный блок, содержащий y полные блоки атрибута.
Число байтов | Описание |
---|---|
2 | ushort:: длина строки типа записи |
n | UTF-8 [n]:: строка типа записи |
2 | ushort:: длина рекордной строки имени |
m | UTF-8 [m]:: запишите строку имени |
2 | ushort:: число атрибутов в этом рекордном блоке |
2 | ushort:: длина в байтах первого блока атрибута |
# | сначала припишите блок для этого рекордного блока |
.... | |
2 | ushort:: длина в байтах последнего блока атрибута |
# | в последний раз припишите блок для этого рекордного блока |
Таблица 12-5 перечисляет порядок StdB единственный блок атрибута, содержащий z значения (т.е. все значения атрибута).
Число байтов | Описание |
---|---|
2 | ushort:: длина названия атрибута |
r | UTF-8[r]:: строка названия атрибута |
2 | ushort:: число значений атрибута в этом блоке атрибута |
2 | ushort:: длина первого значения атрибута |
s | байт [с]:: первое значение атрибута для этого типа атрибута |
.... | |
2 | ushort:: длина последнего значения атрибута |
t | байт [т]:: последнее значение атрибута для этого типа атрибута |