NATS C Client with JetStream and Streaming support 3.6.1 The nats.io C Client, Supported by Synadia Communications Inc.

Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions
nats.h File Reference
`#include <stdlib.h>`
`#include <stdint.h>`
`#include <stdbool.h>`
`#include <inttypes.h>`
`#include <stdio.h>`
`#include "status.h"`
`#include "version.h"`

Go to the source code of this file.

## Classes
struct | natsMsgList
| A list of NATS messages. More...
struct | jsPubOptions
struct | jsPlacement
struct | jsExternalStream
struct | jsStreamSource
struct | jsRePublish
struct | jsStreamConfig
struct | jsLostStreamData
struct | jsStreamStateSubject
struct | jsStreamStateSubjects
struct | jsStreamState
struct | jsPeerInfo
struct | jsClusterInfo
struct | jsStreamSourceInfo
struct | jsStreamAlternate
struct | jsStreamInfo
struct | jsStreamInfoList
struct | jsStreamNamesList
struct | jsConsumerConfig
struct | jsConsumerSequenceMismatch
struct | jsSubOptions
struct | jsSequencePair
struct | jsSequenceInfo
struct | jsConsumerInfo
struct | jsConsumerInfoList
struct | jsConsumerNamesList
struct | jsAPIStats
struct | jsAccountLimits
struct | jsTier
struct | jsAccountInfo
struct | jsMsgMetaData
struct | jsPubAck
struct | jsPubAckErr
struct | jsDirectGetMsgOptions
struct | jsFetchRequest
struct | jsOptions
struct | jsOptions::jsOptionsPublishAsync
struct | jsOptions::jsOptionsStream
struct | jsOptions::jsOptionsStream::jsOptionsStreamPurge
struct | jsOptions::jsOptionsStream::jsOptionsStreamInfo
struct | kvConfig
struct | kvWatchOptions
struct | kvPurgeOptions
struct | kvEntryList
| A list of KeyValue store entries. More...
struct | kvKeysList
| A list of KeyValue store keys. More...

## Macros
#define | NATS_EXTERN
| Needed for shared library.
#define | NATS_DEFAULT_URL "nats://localhost:4222"
| The default `NATS Server` URL.
#define | JSMsgSize "Nats-Msg-Size"
| Message header for JetStream messages representing the message payload size.
#define | JSMsgRollup "Nats-Rollup"
| Message header for JetStream message for rollup.
#define | JSMsgRollupSubject "sub"
| Message header value causing rollup per subject.
#define | JSMsgRollupAll "all"
| Message header value causing rollup for all subjects.
#define | JSStream "Nats-Stream"
#define | JSSequence "Nats-Sequence"
#define | JSLastSequence "Nats-Last-Sequence"
#define | JSTimeStamp "Nats-Time-Stamp"
#define | JSSubject "Nats-Subject"

## Typedefs
typedef int | natsSock
typedef struct __natsConnection | natsConnection
| A connection to a `NATS Server`.
typedef struct __natsStatistics | natsStatistics
| Statistics of a natsConnection.
typedef struct __natsSubscription | natsSubscription
| Interest on a given subject.
typedef struct __natsMsg | natsMsg
| A structure holding a subject, optional reply and payload.
typedef struct __natsOptions | natsOptions
| Way to configure a natsConnection.
typedef char | natsInbox
| Unique subject often used for point-to-point communication.
typedef struct natsMsgList | natsMsgList
| A list of NATS messages.
typedef struct __jsCtx | jsCtx
typedef struct jsPubOptions | jsPubOptions
typedef struct jsPlacement | jsPlacement
typedef struct jsExternalStream | jsExternalStream
typedef struct jsStreamSource | jsStreamSource
typedef struct jsRePublish | jsRePublish
typedef struct jsStreamConfig | jsStreamConfig
typedef struct jsLostStreamData | jsLostStreamData
typedef struct jsStreamStateSubject | jsStreamStateSubject
typedef struct jsStreamStateSubjects | jsStreamStateSubjects
typedef struct jsStreamState | jsStreamState
typedef struct jsPeerInfo | jsPeerInfo
typedef struct jsClusterInfo | jsClusterInfo
typedef struct jsStreamSourceInfo | jsStreamSourceInfo
typedef struct jsStreamAlternate | jsStreamAlternate
typedef struct jsStreamInfo | jsStreamInfo
typedef struct jsStreamInfoList | jsStreamInfoList
typedef struct jsStreamNamesList | jsStreamNamesList
typedef struct jsConsumerConfig | jsConsumerConfig
typedef struct jsConsumerSequenceMismatch | jsConsumerSequenceMismatch
typedef struct jsSubOptions | jsSubOptions
typedef struct jsSequencePair | jsSequencePair
typedef struct jsSequenceInfo | jsSequenceInfo
typedef struct jsConsumerInfo | jsConsumerInfo
typedef struct jsConsumerInfoList | jsConsumerInfoList
typedef struct jsConsumerNamesList | jsConsumerNamesList
typedef struct jsAPIStats | jsAPIStats
typedef struct jsAccountLimits | jsAccountLimits
typedef struct jsTier | jsTier
typedef struct jsAccountInfo | jsAccountInfo
typedef struct jsMsgMetaData | jsMsgMetaData
typedef struct jsPubAck | jsPubAck
typedef struct jsPubAckErr | jsPubAckErr
typedef struct jsDirectGetMsgOptions | jsDirectGetMsgOptions
typedef struct jsFetchRequest | jsFetchRequest
typedef struct jsOptions | jsOptions
typedef struct __kvStore | kvStore
typedef struct __kvEntry | kvEntry
typedef struct __kvStatus | kvStatus
typedef struct __kvWatcher | kvWatcher
typedef struct kvConfig | kvConfig
typedef struct kvWatchOptions | kvWatchOptions
typedef struct kvPurgeOptions | kvPurgeOptions
typedef struct kvEntryList | kvEntryList
| A list of KeyValue store entries.
typedef struct kvKeysList | kvKeysList
| A list of KeyValue store keys.
typedef struct __stanConnection | stanConnection
| A connection to a `NATS Streaming Server`.
typedef struct __stanSubscription | stanSubscription
| Interest on a given channel.
typedef struct __stanMsg | stanMsg
| The Streaming message.
typedef struct __stanConnOptions | stanConnOptions
| Way to configure a stanConnection.
typedef struct __stanSubOptions | stanSubOptions
| Way to configure a stanSubscription.
typedef void(* | natsMsgHandler) (natsConnection *nc, natsSubscription *sub, natsMsg *msg, void *closure)
| Callback used to deliver messages to the application.
typedef void(* | natsConnectionHandler) (natsConnection *nc, void *closure)
| Callback used to notify the user of asynchronous connection events.
typedef void(* | natsErrHandler) (natsConnection *nc, natsSubscription *subscription, natsStatus err, void *closure)
| Callback used to notify the user of errors encountered while processing inbound messages.
typedef natsStatus(* | natsEvLoop_Attach) (void **userData, void *loop, natsConnection *nc, natsSock socket)
| Attach this connection to the external event loop.
typedef natsStatus(* | natsEvLoop_ReadAddRemove) (void *userData, bool add)
| Read event needs to be added or removed.
typedef natsStatus(* | natsEvLoop_WriteAddRemove) (void *userData, bool add)
| Write event needs to be added or removed.
typedef natsStatus(* | natsEvLoop_Detach) (void *userData)
| Detach from the event loop.
typedef natsStatus(* | natsUserJWTHandler) (char **userJWT, char **customErrTxt, void *closure)
| Callback used to fetch and return account signed user JWT.
typedef natsStatus(* | natsSignatureHandler) (char **customErrTxt, unsigned char **signature, int *signatureLength, const char *nonce, void *closure)
| Callback used to sign a nonce sent by the server.
typedef const char *(* | natsTokenHandler) (void *closure)
| Callback used to build a token on connections and reconnections.
typedef void(* | natsOnCompleteCB) (void *closure)
| Callback used to notify that an object lifecycle is complete.
typedef int64_t(* | natsCustomReconnectDelayHandler) (natsConnection *nc, int attempts, void *closure)
| Callback used to specify how long to wait between reconnects.
typedef void(* | jsPubAckErrHandler) (jsCtx *js, jsPubAckErr *pae, void *closure)
| Callback used to process asynchronous publish errors from JetStream.
typedef void(* | jsPubAckHandler) (jsCtx *js, natsMsg *msg, jsPubAck *pa, jsPubAckErr *pae, void *closure)
| Callback used to process asynchronous publish responses from JetStream.
typedef void(* | stanPubAckHandler) (const char *guid, const char *error, void *closure)
| Callback used to notify of an asynchronous publish result.
typedef void(* | stanMsgHandler) (stanConnection *sc, stanSubscription *sub, const char *channel, stanMsg *msg, void *closure)
| Callback used to deliver messages to the application.
typedef void(* | stanConnectionLostHandler) (stanConnection *sc, const char *errorTxt, void *closure)
| Callback used to notify the user of the permanent loss of the connection.

