Definitions and constants in PiPS Client API

Updated: April 19, 2023

Synopsis:

#include <pips/pips.h>

Definitions:

#define PIPS_GUID_INITIALIZER { .value = { 0 } }

Static initializer for the nil PiPS GUID

This macro initializes a GUID to all zeros and hence, can be used on the right of the assignment operator.

Constants:

const pips_guid_t pips_guid_nil

Constant for the nil GUID

This global constant defines a GUID composed entirely of zeros. This can be used in comparison or copy operations.

Synopsis:

#include <pips/publication.h>

Definitions:

#define PIPS_SUBSCRIBE 0x1

The publication will be used to receive topic updates (i.e., it's a subscriber)

#define PIPS_PUBLISH 0x2

The publication will be used to publish topic updates (i.e., it's a publisher)

#define PIPS_EXCL 0x4

The publication will be exclusive, meaning only publishers and subscribers with the same key can exchange data

#define PIPS_OWNER 0x8

The subscriber will be an owner of the associated topic, meaning the subscriber will receive any broadcasted samples. This flag is effective only when PIPS_EXCL is also set.

#define PIPS_PUBSUB (PIPS_PUBLISH|PIPS_SUBSCRIBE)

The publication will publish and subscribe to updates

#define PIPS_PEER (PIPS_EXCL|PIPS_PUBSUB)

The publication will have a peer-to-peer connection

#define PIPS_UNICAST (PIPS_EXCL|PIPS_PUBLISH)

The publication will use unicast messaging, where messages are targetted to specific subscribers

#define PIPS_SERVER (PIPS_PEER|PIPS_OWNER)

The publication will manage a peer-to-peer connection that can receive untargetted messages

Synopsis:

#include <pips/multimap.h>

Definitions:

#define PIPS_MULTIMAP_INITIALIZER { .num_items = 0, .first = NULL }

Static initializer for the multimap type

This macro initializes the given pips_multimap_t instance as an empty container.

Library:

pips-client