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

Functions
Messages
Functions » JetStream

## Functions
NATS_EXTERN natsStatus | natsMsg_GetMetaData (jsMsgMetaData **new_meta, natsMsg *msg)
| Returns metadata from this JetStream message. More...
NATS_EXTERN void | jsMsgMetaData_Destroy (jsMsgMetaData *meta)
| Destroys the message metadata object. More...
NATS_EXTERN natsStatus | natsMsg_Ack (natsMsg *msg, jsOptions *opts)
| Acknowledges a message. More...
NATS_EXTERN natsStatus | natsMsg_AckSync (natsMsg *msg, jsOptions *opts, jsErrCode *errCode)
| Acknowledges a message and wait for a confirmation. More...
NATS_EXTERN natsStatus | natsMsg_Nak (natsMsg *msg, jsOptions *opts)
| Negatively acknowledges a message. More...
NATS_EXTERN natsStatus | natsMsg_NakWithDelay (natsMsg *msg, int64_t delay, jsOptions *opts)
| Negatively acknowledges a message. More...
NATS_EXTERN natsStatus | natsMsg_InProgress (natsMsg *msg, jsOptions *opts)
| Resets redelivery timer on the server. More...
NATS_EXTERN natsStatus | natsMsg_Term (natsMsg *msg, jsOptions *opts)
| Abandon this message. More...
NATS_EXTERN uint64_t | natsMsg_GetSequence (natsMsg *msg)
| Returns the sequence number of this JetStream message. More...
NATS_EXTERN int64_t | natsMsg_GetTime (natsMsg *msg)
| Returns the timestamp (in UTC) of this JetStream message. More...

## Detailed Description

Function specific to JetStream messages

## Function Documentation

## ◆ natsMsg_GetMetaData()

NATS_EXTERN natsStatus natsMsg_GetMetaData | ( | jsMsgMetaData ** | new_meta,
|  | natsMsg * | msg
| ) |  |

This works only for JetStream messages that have been received through a subscription callback or calling natsSubscription_NextMsg.

Note
  The user must destroy the returned object with jsMsgMetaData_Destroy.
  This function will return an error for non JetStream messages.

Parameters

  new_meta | the location where to store the pointer to the newly created jsMsgMetaData object.
  msg | the pointer to the natsMsg object, which should be a JetStream message received through a subscription callback or natsSubscription_NextMsg.

## ◆ jsMsgMetaData_Destroy()

NATS_EXTERN void jsMsgMetaData_Destroy | ( | jsMsgMetaData * | meta | ) |

Releases memory allocated for this jsMsgMetaData object.

Parameters

  meta | the pointer to the jsMsgMetaData object.

## ◆ natsMsg_Ack()

NATS_EXTERN natsStatus natsMsg_Ack | ( | natsMsg * | msg,
|  | jsOptions * | opts
| ) |  |

This tells the server that the message was successfully processed and it can move on to the next message.

Parameters

  msg | the pointer to the natsMsg object.
  opts | the pointer to the jsOptions object, possibly `NULL`.

## ◆ natsMsg_AckSync()

NATS_EXTERN natsStatus natsMsg_AckSync | ( | natsMsg * | msg,
|  | jsOptions * | opts,
|  | jsErrCode * | errCode
| ) |  |

This is the synchronous version of natsMsg_Ack. This indicates successful message processing, and waits for confirmation from the server that the acknowledgment has been processed.

Parameters

  msg | the pointer to the natsMsg object.
  opts | the pointer to the jsOptions object, possibly `NULL`.
  errCode | the location where to store the JetStream specific error code, or `NULL` if not needed.

## ◆ natsMsg_Nak()

NATS_EXTERN natsStatus natsMsg_Nak | ( | natsMsg * | msg,
|  | jsOptions * | opts
| ) |  |

This tells the server to redeliver the message. You can configure the number of redeliveries by passing `MaxDeliver` when you subscribe.

The default is infinite redeliveries.

Parameters

  msg | the pointer to the natsMsg object.
  opts | the pointer to the jsOptions object, possibly `NULL`.

## ◆ natsMsg_NakWithDelay()

NATS_EXTERN natsStatus natsMsg_NakWithDelay | ( | natsMsg * | msg,
|  | int64_t | delay,
|  | jsOptions * | opts
| ) |  |

This tells the server to redeliver the message after the given `delay` duration expressed in milliseconds. You can configure the number of redeliveries by passing `MaxDeliver` when you subscribe.

The default is infinite redeliveries.

Parameters

  msg | the pointer to the natsMsg object.
  delay | the amount of time before the redelivery expressed in milliseconds.
  opts | the pointer to the jsOptions object, possibly `NULL`.

## ◆ natsMsg_InProgress()

NATS_EXTERN natsStatus natsMsg_InProgress | ( | natsMsg * | msg,
|  | jsOptions * | opts
| ) |  |

This tells the server that this message is being worked on. It resets the redelivery timer on the server.

Parameters

  msg | the pointer to the natsMsg object.
  opts | the pointer to the jsOptions object, possibly `NULL`.

## ◆ natsMsg_Term()

NATS_EXTERN natsStatus natsMsg_Term | ( | natsMsg * | msg,
|  | jsOptions * | opts
| ) |  |

This tells the server to not redeliver this message, regardless of the value `MaxDeliver`.

Parameters

  msg | the pointer to the natsMsg object.
  opts | the pointer to the jsOptions object, possibly `NULL`.

## ◆ natsMsg_GetSequence()

NATS_EXTERN uint64_t natsMsg_GetSequence | ( | natsMsg * | msg | ) |

Returns the sequence number of this JetStream message, or `0` if `msg` is `NULL` or not a JetStream message.

Note
  This applies to JetStream messages retrieved with js_GetMsg or js_GetLastMsg.

Parameters

  msg | the pointer to the natsMsg object.

## ◆ natsMsg_GetTime()

NATS_EXTERN int64_t natsMsg_GetTime | ( | natsMsg * | msg | ) |

Returns the timestamp (in UTC) of this JetStream message, or `0` if `msg` is `NULL` or not a JetStream message.

Note
  This applies to JetStream messages retrieved with js_GetMsg or js_GetLastMsg.

Parameters

  msg | the pointer to the natsMsg object.