## Enumerations
enum | jsRetentionPolicy { js_LimitsPolicy = 0 , js_InterestPolicy , js_WorkQueuePolicy }
enum | jsDiscardPolicy { js_DiscardOld = 0 , js_DiscardNew }
enum | jsStorageType { js_FileStorage = 0 , js_MemoryStorage }
enum | jsDeliverPolicy { js_DeliverAll = 0 , js_DeliverLast , js_DeliverNew , js_DeliverByStartSequence , js_DeliverByStartTime , js_DeliverLastPerSubject }
enum | jsAckPolicy { js_AckExplicit = 0 , js_AckNone , js_AckAll }
enum | jsReplayPolicy { js_ReplayInstant = 0 , js_ReplayOriginal }
enum | kvOperation { kvOp_Unknown = 0 , kvOp_Put , kvOp_Delete , kvOp_Purge }

## Functions
NATS_EXTERN natsStatus | nats_Open (int64_t lockSpinCount)
| Initializes the library.
NATS_EXTERN const char * | nats_GetVersion (void)
| Returns the Library's version.
NATS_EXTERN uint32_t | nats_GetVersionNumber (void)
| Returns the Library's version as a number.
NATS_EXTERN bool | nats_CheckCompatibility (void)
| Check that the header is compatible with the library.
NATS_EXTERN int64_t | nats_Now (void)
| Gives the current time in milliseconds.
NATS_EXTERN int64_t | nats_NowInNanoSeconds (void)
| Gives the current time in nanoseconds.
NATS_EXTERN void | nats_Sleep (int64_t sleepTime)
| Sleeps for a given number of milliseconds.
NATS_EXTERN const char * | nats_GetLastError (natsStatus *status)
| Returns the calling thread's last known error.
NATS_EXTERN natsStatus | nats_GetLastErrorStack (char *buffer, size_t bufLen)
| Returns the calling thread's last known error stack.
NATS_EXTERN void | nats_PrintLastErrorStack (FILE *file)
| Prints the calling thread's last known error stack into the file.
NATS_EXTERN natsStatus | nats_SetMessageDeliveryPoolSize (int max)
| Sets the maximum size of the global message delivery thread pool.
NATS_EXTERN void | nats_ReleaseThreadMemory (void)
| Release thread-local memory possibly allocated by the library.
NATS_EXTERN natsStatus | nats_Sign (const char *encodedSeed, const char *input, unsigned char **signature, int *signatureLength)
| Signs a given text using the provided private key.
NATS_EXTERN void | nats_Close (void)
| Tear down the library.
NATS_EXTERN natsStatus | nats_CloseAndWait (int64_t timeout)
| Tear down the library and wait for all resources to be released.
NATS_EXTERN const char * | natsStatus_GetText (natsStatus s)
| Get the text corresponding to a natsStatus.
NATS_EXTERN natsStatus | natsStatistics_Create (natsStatistics **newStats)
| Creates a natsStatistics object.
NATS_EXTERN natsStatus | natsStatistics_GetCounts (const natsStatistics *stats, uint64_t *inMsgs, uint64_t *inBytes, uint64_t *outMsgs, uint64_t *outBytes, uint64_t *reconnects)
| Extracts the various statistics values.
NATS_EXTERN void | natsStatistics_Destroy (natsStatistics *stats)
| Destroys the natsStatistics object.
NATS_EXTERN natsStatus | natsOptions_Create (natsOptions **newOpts)
| Creates a natsOptions object.
NATS_EXTERN natsStatus | natsOptions_SetURL (natsOptions *opts, const char *url)
| Sets the URL to connect to.
NATS_EXTERN natsStatus | natsOptions_SetServers (natsOptions *opts, const char **servers, int serversCount)
| Set the list of servers to try to (re)connect to.
NATS_EXTERN natsStatus | natsOptions_SetUserInfo (natsOptions *opts, const char *user, const char *password)
| Sets the user name/password to use when not specified in the URL.
NATS_EXTERN natsStatus | natsOptions_SetToken (natsOptions *opts, const char *token)
| Sets the token to use when not specified in the URL.
NATS_EXTERN natsStatus | natsOptions_SetTokenHandler (natsOptions *opts, natsTokenHandler tokenCb, void *closure)
| Sets the tokenCb to use whenever a token is needed.
NATS_EXTERN natsStatus | natsOptions_SetNoRandomize (natsOptions *opts, bool noRandomize)
| Indicate if the servers list should be randomized.
NATS_EXTERN natsStatus | natsOptions_SetTimeout (natsOptions *opts, int64_t timeout)
| Sets the (re)connect process timeout.
NATS_EXTERN natsStatus | natsOptions_SetName (natsOptions *opts, const char *name)
| Sets the name.
NATS_EXTERN natsStatus | natsOptions_SetSecure (natsOptions *opts, bool secure)
| Sets the secure mode.
NATS_EXTERN natsStatus | natsOptions_LoadCATrustedCertificates (natsOptions *opts, const char *fileName)
| Loads the trusted CA certificates from a file.
NATS_EXTERN natsStatus | natsOptions_SetCATrustedCertificates (natsOptions *opts, const char *certificates)
| Sets the trusted CA certificates from memory.
NATS_EXTERN natsStatus | natsOptions_LoadCertificatesChain (natsOptions *opts, const char *certsFileName, const char *keyFileName)
| Loads the certificate chain from a file, using the given key.
NATS_EXTERN natsStatus | natsOptions_SetCertificatesChain (natsOptions *opts, const char *cert, const char *key)
| Sets the client certificate and key.
NATS_EXTERN natsStatus | natsOptions_SetCiphers (natsOptions *opts, const char *ciphers)
| Sets the list of available ciphers.
NATS_EXTERN natsStatus | natsOptions_SetCipherSuites (natsOptions *opts, const char *ciphers)
| Sets the list of available ciphers for TLSv1.3.
NATS_EXTERN natsStatus | natsOptions_SetExpectedHostname (natsOptions *opts, const char *hostname)
| Sets the server certificate's expected hostname.
NATS_EXTERN natsStatus | natsOptions_SkipServerVerification (natsOptions *opts, bool skip)
| Switch server certificate verification.
NATS_EXTERN natsStatus | natsOptions_SetVerbose (natsOptions *opts, bool verbose)
| Sets the verbose mode.
NATS_EXTERN natsStatus | natsOptions_SetPedantic (natsOptions *opts, bool pedantic)
| Sets the pedantic mode.
NATS_EXTERN natsStatus | natsOptions_SetPingInterval (natsOptions *opts, int64_t interval)
| Sets the ping interval.
NATS_EXTERN natsStatus | natsOptions_SetMaxPingsOut (natsOptions *opts, int maxPingsOut)
| Sets the limit of outstanding `PING`s without corresponding `PONG`s.
NATS_EXTERN natsStatus | natsOptions_SetIOBufSize (natsOptions *opts, int ioBufSize)
| Sets the size of the internal read/write buffers.
NATS_EXTERN natsStatus | natsOptions_SetAllowReconnect (natsOptions *opts, bool allow)
| Indicates if the connection will be allowed to reconnect.
NATS_EXTERN natsStatus | natsOptions_SetMaxReconnect (natsOptions *opts, int maxReconnect)
| Sets the maximum number of reconnect attempts.
NATS_EXTERN natsStatus | natsOptions_SetReconnectWait (natsOptions *opts, int64_t reconnectWait)
| Sets the time between reconnect attempts.
NATS_EXTERN natsStatus | natsOptions_SetReconnectJitter (natsOptions *opts, int64_t jitter, int64_t jitterTLS)
| Set the upper bound of a random delay added to reconnect wait.
NATS_EXTERN natsStatus | natsOptions_SetCustomReconnectDelay (natsOptions *opts, natsCustomReconnectDelayHandler cb, void *closure)
| Sets the handler to invoke when the library needs to wait before the next reconnect attempts.
NATS_EXTERN natsStatus | natsOptions_SetReconnectBufSize (natsOptions *opts, int reconnectBufSize)
| Sets the size of the backing buffer used during reconnect.
NATS_EXTERN natsStatus | natsOptions_SetMaxPendingMsgs (natsOptions *opts, int maxPending)
| Sets the maximum number of pending messages per subscription.
NATS_EXTERN natsStatus | natsOptions_SetErrorHandler (natsOptions *opts, natsErrHandler errHandler, void *closure)
| Sets the error handler for asynchronous events.
NATS_EXTERN natsStatus | natsOptions_SetClosedCB (natsOptions *opts, natsConnectionHandler closedCb, void *closure)
| Sets the callback to be invoked when a connection to a server is permanently lost.
NATS_EXTERN natsStatus | natsOptions_SetDisconnectedCB (natsOptions *opts, natsConnectionHandler disconnectedCb, void *closure)
| Sets the callback to be invoked when the connection to a server is lost.
NATS_EXTERN natsStatus | natsOptions_SetReconnectedCB (natsOptions *opts, natsConnectionHandler reconnectedCb, void *closure)
| Sets the callback to be invoked when the connection has reconnected.
NATS_EXTERN natsStatus | natsOptions_SetDiscoveredServersCB (natsOptions *opts, natsConnectionHandler discoveredServersCb, void *closure)
| Sets the callback to be invoked when new servers are discovered.
NATS_EXTERN natsStatus | natsOptions_SetIgnoreDiscoveredServers (natsOptions *opts, bool ignore)
| Sets if the library should ignore or not discovered servers.
NATS_EXTERN natsStatus | natsOptions_SetLameDuckModeCB (natsOptions *opts, natsConnectionHandler lameDuckCb, void *closure)
| Sets the callback to be invoked when server enters lame duck mode.
NATS_EXTERN natsStatus | natsOptions_SetEventLoop (natsOptions *opts, void *loop, natsEvLoop_Attach attachCb, natsEvLoop_ReadAddRemove readCb, natsEvLoop_WriteAddRemove writeCb, natsEvLoop_Detach detachCb)
| Sets the external event loop and associated callbacks.
NATS_EXTERN natsStatus | natsOptions_UseGlobalMessageDelivery (natsOptions *opts, bool global)
| Switch on/off the use of a central message delivery thread pool.
NATS_EXTERN natsStatus | natsOptions_IPResolutionOrder (natsOptions *opts, int order)
| Dictates the order in which host name are resolved during connect.
NATS_EXTERN natsStatus | natsOptions_SetSendAsap (natsOptions *opts, bool sendAsap)
| Sets if Publish calls should send data right away.
NATS_EXTERN natsStatus | natsOptions_UseOldRequestStyle (natsOptions *opts, bool useOldStyle)
| Switches the use of old style requests.
NATS_EXTERN natsStatus | natsOptions_SetFailRequestsOnDisconnect (natsOptions *opts, bool failRequests)
| Fails pending requests on disconnect event.
NATS_EXTERN natsStatus | natsOptions_SetNoEcho (natsOptions *opts, bool noEcho)
| Sets if connection receives its own messages.
NATS_EXTERN natsStatus | natsOptions_SetRetryOnFailedConnect (natsOptions *opts, bool retry, natsConnectionHandler connectedCb, void *closure)
| Indicates if initial connect failure should be retried or not.
NATS_EXTERN natsStatus | natsOptions_SetUserCredentialsCallbacks (natsOptions *opts, natsUserJWTHandler ujwtCB, void *ujwtClosure, natsSignatureHandler sigCB, void *sigClosure)
| Sets the callbacks to fetch user JWT and sign server's nonce.
NATS_EXTERN natsStatus | natsOptions_SetUserCredentialsFromFiles (natsOptions *opts, const char *userOrChainedFile, const char *seedFile)
| Sets the file(s) to use to fetch user JWT and seed required to sign nonce.
NATS_EXTERN natsStatus | natsOptions_SetUserCredentialsFromMemory (natsOptions *opts, const char *jwtAndSeedContent)
| Sets JWT handler and handler to sign nonce that uses seed.
NATS_EXTERN natsStatus | natsOptions_SetNKey (natsOptions *opts, const char *pubKey, natsSignatureHandler sigCB, void *sigClosure)
| Sets the NKey public key and signature callback.
NATS_EXTERN natsStatus | natsOptions_SetNKeyFromSeed (natsOptions *opts, const char *pubKey, const char *seedFile)
| Sets the NKey public key and its seed file.
NATS_EXTERN natsStatus | natsOptions_SetWriteDeadline (natsOptions *opts, int64_t deadline)
| Sets the write deadline.
NATS_EXTERN natsStatus | natsOptions_DisableNoResponders (natsOptions *opts, bool disabled)
| Enable/Disable the "no responders" feature.
NATS_EXTERN natsStatus | natsOptions_SetCustomInboxPrefix (natsOptions *opts, const char *inboxPrefix)
| Sets a custom inbox prefix.
NATS_EXTERN natsStatus | natsOptions_SetMessageBufferPadding (natsOptions *opts, int paddingSize)
| Sets a custom padding when allocating buffer for incoming messages.
NATS_EXTERN void | natsOptions_Destroy (natsOptions *opts)
| Destroys a natsOptions object.
NATS_EXTERN natsStatus | stanConnOptions_Create (stanConnOptions **newOpts)
| Creates a stanConnOptions object.
NATS_EXTERN natsStatus | stanConnOptions_SetURL (stanConnOptions *opts, const char *url)
| Sets the URL to connect to.
NATS_EXTERN natsStatus | stanConnOptions_SetNATSOptions (stanConnOptions *opts, natsOptions *nOpts)
| Sets the NATS Options to use to create the connection.
NATS_EXTERN natsStatus | stanConnOptions_SetConnectionWait (stanConnOptions *opts, int64_t wait)
| Sets the timeout for establishing a connection.
NATS_EXTERN natsStatus | stanConnOptions_SetPubAckWait (stanConnOptions *opts, int64_t wait)
| Sets the timeout for waiting for an ACK for a published message.
NATS_EXTERN natsStatus | stanConnOptions_SetDiscoveryPrefix (stanConnOptions *opts, const char *prefix)
| Sets the subject prefix the library sends the connect request to.
NATS_EXTERN natsStatus | stanConnOptions_SetMaxPubAcksInflight (stanConnOptions *opts, int maxPubAcksInflight, float percentage)
| Sets the maximum number of published messages without outstanding ACKs from the server.
NATS_EXTERN natsStatus | stanConnOptions_SetPings (stanConnOptions *opts, int interval, int maxOut)
| Sets the ping interval and max out values.
NATS_EXTERN natsStatus | stanConnOptions_SetConnectionLostHandler (stanConnOptions *opts, stanConnectionLostHandler handler, void *closure)
| Sets the connection lost handler.
NATS_EXTERN void | stanConnOptions_Destroy (stanConnOptions *opts)
| Destroys a stanConnOptions object.
NATS_EXTERN natsStatus | stanSubOptions_Create (stanSubOptions **newOpts)
| Creates a stanSubOptions object.
NATS_EXTERN natsStatus | stanSubOptions_SetDurableName (stanSubOptions *opts, const char *durableName)
| Sets the Durable Name for this subscription.
NATS_EXTERN natsStatus | stanSubOptions_SetAckWait (stanSubOptions *opts, int64_t wait)
| Sets the timeout for waiting for an ACK from the cluster's point of view for delivered messages.
NATS_EXTERN natsStatus | stanSubOptions_SetMaxInflight (stanSubOptions *opts, int maxInflight)
| Sets the the maximum number of messages the cluster will send without an ACK.
NATS_EXTERN natsStatus | stanSubOptions_StartAtSequence (stanSubOptions *opts, uint64_t seq)
| Sets the desired start position based on the given sequence number.
NATS_EXTERN natsStatus | stanSubOptions_StartAtTime (stanSubOptions *opts, int64_t time)
| Sets the desired start position based on the given time.
NATS_EXTERN natsStatus | stanSubOptions_StartAtTimeDelta (stanSubOptions *opts, int64_t delta)
| Sets the desired start position based on the given delta.
NATS_EXTERN natsStatus | stanSubOptions_StartWithLastReceived (stanSubOptions *opts)
| The subscription should start with the last message in the channel.
NATS_EXTERN natsStatus | stanSubOptions_DeliverAllAvailable (stanSubOptions *opts)
| The subscription should start with the first message in the channel.
NATS_EXTERN natsStatus | stanSubOptions_SetManualAckMode (stanSubOptions *opts, bool manual)
| Sets the subscription's acknowledgment mode.
NATS_EXTERN void | stanSubOptions_Destroy (stanSubOptions *opts)
| Destroys a stanSubOptions object.
NATS_EXTERN natsStatus | natsInbox_Create (natsInbox **newInbox)
| Creates an inbox.
NATS_EXTERN void | natsInbox_Destroy (natsInbox *inbox)
| Destroys the inbox.
NATS_EXTERN void | natsMsgList_Destroy (natsMsgList *list)
| Destroys this list of messages.
NATS_EXTERN natsStatus | natsMsg_Create (natsMsg **newMsg, const char *subj, const char *reply, const char *data, int dataLen)
| Creates a natsMsg object.
NATS_EXTERN const char * | natsMsg_GetSubject (const natsMsg *msg)
| Returns the subject set in this message.
NATS_EXTERN const char * | natsMsg_GetReply (const natsMsg *msg)
| Returns the reply set in this message.
NATS_EXTERN const char * | natsMsg_GetData (const natsMsg *msg)
| Returns the message payload.
NATS_EXTERN int | natsMsg_GetDataLength (const natsMsg *msg)
| Returns the message length.
NATS_EXTERN natsStatus | natsMsgHeader_Set (natsMsg *msg, const char *key, const char *value)
| Set the header entries associated with `key` to the single element `value`.
NATS_EXTERN natsStatus | natsMsgHeader_Add (natsMsg *msg, const char *key, const char *value)
| Add `value` to the header associated with `key`.
NATS_EXTERN natsStatus | natsMsgHeader_Get (natsMsg *msg, const char *key, const char **value)
| Get the header entry associated with `key`.
NATS_EXTERN natsStatus | natsMsgHeader_Values (natsMsg *msg, const char *key, const char ***values, int *count)
| Get all header values associated with `key`.
NATS_EXTERN natsStatus | natsMsgHeader_Keys (natsMsg *msg, const char ***keys, int *count)
| Get all header keys.
NATS_EXTERN natsStatus | natsMsgHeader_Delete (natsMsg *msg, const char *key)
| Delete the value(s) associated with `key`.
NATS_EXTERN bool | natsMsg_IsNoResponders (natsMsg *msg)
| Indicates if this message is a "no responders" message from the server.
NATS_EXTERN void | natsMsg_Destroy (natsMsg *msg)
| Destroys the message object.
NATS_EXTERN uint64_t | stanMsg_GetSequence (const stanMsg *msg)
| Returns the message's sequence number.
NATS_EXTERN int64_t | stanMsg_GetTimestamp (const stanMsg *msg)
| Returns the message's timestamp.
NATS_EXTERN bool | stanMsg_IsRedelivered (const stanMsg *msg)
| Returns the message's redelivered flag.
NATS_EXTERN const char * | stanMsg_GetData (const stanMsg *msg)
| Returns the message payload.
NATS_EXTERN int | stanMsg_GetDataLength (const stanMsg *msg)
| Returns the message length.
NATS_EXTERN void | stanMsg_Destroy (stanMsg *msg)
| Destroys the message object.
NATS_EXTERN natsStatus | natsConnection_Connect (natsConnection **nc, natsOptions *options)
| Connects to a `NATS Server` using the provided options.
NATS_EXTERN void | natsConnection_ProcessReadEvent (natsConnection *nc)
| Process a read event when using external event loop.
NATS_EXTERN void | natsConnection_ProcessWriteEvent (natsConnection *nc)
| Process a write event when using external event loop.
NATS_EXTERN natsStatus | natsConnection_ConnectTo (natsConnection **nc, const char *urls)
| Connects to a `NATS Server` using any of the URL from the given list.
NATS_EXTERN bool | natsConnection_IsClosed (natsConnection *nc)
| Test if connection has been closed.
NATS_EXTERN bool | natsConnection_IsReconnecting (natsConnection *nc)
| Test if connection is reconnecting.
bool | natsConnection_IsDraining (natsConnection *nc)
| Test if connection is draining.
NATS_EXTERN natsConnStatus | natsConnection_Status (natsConnection *nc)
| Returns the current state of the connection.
NATS_EXTERN int | natsConnection_Buffered (natsConnection *nc)
| Returns the number of bytes to be sent to the server.
NATS_EXTERN natsStatus | natsConnection_Flush (natsConnection *nc)
| Flushes the connection.
NATS_EXTERN natsStatus | natsConnection_FlushTimeout (natsConnection *nc, int64_t timeout)
| Flushes the connection with a given timeout.
NATS_EXTERN int64_t | natsConnection_GetMaxPayload (natsConnection *nc)
| Returns the maximum message payload.
NATS_EXTERN natsStatus | natsConnection_GetStats (natsConnection *nc, natsStatistics *stats)
| Gets the connection statistics.
NATS_EXTERN natsStatus | natsConnection_GetConnectedUrl (natsConnection *nc, char *buffer, size_t bufferSize)
| Gets the URL of the currently connected server.
NATS_EXTERN natsStatus | natsConnection_GetConnectedServerId (natsConnection *nc, char *buffer, size_t bufferSize)
| Gets the server Id.
NATS_EXTERN natsStatus | natsConnection_GetServers (natsConnection *nc, char ***servers, int *count)
| Returns the list of server URLs known to this connection.
NATS_EXTERN natsStatus | natsConnection_GetDiscoveredServers (natsConnection *nc, char ***servers, int *count)
| Returns the list of discovered server URLs.
NATS_EXTERN natsStatus | natsConnection_GetLastError (natsConnection *nc, const char **lastError)
| Gets the last connection error.
NATS_EXTERN natsStatus | natsConnection_GetClientID (natsConnection *nc, uint64_t *cid)
| Gets the current client ID assigned by the server.
NATS_EXTERN natsStatus | natsConnection_Drain (natsConnection *nc)
| Drains the connection with default timeout.
NATS_EXTERN natsStatus | natsConnection_DrainTimeout (natsConnection *nc, int64_t timeout)
| Drains the connection with given timeout.
NATS_EXTERN natsStatus | natsConnection_Sign (natsConnection *nc, const unsigned char *message, int messageLen, unsigned char sig[64])
| Signs any 'message' using the connection's user credentials.
NATS_EXTERN natsStatus | natsConnection_GetClientIP (natsConnection *nc, char **ip)
| Returns the client's IP address as reported by the server.
NATS_EXTERN natsStatus | natsConnection_GetRTT (natsConnection *nc, int64_t *rtt)
| Returns the round trip time between this client and the server.
NATS_EXTERN natsStatus | natsConnection_HasHeaderSupport (natsConnection *nc)
| Returns if the connection to current server supports headers.
natsStatus | natsConnection_GetLocalIPAndPort (natsConnection *nc, char **ip, int *port)
| Returns the connection local IP and port.
NATS_EXTERN void | natsConnection_Close (natsConnection *nc)
| Closes the connection.
NATS_EXTERN void | natsConnection_Destroy (natsConnection *nc)
| Destroys the connection object.
NATS_EXTERN natsStatus | natsConnection_Publish (natsConnection *nc, const char *subj, const void *data, int dataLen)
| Publishes data on a subject.
NATS_EXTERN natsStatus | natsConnection_PublishString (natsConnection *nc, const char *subj, const char *str)
| Publishes a string on a subject.
NATS_EXTERN natsStatus | natsConnection_PublishMsg (natsConnection *nc, natsMsg *msg)
| Publishes a message on a subject.
NATS_EXTERN natsStatus | natsConnection_PublishRequest (natsConnection *nc, const char *subj, const char *reply, const void *data, int dataLen)
| Publishes data on a subject expecting replies on the given reply.
NATS_EXTERN natsStatus | natsConnection_PublishRequestString (natsConnection *nc, const char *subj, const char *reply, const char *str)
| Publishes a string on a subject expecting replies on the given reply.
NATS_EXTERN natsStatus | natsConnection_Request (natsMsg **replyMsg, natsConnection *nc, const char *subj, const void *data, int dataLen, int64_t timeout)
| Sends a request and waits for a reply.
NATS_EXTERN natsStatus | natsConnection_RequestString (natsMsg **replyMsg, natsConnection *nc, const char *subj, const char *str, int64_t timeout)
| Sends a request (as a string) and waits for a reply.
NATS_EXTERN natsStatus | natsConnection_RequestMsg (natsMsg **replyMsg, natsConnection *nc, natsMsg *requestMsg, int64_t timeout)
| Sends a request based on the given `requestMsg` and waits for a reply.
NATS_EXTERN natsStatus | natsConnection_Subscribe (natsSubscription **sub, natsConnection *nc, const char *subject, natsMsgHandler cb, void *cbClosure)
| Creates an asynchronous subscription.
NATS_EXTERN natsStatus | natsConnection_SubscribeTimeout (natsSubscription **sub, natsConnection *nc, const char *subject, int64_t timeout, natsMsgHandler cb, void *cbClosure)
| Creates an asynchronous subscription with a timeout.
NATS_EXTERN natsStatus | natsConnection_SubscribeSync (natsSubscription **sub, natsConnection *nc, const char *subject)
| Creates a synchronous subcription.
NATS_EXTERN natsStatus | natsConnection_QueueSubscribe (natsSubscription **sub, natsConnection *nc, const char *subject, const char *queueGroup, natsMsgHandler cb, void *cbClosure)
| Creates an asynchronous queue subscriber.
NATS_EXTERN natsStatus | natsConnection_QueueSubscribeTimeout (natsSubscription **sub, natsConnection *nc, const char *subject, const char *queueGroup, int64_t timeout, natsMsgHandler cb, void *cbClosure)
| Creates an asynchronous queue subscriber with a timeout.
NATS_EXTERN natsStatus | natsConnection_QueueSubscribeSync (natsSubscription **sub, natsConnection *nc, const char *subject, const char *queueGroup)
| Creates a synchronous queue subscriber.
NATS_EXTERN natsStatus | natsSubscription_NoDeliveryDelay (natsSubscription *sub)
| Enables the No Delivery Delay mode.
NATS_EXTERN natsStatus | natsSubscription_NextMsg (natsMsg **nextMsg, natsSubscription *sub, int64_t timeout)
| Returns the next available message.
NATS_EXTERN natsStatus | natsSubscription_Unsubscribe (natsSubscription *sub)
| Unsubscribes.
NATS_EXTERN natsStatus | natsSubscription_AutoUnsubscribe (natsSubscription *sub, int max)
| Auto-Unsubscribes.
NATS_EXTERN natsStatus | natsSubscription_QueuedMsgs (natsSubscription *sub, uint64_t *queuedMsgs)
| Gets the number of pending messages.
NATS_EXTERN int64_t | natsSubscription_GetID (natsSubscription *sub)
| Gets the subscription id.
NATS_EXTERN const char * | natsSubscription_GetSubject (natsSubscription *sub)
| Gets the subject name.
NATS_EXTERN natsStatus | natsSubscription_SetPendingLimits (natsSubscription *sub, int msgLimit, int bytesLimit)
| Sets the limit for pending messages and bytes.
NATS_EXTERN natsStatus | natsSubscription_GetPendingLimits (natsSubscription *sub, int *msgLimit, int *bytesLimit)
| Returns the current limit for pending messages and bytes.
NATS_EXTERN natsStatus | natsSubscription_GetPending (natsSubscription *sub, int *msgs, int *bytes)
| Returns the number of pending messages and bytes.
NATS_EXTERN natsStatus | natsSubscription_GetDelivered (natsSubscription *sub, int64_t *msgs)
| Returns the number of delivered messages.
NATS_EXTERN natsStatus | natsSubscription_GetDropped (natsSubscription *sub, int64_t *msgs)
| Returns the number of dropped messages.
NATS_EXTERN natsStatus | natsSubscription_GetMaxPending (natsSubscription *sub, int *msgs, int *bytes)
| Returns the maximum number of pending messages and bytes.
NATS_EXTERN natsStatus | natsSubscription_ClearMaxPending (natsSubscription *sub)
| Clears the statistics regarding the maximum pending values.
NATS_EXTERN natsStatus | natsSubscription_GetStats (natsSubscription *sub, int *pendingMsgs, int *pendingBytes, int *maxPendingMsgs, int *maxPendingBytes, int64_t *deliveredMsgs, int64_t *droppedMsgs)
| Get various statistics from this subscription.
NATS_EXTERN bool | natsSubscription_IsValid (natsSubscription *sub)
| Checks the validity of the subscription.
NATS_EXTERN natsStatus | natsSubscription_Drain (natsSubscription *sub)
| Drains the subscription with a default timeout.
NATS_EXTERN natsStatus | natsSubscription_DrainTimeout (natsSubscription *sub, int64_t timeout)
| Drains the subscription with the specified timeout.
NATS_EXTERN natsStatus | natsSubscription_WaitForDrainCompletion (natsSubscription *sub, int64_t timeout)
| Blocks until the drain operation completes.
NATS_EXTERN natsStatus | natsSubscription_DrainCompletionStatus (natsSubscription *sub)
| Returns the status of the drain after completion.
NATS_EXTERN natsStatus | natsSubscription_SetOnCompleteCB (natsSubscription *sub, natsOnCompleteCB cb, void *closure)
| Sets a completion callback.
NATS_EXTERN void | natsSubscription_Destroy (natsSubscription *sub)
| Destroys the subscription.
NATS_EXTERN natsStatus | stanConnection_Connect (stanConnection **sc, const char *clusterID, const char *clientID, stanConnOptions *options)
| Connects to a `NATS Streaming Server` using the provided options.
NATS_EXTERN natsStatus | stanConnection_GetNATSConnection (stanConnection *sc, natsConnection **nc)
| Returns the underlying NATS Connection.
NATS_EXTERN void | stanConnection_ReleaseNATSConnection (stanConnection *sc)
| Releases the NATS Connection.
NATS_EXTERN natsStatus | stanConnection_Close (stanConnection *sc)
| Closes the connection.
NATS_EXTERN natsStatus | stanConnection_Destroy (stanConnection *sc)
| Destroys the connection object.
NATS_EXTERN natsStatus | stanConnection_Publish (stanConnection *sc, const char *channel, const void *data, int dataLen)
| Publishes data on a channel.
NATS_EXTERN natsStatus | stanConnection_PublishAsync (stanConnection *sc, const char *channel, const void *data, int dataLen, stanPubAckHandler ah, void *ahClosure)
| Asynchronously publishes data on a channel.
NATS_EXTERN natsStatus | stanConnection_Subscribe (stanSubscription **sub, stanConnection *sc, const char *channel, stanMsgHandler cb, void *cbClosure, stanSubOptions *options)
| Creates a subscription.
NATS_EXTERN natsStatus | stanConnection_QueueSubscribe (stanSubscription **sub, stanConnection *sc, const char *channel, const char *queueGroup, stanMsgHandler cb, void *cbClosure, stanSubOptions *options)
| Creates a queue subscription.
NATS_EXTERN natsStatus | stanSubscription_SetOnCompleteCB (stanSubscription *sub, natsOnCompleteCB cb, void *closure)
| Sets a completion callback.
NATS_EXTERN natsStatus | stanSubscription_AckMsg (stanSubscription *sub, stanMsg *msg)
| Acknowledge a message.
NATS_EXTERN natsStatus | stanSubscription_Unsubscribe (stanSubscription *sub)
| Permanently remove a subscription.
NATS_EXTERN natsStatus | stanSubscription_Close (stanSubscription *sub)
| Closes the subscription.
NATS_EXTERN void | stanSubscription_Destroy (stanSubscription *sub)
| Destroys the subscription.
NATS_EXTERN natsStatus | jsOptions_Init (jsOptions *opts)
| Initializes a streaming context options structure.
NATS_EXTERN natsStatus | natsConnection_JetStream (jsCtx **js, natsConnection *nc, jsOptions *opts)
| Returns a new JetStream context.
NATS_EXTERN void | jsCtx_Destroy (jsCtx *js)
| Destroys the JetStream context.
NATS_EXTERN natsStatus | jsStreamConfig_Init (jsStreamConfig *cfg)
| Initializes a streaming configuration structure.
NATS_EXTERN natsStatus | jsPlacement_Init (jsPlacement *placement)
| Initializes a placement configuration structure.
NATS_EXTERN natsStatus | jsStreamSource_Init (jsStreamSource *source)
| Initializes a stream source configuration structure.
NATS_EXTERN natsStatus | jsExternalStream_Init (jsExternalStream *external)
| Initializes an external stream configuration structure.
NATS_EXTERN natsStatus | jsRePublish_Init (jsRePublish *rp)
| Initializes a republish structure.
NATS_EXTERN natsStatus | js_AddStream (jsStreamInfo **si, jsCtx *js, jsStreamConfig *cfg, jsOptions *opts, jsErrCode *errCode)
| Creates a stream.
NATS_EXTERN natsStatus | js_UpdateStream (jsStreamInfo **si, jsCtx *js, jsStreamConfig *cfg, jsOptions *opts, jsErrCode *errCode)
| Updates a stream.
NATS_EXTERN natsStatus | js_PurgeStream (jsCtx *js, const char *stream, jsOptions *opts, jsErrCode *errCode)
| Purges a stream.
NATS_EXTERN natsStatus | js_DeleteStream (jsCtx *js, const char *stream, jsOptions *opts, jsErrCode *errCode)
| Deletes a stream.
NATS_EXTERN natsStatus | js_GetMsg (natsMsg **msg, jsCtx *js, const char *stream, uint64_t seq, jsOptions *opts, jsErrCode *errCode)
| Retrieves a JetStream message from the stream by sequence.
NATS_EXTERN natsStatus | js_GetLastMsg (natsMsg **msg, jsCtx *js, const char *stream, const char *subject, jsOptions *opts, jsErrCode *errCode)
| Retrieves the last JetStream message from the stream for a given subject.
NATS_EXTERN natsStatus | jsDirectGetMsgOptions_Init (jsDirectGetMsgOptions *opts)
| Initializes a direct get message options structure.
NATS_EXTERN natsStatus | js_DirectGetMsg (natsMsg **msg, jsCtx *js, const char *stream, jsOptions *opts, jsDirectGetMsgOptions *dgOpts)
| Retrieves directly a JetStream message based on provided options.
NATS_EXTERN natsStatus | js_DeleteMsg (jsCtx *js, const char *stream, uint64_t seq, jsOptions *opts, jsErrCode *errCode)
| Deletes a message from the stream.
NATS_EXTERN natsStatus | js_EraseMsg (jsCtx *js, const char *stream, uint64_t seq, jsOptions *opts, jsErrCode *errCode)
| Erases a message from the stream.
NATS_EXTERN natsStatus | js_GetStreamInfo (jsStreamInfo **si, jsCtx *js, const char *stream, jsOptions *opts, jsErrCode *errCode)
| Retreives information from a stream.
NATS_EXTERN void | jsStreamInfo_Destroy (jsStreamInfo *si)
| Destroys the stream information object.
NATS_EXTERN natsStatus | js_Streams (jsStreamInfoList **list, jsCtx *js, jsOptions *opts, jsErrCode *errCode)
| Retrieves the list of all available streams.
NATS_EXTERN void | jsStreamInfoList_Destroy (jsStreamInfoList *list)
| Destroys the stream information list object.
NATS_EXTERN natsStatus | js_StreamNames (jsStreamNamesList **list, jsCtx *js, jsOptions *opts, jsErrCode *errCode)
| Retrieves the list of all available stream names.
NATS_EXTERN void | jsStreamNamesList_Destroy (jsStreamNamesList *list)
| Destroys the stream names list object.
NATS_EXTERN natsStatus | jsConsumerConfig_Init (jsConsumerConfig *cc)
| Initializes a consumer configuration structure.
NATS_EXTERN natsStatus | js_AddConsumer (jsConsumerInfo **ci, jsCtx *js, const char *stream, jsConsumerConfig *cfg, jsOptions *opts, jsErrCode *errCode)
| Adds a JetStream consumer.
NATS_EXTERN natsStatus | js_UpdateConsumer (jsConsumerInfo **ci, jsCtx *js, const char *stream, jsConsumerConfig *cfg, jsOptions *opts, jsErrCode *errCode)
| Updates a JetStream consumer.
NATS_EXTERN natsStatus | js_GetConsumerInfo (jsConsumerInfo **ci, jsCtx *js, const char *stream, const char *consumer, jsOptions *opts, jsErrCode *errCode)
| Retrieves information about a consumer.
NATS_EXTERN natsStatus | js_DeleteConsumer (jsCtx *js, const char *stream, const char *consumer, jsOptions *opts, jsErrCode *errCode)
| Deletes a consumer.
NATS_EXTERN void | jsConsumerInfo_Destroy (jsConsumerInfo *ci)
| Destroys the consumer information object.
NATS_EXTERN natsStatus | js_Consumers (jsConsumerInfoList **list, jsCtx *js, const char *stream, jsOptions *opts, jsErrCode *errCode)
| Retrieves the list of all available consumers for a stream.
NATS_EXTERN void | jsConsumerInfoList_Destroy (jsConsumerInfoList *list)
| Destroys the consumer information list object.
NATS_EXTERN natsStatus | js_ConsumerNames (jsConsumerNamesList **list, jsCtx *js, const char *stream, jsOptions *opts, jsErrCode *errCode)
| Retrieves the list of all available consumer names for a stream.
NATS_EXTERN void | jsConsumerNamesList_Destroy (jsConsumerNamesList *list)
| Destroys the consumer names list object.
NATS_EXTERN natsStatus | js_GetAccountInfo (jsAccountInfo **ai, jsCtx *js, jsOptions *opts, jsErrCode *errCode)
| Retrieves information about the JetStream usage from an account.
NATS_EXTERN void | jsAccountInfo_Destroy (jsAccountInfo *ai)
| Destroys the account information object.
NATS_EXTERN natsStatus | jsPubOptions_Init (jsPubOptions *opts)
| Initializes a publish options structure.
NATS_EXTERN natsStatus | js_Publish (jsPubAck **pubAck, jsCtx *js, const char *subj, const void *data, int dataLen, jsPubOptions *opts, jsErrCode *errCode)
| Publishes data on a subject to JetStream.
NATS_EXTERN natsStatus | js_PublishMsg (jsPubAck **pubAck, jsCtx *js, natsMsg *msg, jsPubOptions *opts, jsErrCode *errCode)
| Publishes a message to JetStream.
NATS_EXTERN void | jsPubAck_Destroy (jsPubAck *pubAck)
| Destroys the publish acknowledgment object.
NATS_EXTERN natsStatus | js_PublishAsync (jsCtx *js, const char *subj, const void *data, int dataLen, jsPubOptions *opts)
| Publishes data to JetStream but does not wait for a jsPubAck.
NATS_EXTERN natsStatus | js_PublishMsgAsync (jsCtx *js, natsMsg **msg, jsPubOptions *opts)
| Publishes a message to JetStream but does not wait for a jsPubAck.
NATS_EXTERN natsStatus | js_PublishAsyncComplete (jsCtx *js, jsPubOptions *opts)
| Wait for all outstanding messages to be acknowledged.
NATS_EXTERN natsStatus | js_PublishAsyncGetPendingList (natsMsgList *pending, jsCtx *js)
| Returns the list of pending messages published asynchronously.
NATS_EXTERN natsStatus | jsSubOptions_Init (jsSubOptions *opts)
| Initializes a subscribe options structure.
NATS_EXTERN natsStatus | js_Subscribe (natsSubscription **sub, jsCtx *js, const char *subject, natsMsgHandler cb, void *cbClosure, jsOptions *opts, jsSubOptions *subOpts, jsErrCode *errCode)
| Create an asynchronous subscription.
NATS_EXTERN natsStatus | js_SubscribeSync (natsSubscription **sub, jsCtx *js, const char *subject, jsOptions *opts, jsSubOptions *subOpts, jsErrCode *errCode)
| Create a synchronous subscription.
NATS_EXTERN natsStatus | js_PullSubscribe (natsSubscription **sub, jsCtx *js, const char *subject, const char *durable, jsOptions *opts, jsSubOptions *subOpts, jsErrCode *errCode)
| Create a pull subscriber.
NATS_EXTERN natsStatus | natsSubscription_Fetch (natsMsgList *list, natsSubscription *sub, int batch, int64_t timeout, jsErrCode *errCode)
| Fetches messages for a pull subscription.
NATS_EXTERN natsStatus | jsFetchRequest_Init (jsFetchRequest *request)
| Initializes a fetch request options structure.
NATS_EXTERN natsStatus | natsSubscription_FetchRequest (natsMsgList *list, natsSubscription *sub, jsFetchRequest *request)
| Fetches messages for a pull subscription with a complete request configuration.
NATS_EXTERN natsStatus | natsSubscription_GetConsumerInfo (jsConsumerInfo **ci, natsSubscription *sub, jsOptions *opts, jsErrCode *errCode)
| Returns the jsConsumerInfo associated with this subscription.
NATS_EXTERN natsStatus | natsSubscription_GetSequenceMismatch (jsConsumerSequenceMismatch *csm, natsSubscription *sub)
| Returns the consumer sequence mismatch information.
NATS_EXTERN natsStatus | natsMsg_GetMetaData (jsMsgMetaData **new_meta, natsMsg *msg)
| Returns metadata from this JetStream message.
NATS_EXTERN void | jsMsgMetaData_Destroy (jsMsgMetaData *meta)
| Destroys the message metadata object.
NATS_EXTERN natsStatus | natsMsg_Ack (natsMsg *msg, jsOptions *opts)
| Acknowledges a message.
NATS_EXTERN natsStatus | natsMsg_AckSync (natsMsg *msg, jsOptions *opts, jsErrCode *errCode)
| Acknowledges a message and wait for a confirmation.
NATS_EXTERN natsStatus | natsMsg_Nak (natsMsg *msg, jsOptions *opts)
| Negatively acknowledges a message.
NATS_EXTERN natsStatus | natsMsg_NakWithDelay (natsMsg *msg, int64_t delay, jsOptions *opts)
| Negatively acknowledges a message.
NATS_EXTERN natsStatus | natsMsg_InProgress (natsMsg *msg, jsOptions *opts)
| Resets redelivery timer on the server.
NATS_EXTERN natsStatus | natsMsg_Term (natsMsg *msg, jsOptions *opts)
| Abandon this message.
NATS_EXTERN uint64_t | natsMsg_GetSequence (natsMsg *msg)
| Returns the sequence number of this JetStream message.
NATS_EXTERN int64_t | natsMsg_GetTime (natsMsg *msg)
| Returns the timestamp (in UTC) of this JetStream message.
NATS_EXTERN natsStatus | kvConfig_Init (kvConfig *cfg)
| Initializes a KeyValue configuration structure.
NATS_EXTERN natsStatus | js_CreateKeyValue (kvStore **new_kv, jsCtx *js, kvConfig *cfg)
| Creates a KeyValue store with a given configuration.
NATS_EXTERN natsStatus | js_KeyValue (kvStore **new_kv, jsCtx *js, const char *bucket)
| Looks-up and binds to an existing KeyValue store.
NATS_EXTERN natsStatus | js_DeleteKeyValue (jsCtx *js, const char *bucket)
| Deletes a KeyValue store.
NATS_EXTERN void | kvStore_Destroy (kvStore *kv)
| Destroys a KeyValue store object.
NATS_EXTERN const char * | kvEntry_Bucket (kvEntry *e)
| Returns the name of the bucket the data was loaded from.
NATS_EXTERN const char * | kvEntry_Key (kvEntry *e)
| Returns the name of the key that was retrieved.
NATS_EXTERN const void * | kvEntry_Value (kvEntry *e)
| Returns the value for this key.
NATS_EXTERN int | kvEntry_ValueLen (kvEntry *e)
| Returns the value length for this key.
NATS_EXTERN const char * | kvEntry_ValueString (kvEntry *e)
| Returns the value, as a string, for this key.
NATS_EXTERN uint64_t | kvEntry_Revision (kvEntry *e)
| Returns the unique sequence for this value.
NATS_EXTERN int64_t | kvEntry_Created (kvEntry *e)
| Returns the time (in UTC) the data was put in the bucket.
NATS_EXTERN uint64_t | kvEntry_Delta (kvEntry *e)
| Returns the distance from the latest value.
NATS_EXTERN kvOperation | kvEntry_Operation (kvEntry *e)
| Returns the type of operation of this value.
NATS_EXTERN void | kvEntry_Destroy (kvEntry *e)
| Destroys the KeyValue entry object.
NATS_EXTERN natsStatus | kvStore_Get (kvEntry **new_entry, kvStore *kv, const char *key)
| Returns the latest entry for the key.
NATS_EXTERN natsStatus | kvStore_GetRevision (kvEntry **new_entry, kvStore *kv, const char *key, uint64_t revision)
| Returns the entry at the specific revision for the key.
NATS_EXTERN natsStatus | kvStore_Put (uint64_t *rev, kvStore *kv, const char *key, const void *data, int len)
| Places the new value for the key into the store.
NATS_EXTERN natsStatus | kvStore_PutString (uint64_t *rev, kvStore *kv, const char *key, const char *data)
| Places the new value (as a string) for the key into the store.
NATS_EXTERN natsStatus | kvStore_Create (uint64_t *rev, kvStore *kv, const char *key, const void *data, int len)
| Places the value for the key into the store if and only if the key does not exist.
NATS_EXTERN natsStatus | kvStore_CreateString (uint64_t *rev, kvStore *kv, const char *key, const char *data)
| Places the value (as a string) for the key into the store if and only if the key does not exist.
NATS_EXTERN natsStatus | kvStore_Update (uint64_t *rev, kvStore *kv, const char *key, const void *data, int len, uint64_t last)
| Updates the value for the key into the store if and only if the latest revision matches.
NATS_EXTERN natsStatus | kvStore_UpdateString (uint64_t *rev, kvStore *kv, const char *key, const char *data, uint64_t last)
| Updates the value (as a string) for the key into the store if and only if the latest revision matches.
NATS_EXTERN natsStatus | kvStore_Delete (kvStore *kv, const char *key)
| Deletes a key by placing a delete marker and leaving all revisions.
NATS_EXTERN natsStatus | kvStore_Purge (kvStore *kv, const char *key, kvPurgeOptions *opts)
| Deletes a key by placing a purge marker and removing all revisions.
NATS_EXTERN natsStatus | kvWatchOptions_Init (kvWatchOptions *opts)
| Initializes a KeyValue watcher options structure.
NATS_EXTERN natsStatus | kvPurgeOptions_Init (kvPurgeOptions *opts)
| Initializes a KeyValue purge options structure.
NATS_EXTERN natsStatus | kvStore_PurgeDeletes (kvStore *kv, kvPurgeOptions *opts)
| Purge and removes delete markers.
NATS_EXTERN natsStatus | kvStore_Watch (kvWatcher **new_watcher, kvStore *kv, const char *keys, kvWatchOptions *opts)
| Returns a watcher for any updates to keys that match the `keys` argument.
NATS_EXTERN natsStatus | kvStore_WatchAll (kvWatcher **new_watcher, kvStore *kv, kvWatchOptions *opts)
| Returns a watcher for any updates to any keys of the KeyValue store bucket.
NATS_EXTERN natsStatus | kvStore_Keys (kvKeysList *list, kvStore *kv, kvWatchOptions *opts)
| Returns all keys in the bucket.
NATS_EXTERN void | kvKeysList_Destroy (kvKeysList *list)
| Destroys this list of KeyValue store key strings.
NATS_EXTERN natsStatus | kvStore_History (kvEntryList *list, kvStore *kv, const char *key, kvWatchOptions *opts)
| Returns all historical entries for the key.
NATS_EXTERN void | kvEntryList_Destroy (kvEntryList *list)
| Destroys this list of KeyValue store entries.
NATS_EXTERN const char * | kvStore_Bucket (kvStore *kv)
| Returns the bucket name of this KeyValue store object.
NATS_EXTERN natsStatus | kvStore_Status (kvStatus **new_status, kvStore *kv)
| Returns the status and configuration of a bucket.
NATS_EXTERN natsStatus | kvWatcher_Next (kvEntry **new_entry, kvWatcher *w, int64_t timeout)
| Returns the next entry for this watcher.
NATS_EXTERN natsStatus | kvWatcher_Stop (kvWatcher *w)
| Stops the watcher.
NATS_EXTERN void | kvWatcher_Destroy (kvWatcher *w)
| Destroys the KeyValue watcher object.
NATS_EXTERN const char * | kvStatus_Bucket (kvStatus *sts)
| Returns the bucket name.
NATS_EXTERN uint64_t | kvStatus_Values (kvStatus *sts)
| Returns how many messages are in the bucket, including historical values.
NATS_EXTERN int64_t | kvStatus_History (kvStatus *sts)
| Returns the configured history kept per key.
NATS_EXTERN int64_t | kvStatus_TTL (kvStatus *sts)
| Returns how long the bucket keeps values for.
NATS_EXTERN int64_t | kvStatus_Replicas (kvStatus *sts)
| Returns the number of replicas to keep for a bucket.
NATS_EXTERN uint64_t | kvStatus_Bytes (kvStatus *sts)
| Returns the size (in bytes) of this bucket.
NATS_EXTERN void | kvStatus_Destroy (kvStatus *sts)
| Destroys the KeyValue status object.

