idset.c File Reference

Parsing of GLOBSET structures. More...

#include "libmapi/libmapi.h"
#include "libmapi/libmapi_private.h"

Functions

_PUBLIC_ uint64_t exchange_globcnt (uint64_t globcnt)
 
_PUBLIC_ struct globset_rangeGLOBSET_parse (TALLOC_CTX *mem_ctx, DATA_BLOB buffer, uint32_t *countP, uint32_t *byte_countP)
 
_PUBLIC_ void IDSET_dump (const struct idset *idset, const char *label)
 
_PUBLIC_ bool IDSET_includes_eid (const struct idset *idset, uint64_t eid)
 
_PUBLIC_ bool IDSET_includes_guid_glob (const struct idset *idset, struct GUID *replica_guid, uint64_t id)
 
_PUBLIC_ struct idsetIDSET_merge_idsets (TALLOC_CTX *mem_ctx, const struct idset *left, const struct idset *right)
 
_PUBLIC_ struct idsetIDSET_parse (TALLOC_CTX *mem_ctx, DATA_BLOB buffer, bool idbased)
 
_PUBLIC_ void IDSET_remove_rawidset (struct idset *idset, const struct rawidset *rawidset)
 
_PUBLIC_ struct Binary_r * IDSET_serialize (TALLOC_CTX *mem_ctx, const struct idset *idset)
 
_PUBLIC_ void ndr_push_idset (struct ndr_push *ndr, struct idset *idset)
 
_PUBLIC_ struct idsetRAWIDSET_convert_to_idset (TALLOC_CTX *mem_ctx, const struct rawidset *rawidset)
 
_PUBLIC_ struct rawidsetRAWIDSET_make (TALLOC_CTX *mem_ctx, bool idbased, bool single)
 
_PUBLIC_ void RAWIDSET_push_eid (struct rawidset *rawidset, uint64_t eid)
 
_PUBLIC_ void RAWIDSET_push_guid_glob (struct rawidset *rawidset, const struct GUID *guid, uint64_t globcnt)
 

Detailed Description

Parsing of GLOBSET structures.

Function Documentation

_PUBLIC_ uint64_t exchange_globcnt ( uint64_t  globcnt)

Inverts the bytes of a globcnt, such as for the ids returned by Exchange

Referenced by IDSET_dump(), IDSET_includes_eid(), and IDSET_includes_guid_glob().

_PUBLIC_ struct globset_range* GLOBSET_parse ( TALLOC_CTX *  mem_ctx,
DATA_BLOB  buffer,
uint32_t *  countP,
uint32_t *  byte_countP 
)

deserialize a GLOBSET following the format described in [OXCFXICS - 2.2.2.5]

References globset_range::next.

Referenced by IDSET_parse().

_PUBLIC_ void IDSET_dump ( const struct idset idset,
const char *  label 
)
_PUBLIC_ bool IDSET_includes_eid ( const struct idset idset,
uint64_t  eid 
)

tests the presence of a specific id in the ranges of a ReplID-based idset structure

References exchange_globcnt(), globset_range::high, idset::id, idset::idbased, globset_range::low, idset::next, globset_range::next, idset::ranges, and idset::repl.

_PUBLIC_ bool IDSET_includes_guid_glob ( const struct idset idset,
struct GUID *  replica_guid,
uint64_t  id 
)

tests the presence of a specific id in the ranges of a ReplGUID-based idset structure

References exchange_globcnt(), idset::guid, globset_range::high, idset::idbased, globset_range::low, idset::next, globset_range::next, idset::ranges, and idset::repl.

_PUBLIC_ struct idset* IDSET_merge_idsets ( TALLOC_CTX *  mem_ctx,
const struct idset left,
const struct idset right 
)
_PUBLIC_ struct idset* IDSET_parse ( TALLOC_CTX *  mem_ctx,
DATA_BLOB  buffer,
bool  idbased 
)

deserialize an IDSET following the format described in [OXCFXICS - 2.2.2.4]

References GLOBSET_parse(), idset::guid, idset::id, IDSET_dump(), idset::next, idset::range_count, idset::ranges, and idset::repl.

_PUBLIC_ void IDSET_remove_rawidset ( struct idset idset,
const struct rawidset rawidset 
)
_PUBLIC_ struct Binary_r* IDSET_serialize ( TALLOC_CTX *  mem_ctx,
const struct idset idset 
)

serialize an idset structure in a struct SBinary_r

References idset::guid, idset::id, idset::idbased, idset::next, globset_range::next, idset::ranges, and idset::repl.

Referenced by ndr_push_idset().

_PUBLIC_ void ndr_push_idset ( struct ndr_push *  ndr,
struct idset idset 
)

push an idset on an ndr stream

References IDSET_serialize().

_PUBLIC_ struct idset* RAWIDSET_convert_to_idset ( TALLOC_CTX *  mem_ctx,
const struct rawidset rawidset 
)
_PUBLIC_ struct rawidset* RAWIDSET_make ( TALLOC_CTX *  mem_ctx,
bool  idbased,
bool  single 
)
_PUBLIC_ void RAWIDSET_push_eid ( struct rawidset rawidset,
uint64_t  eid 
)
_PUBLIC_ void RAWIDSET_push_guid_glob ( struct rawidset rawidset,
const struct GUID *  guid,
uint64_t  globcnt 
)

Creative Commons License
Creative Commons Attribution icon Creative Commons Share Alike icon
This content is licensed under the Creative Commons
Attribution ShareAlike License v. 3.0:
http://creativecommons.org/licenses/by-sa/3.0/