ClientIdManager

class kanzi::connect::ClientIdManager

Client id allocation facility.

Public Functions

ClientIdManager()

Constructor.

size_t allocate(const string &type, int handle)

Allocates client identifier.

Return

identifier. 0 (=INVALID_CLIENT_IDENTIFIER) indicates invalid value.

Parameters
  • type: the type of client identifier to allocate.

  • handle:

void free(size_t handle)

Frees an object.

Parameters
  • handle: the handle to free.

bool registerConnectionType(const string &connectionType, unsigned int maxConnectionCount)

Register a connection type to the manager Note: double registration is allowed and does not lead to duplicate connection ranges.

Parameters
  • connectionType: Identifies the connection type

  • maxConnectionCount: How many connections of this type are allowed simultaneously to be reserved

int translate(size_t handle) const

Translate a pseudo handle to a native handle.

Type information not passed so searches for suitable native handle from all the types.

Return

native handle. -1 is returned if not found.

Parameters
  • handle: the handle to translate

int translateAndFree(size_t handle)

Translate a pseudo handle to a native handle and with same call free the mapping.

Return

native handle. -1 is returned if not found.

Parameters
  • handle: the handle to translate

const string &typeOf(size_t handle) const

Returns the type identifier of the specific handle.

Return

type identifier string. empty string returned if not found.

Parameters
  • handle: handle to examine

Public Static Attributes

static const string TYPE_HTTP
static const string TYPE_SCRIPTING
static const string TYPE_SHAREDMEMORY
static const string TYPE_SOCKET