## Macro Definition Documentation

## ◆ NATS_EXTERN

#define NATS_EXTERN

Based on the platform this is compiled on, it will resolve to the appropriate instruction so that objects are properly exported when building the shared library.

## ◆ NATS_DEFAULT_URL

#define NATS_DEFAULT_URL "nats://localhost:4222"

This is the default URL a `NATS Server`, running with default listen port, can be reached at.

## ◆ JSMsgSize

#define JSMsgSize "Nats-Msg-Size"

When creating a JetStream consumer, if the `HeadersOnly` boolean is specified, the subscription will receive messages with headers only (no message payload), and a header of this name containing the size of the message payload that was omitted.

See also
  jsConsumerConfig

## ◆ JSMsgRollup

#define JSMsgRollup "Nats-Rollup"

If message is sent to a stream's subject with this header set, and the stream is configured with `AllowRollup` option, then the server will insert this message and delete all previous messages in the stream.

If the header is set to JSMsgRollupSubject, then only messages on the specific subject this message is sent to are deleted.

If the header is set to JSMsgRollupAll, then all messages on all subjects are deleted.

## ◆ JSMsgRollupSubject

#define JSMsgRollupSubject "sub"

This is a possible value for the JSMsgRollup header indicating that only messages for the subject the rollup message is sent will be removed.

See also
  JSMsgRollup

## ◆ JSMsgRollupAll

#define JSMsgRollupAll "all"

This is a possible value for the JSMsgRollup header indicating that all messages for all subjects will be removed.

See also
  JSMsgRollup

## ◆ JSStream

#define JSStream "Nats-Stream"

## ◆ JSSequence

#define JSSequence "Nats-Sequence"

## ◆ JSLastSequence

#define JSLastSequence "Nats-Last-Sequence"

## ◆ JSTimeStamp

#define JSTimeStamp "Nats-Time-Stamp"

## ◆ JSSubject

#define JSSubject "Nats-Subject"

## Typedef Documentation

## ◆ natsSock

typedef int natsSock