Loading...
Searching...
No Matches
jsStreamConfig Struct Reference
Types

`#include <nats.h>`

## Public Attributes

const char * | Name
const char * | Description
const char ** | Subjects
int | SubjectsLen
jsRetentionPolicy | Retention
int64_t | MaxConsumers
int64_t | MaxMsgs
int64_t | MaxBytes
int64_t | MaxAge
int64_t | MaxMsgsPerSubject
int32_t | MaxMsgSize
jsDiscardPolicy | Discard
jsStorageType | Storage
int64_t | Replicas
bool | NoAck
const char * | Template
int64_t | Duplicates
jsPlacement * | Placement
jsStreamSource * | Mirror
jsStreamSource ** | Sources
int | SourcesLen
bool | Sealed
| Seal a stream so no messages can get our or in.
bool | DenyDelete
| Restrict the ability to delete messages.
bool | DenyPurge
| Restrict the ability to purge messages.
bool | AllowRollup
jsRePublish * | RePublish
bool | AllowDirect
bool | MirrorDirect
bool | DiscardNewPerSubject

## Detailed Description

Configuration of a JetStream stream.

There are sensible defaults for most. If no subjects are given the name will be used as the only subject.

In order to add/update a stream, a configuration needs to be set. The typical usage would be to initialize all required objects on the stack and configure them, then pass the pointer to the configuration to js_AddStream or js_UpdateStream.

Note
  The strings are applications owned and will not be freed by the library.

See also
  jsStreamConfig_Init

jsStreamConfig sc;
jsPlacement p;
jsStreamSource m;
jsExternalStream esm;
jsStreamSource s1;
jsStreamSource s2;
jsExternalStream esmS2;
const char *subjects[] = {"foo", "bar"};
const char *tags[] = {"tag1", "tag2"};
jsStreamSource *sources[] = {&s1, &s2};
jsRePublish rp;
jsStreamConfig_Init(&sc);
jsPlacement_Init(&p);
p.Cluster = "MyCluster";
p.Tags = tags;
p.TagsLen = 2;
jsStreamSource_Init(&m);
m.Name = "AStream";
m.OptStartSeq = 100;
m.FilterSubject = "foo";
jsExternalStream_Init(&esm);
esm.APIPrefix = "mirror.prefix.";
esm.DeliverPrefix = "deliver.prefix.";
m.External = &esm;
jsStreamSource_Init(&s1);
s1.Name = "StreamOne";
s1.OptStartSeq = 10;
s1.FilterSubject = "stream.one";
jsStreamSource_Init(&s2);
s2.Name = "StreamTwo";
s2.FilterSubject = "stream.two";
jsExternalStream_Init(&esmS2);
esmS2.APIPrefix = "mirror.prefix.";
esmS2.DeliverPrefix = "deliver.prefix.";
s2.External = &esmS2;
sc.Name = "MyStream";
sc.Subjects = subjects;
sc.SubjectsLen = 2;
sc.Retention = js_InterestPolicy;
sc.Replicas = 3;
sc.Placement = &p;
sc.Mirror = &m;
sc.Sources = sources;
sc.SourcesLen = 2;
// For RePublish subject:
jsRePublish_Init(&rp);
rp.Source = ">";
rp.Destination = "RP.>";
sc.RePublish = &rp;
s = js_AddStream(&si, js, &sc, NULL, &jerr);

## Member Data Documentation

## Name

const char* jsStreamConfig::Name

## Description

const char* jsStreamConfig::Description

## Subjects

const char** jsStreamConfig::Subjects

## SubjectsLen

int jsStreamConfig::SubjectsLen

## Retention

jsRetentionPolicy jsStreamConfig::Retention

## MaxConsumers

int64_t jsStreamConfig::MaxConsumers

## MaxMsgs

int64_t jsStreamConfig::MaxMsgs

## MaxBytes

int64_t jsStreamConfig::MaxBytes

## MaxAge

int64_t jsStreamConfig::MaxAge

## MaxMsgsPerSubject

int64_t jsStreamConfig::MaxMsgsPerSubject

## MaxMsgSize

int32_t jsStreamConfig::MaxMsgSize

## Discard

jsDiscardPolicy jsStreamConfig::Discard

## Storage

jsStorageType jsStreamConfig::Storage

## Replicas

int64_t jsStreamConfig::Replicas

## NoAck

bool jsStreamConfig::NoAck

## Template

const char* jsStreamConfig::Template

## Duplicates

int64_t jsStreamConfig::Duplicates

## Placement

jsPlacement* jsStreamConfig::Placement

## Mirror

jsStreamSource* jsStreamConfig::Mirror

## Sources

jsStreamSource** jsStreamConfig::Sources

## SourcesLen

int jsStreamConfig::SourcesLen

## Sealed

bool jsStreamConfig::Sealed

## DenyDelete

bool jsStreamConfig::DenyDelete

## DenyPurge

bool jsStreamConfig::DenyPurge

## AllowRollup

bool jsStreamConfig::AllowRollup

Allows messages to be placed into the system and purge all older messages using a special message header.

## RePublish

jsRePublish* jsStreamConfig::RePublish

## AllowDirect

bool jsStreamConfig::AllowDirect

## MirrorDirect

bool jsStreamConfig::MirrorDirect

## DiscardNewPerSubject

bool jsStreamConfig::DiscardNewPerSubject

The documentation for this struct was generated from the following file:

- nats.h