text: /**\file */
  #ifndef SLIC_DECLARATIONS_CaptureClient_H
  #define SLIC_DECLARATIONS_CaptureClient_H
  #include "MaxSLiCInterface.h"
  #ifdef __cplusplus
  extern "C" {
  #endif /* __cplusplus */
  
  #define CaptureClient_capture_if_name ("QSFP_TOP_10G_PORT1")
  #define CaptureClient_USE_NETWORK_MANAGER (1)
  #define CaptureClient_server_if_name ("QSFP_TOP_10G_PORT2")
  #define CaptureClient_capture_precision (8)
  
  
  /*----------------------------------------------------------------------------*/
  /*---------------------- Interface enableRemoteCapture -----------------------*/
  /*----------------------------------------------------------------------------*/
  
  
  
  
  /**
   * \brief Basic static function for the interface 'enableRemoteCapture'.
   * 
   * \param [in] param_socketsALen Interface Parameter "socketsALen".
   * \param [in] param_socketsBLen Interface Parameter "socketsBLen".
   * \param [in] param_socketsA Interface Parameter array socketsA[] should be of size 2.
   * \param [in] param_socketsB Interface Parameter array socketsB[] should be of size 2.
   */
  void CaptureClient_enableRemoteCapture(
  	uint8_t param_socketsALen,
  	uint8_t param_socketsBLen,
  	const uint8_t *param_socketsA,
  	const uint8_t *param_socketsB);
  
  /**
   * \brief Basic static non-blocking function for the interface 'enableRemoteCapture'.
   * 
   * Schedule to run on an engine and return immediately.
   * The status of the run can be checked either by ::max_wait or ::max_nowait;
   * note that one of these *must* be called, so that associated memory can be released.
   * 
   * 
   * \param [in] param_socketsALen Interface Parameter "socketsALen".
   * \param [in] param_socketsBLen Interface Parameter "socketsBLen".
   * \param [in] param_socketsA Interface Parameter array socketsA[] should be of size 2.
   * \param [in] param_socketsB Interface Parameter array socketsB[] should be of size 2.
   * \return A handle on the execution status, or NULL in case of error.
   */
  max_run_t *CaptureClient_enableRemoteCapture_nonblock(
  	uint8_t param_socketsALen,
  	uint8_t param_socketsBLen,
  	const uint8_t *param_socketsA,
  	const uint8_t *param_socketsB);
  
  /**
   * \brief Advanced static interface, structure for the engine interface 'enableRemoteCapture'
   * 
   */
  typedef struct { 
  	uint8_t param_socketsALen; /**<  [in] Interface Parameter "socketsALen". */
  	uint8_t param_socketsBLen; /**<  [in] Interface Parameter "socketsBLen". */
  	const uint8_t *param_socketsA; /**<  [in] Interface Parameter array socketsA[] should be of size 2. */
  	const uint8_t *param_socketsB; /**<  [in] Interface Parameter array socketsB[] should be of size 2. */
  } CaptureClient_enableRemoteCapture_actions_t;
  
  /**
   * \brief Advanced static function for the interface 'enableRemoteCapture'.
   * 
   * \param [in] engine The engine on which the actions will be executed.
   * \param [in,out] interface_actions Actions to be executed.
   */
  void CaptureClient_enableRemoteCapture_run(
  	max_engine_t *engine,
  	CaptureClient_enableRemoteCapture_actions_t *interface_actions);
  
  /**
   * \brief Advanced static non-blocking function for the interface 'enableRemoteCapture'.
   *
   * Schedule the actions to run on the engine and return immediately.
   * The status of the run can be checked either by ::max_wait or ::max_nowait;
   * note that one of these *must* be called, so that associated memory can be released.
   *
   * 
   * \param [in] engine The engine on which the actions will be executed.
   * \param [in] interface_actions Actions to be executed.
   * \return A handle on the execution status of the actions, or NULL in case of error.
   */
  max_run_t *CaptureClient_enableRemoteCapture_run_nonblock(
  	max_engine_t *engine,
  	CaptureClient_enableRemoteCapture_actions_t *interface_actions);
  
  /**
   * \brief Group run advanced static function for the interface 'enableRemoteCapture'.
   * 
   * \param [in] group Group to use.
   * \param [in,out] interface_actions Actions to run.
   *
   * Run the actions on the first device available in the group.
   */
  void CaptureClient_enableRemoteCapture_run_group(max_group_t *group, CaptureClient_enableRemoteCapture_actions_t *interface_actions);
  
  /**
   * \brief Group run advanced static non-blocking function for the interface 'enableRemoteCapture'.
   * 
   *
   * Schedule the actions to run on the first device available in the group and return immediately.
   * The status of the run must be checked with ::max_wait. 
   * Note that use of ::max_nowait is prohibited with non-blocking running on groups:
   * see the ::max_run_group_nonblock documentation for more explanation.
   *
   * \param [in] group Group to use.
   * \param [in] interface_actions Actions to run.
   * \return A handle on the execution status of the actions, or NULL in case of error.
   */
  max_run_t *CaptureClient_enableRemoteCapture_run_group_nonblock(max_group_t *group, CaptureClient_enableRemoteCapture_actions_t *interface_actions);
  
  /**
   * \brief Array run advanced static function for the interface 'enableRemoteCapture'.
   * 
   * \param [in] engarray The array of devices to use.
   * \param [in,out] interface_actions The array of actions to run.
   *
   * Run the array of actions on the array of engines.  The length of interface_actions
   * must match the size of engarray.
   */
  void CaptureClient_enableRemoteCapture_run_array(max_engarray_t *engarray, CaptureClient_enableRemoteCapture_actions_t *interface_actions[]);
  
  /**
   * \brief Array run advanced static non-blocking function for the interface 'enableRemoteCapture'.
   * 
   *
   * Schedule to run the array of actions on the array of engines, and return immediately.
   * The length of interface_actions must match the size of engarray.
   * The status of the run can be checked either by ::max_wait or ::max_nowait;
   * note that one of these *must* be called, so that associated memory can be released.
   *
   * \param [in] engarray The array of devices to use.
   * \param [in] interface_actions The array of actions to run.
   * \return A handle on the execution status of the actions, or NULL in case of error.
   */
  max_run_t *CaptureClient_enableRemoteCapture_run_array_nonblock(max_engarray_t *engarray, CaptureClient_enableRemoteCapture_actions_t *interface_actions[]);
  
  /**
   * \brief Converts a static-interface action struct into a dynamic-interface max_actions_t struct.
   *
   * Note that this is an internal utility function used by other functions in the static interface.
   *
   * \param [in] maxfile The maxfile to use.
   * \param [in] interface_actions The interface-specific actions to run.
   * \return The dynamic-interface actions to run, or NULL in case of error.
   */
  max_actions_t* CaptureClient_enableRemoteCapture_convert(max_file_t *maxfile, CaptureClient_enableRemoteCapture_actions_t *interface_actions);
  
  
  
  /*----------------------------------------------------------------------------*/
  /*----------------------- Interface enableLocalCapture -----------------------*/
  /*----------------------------------------------------------------------------*/
  
  
  
  
  /**
   * \brief Basic static function for the interface 'enableLocalCapture'.
   * 
   */
  void CaptureClient_enableLocalCapture(
  	void);
  
  /**
   * \brief Basic static non-blocking function for the interface 'enableLocalCapture'.
   * 
   * Schedule to run on an engine and return immediately.
   * The status of the run can be checked either by ::max_wait or ::max_nowait;
   * note that one of these *must* be called, so that associated memory can be released.
   * 
   * 
   * \return A handle on the execution status, or NULL in case of error.
   */
  max_run_t *CaptureClient_enableLocalCapture_nonblock(
  	void);
  
  /**
   * \brief Advanced static interface, structure for the engine interface 'enableLocalCapture'
   * 
   */
  typedef struct { 
  	int : 0;    /**< non-empty struct with no named members */
  } CaptureClient_enableLocalCapture_actions_t;
  
  /**
   * \brief Advanced static function for the interface 'enableLocalCapture'.
   * 
   * \param [in] engine The engine on which the actions will be executed.
   * \param [in,out] interface_actions Actions to be executed.
   */
  void CaptureClient_enableLocalCapture_run(
  	max_engine_t *engine,
  	CaptureClient_enableLocalCapture_actions_t *interface_actions);
  
  /**
   * \brief Advanced static non-blocking function for the interface 'enableLocalCapture'.
   *
   * Schedule the actions to run on the engine and return immediately.
   * The status of the run can be checked either by ::max_wait or ::max_nowait;
   * note that one of these *must* be called, so that associated memory can be released.
   *
   * 
   * \param [in] engine The engine on which the actions will be executed.
   * \param [in] interface_actions Actions to be executed.
   * \return A handle on the execution status of the actions, or NULL in case of error.
   */
  max_run_t *CaptureClient_enableLocalCapture_run_nonblock(
  	max_engine_t *engine,
  	CaptureClient_enableLocalCapture_actions_t *interface_actions);
  
  /**
   * \brief Group run advanced static function for the interface 'enableLocalCapture'.
   * 
   * \param [in] group Group to use.
   * \param [in,out] interface_actions Actions to run.
   *
   * Run the actions on the first device available in the group.
   */
  void CaptureClient_enableLocalCapture_run_group(max_group_t *group, CaptureClient_enableLocalCapture_actions_t *interface_actions);
  
  /**
   * \brief Group run advanced static non-blocking function for the interface 'enableLocalCapture'.
   * 
   *
   * Schedule the actions to run on the first device available in the group and return immediately.
   * The status of the run must be checked with ::max_wait. 
   * Note that use of ::max_nowait is prohibited with non-blocking running on groups:
   * see the ::max_run_group_nonblock documentation for more explanation.
   *
   * \param [in] group Group to use.
   * \param [in] interface_actions Actions to run.
   * \return A handle on the execution status of the actions, or NULL in case of error.
   */
  max_run_t *CaptureClient_enableLocalCapture_run_group_nonblock(max_group_t *group, CaptureClient_enableLocalCapture_actions_t *interface_actions);
  
  /**
   * \brief Array run advanced static function for the interface 'enableLocalCapture'.
   * 
   * \param [in] engarray The array of devices to use.
   * \param [in,out] interface_actions The array of actions to run.
   *
   * Run the array of actions on the array of engines.  The length of interface_actions
   * must match the size of engarray.
   */
  void CaptureClient_enableLocalCapture_run_array(max_engarray_t *engarray, CaptureClient_enableLocalCapture_actions_t *interface_actions[]);
  
  /**
   * \brief Array run advanced static non-blocking function for the interface 'enableLocalCapture'.
   * 
   *
   * Schedule to run the array of actions on the array of engines, and return immediately.
   * The length of interface_actions must match the size of engarray.
   * The status of the run can be checked either by ::max_wait or ::max_nowait;
   * note that one of these *must* be called, so that associated memory can be released.
   *
   * \param [in] engarray The array of devices to use.
   * \param [in] interface_actions The array of actions to run.
   * \return A handle on the execution status of the actions, or NULL in case of error.
   */
  max_run_t *CaptureClient_enableLocalCapture_run_array_nonblock(max_engarray_t *engarray, CaptureClient_enableLocalCapture_actions_t *interface_actions[]);
  
  /**
   * \brief Converts a static-interface action struct into a dynamic-interface max_actions_t struct.
   *
   * Note that this is an internal utility function used by other functions in the static interface.
   *
   * \param [in] maxfile The maxfile to use.
   * \param [in] interface_actions The interface-specific actions to run.
   * \return The dynamic-interface actions to run, or NULL in case of error.
   */
  max_actions_t* CaptureClient_enableLocalCapture_convert(max_file_t *maxfile, CaptureClient_enableLocalCapture_actions_t *interface_actions);
  
  
  
  /*----------------------------------------------------------------------------*/
  /*---------------------------- Interface default -----------------------------*/
  /*----------------------------------------------------------------------------*/
  
  
  
  
  /**
   * \brief Basic static function for the interface 'default'.
   * 
   * \param [in] inscalar_SenderK_socketA0 Input scalar parameter "SenderK.socketA0".
   * \param [in] inscalar_SenderK_socketA1 Input scalar parameter "SenderK.socketA1".
   * \param [in] inscalar_SenderK_socketB0 Input scalar parameter "SenderK.socketB0".
   * \param [in] inscalar_SenderK_socketB1 Input scalar parameter "SenderK.socketB1".
   * \param [in] inscalar_SenderK_socketsALen Input scalar parameter "SenderK.socketsALen".
   * \param [in] inscalar_SenderK_socketsBLen Input scalar parameter "SenderK.socketsBLen".
   * \param [out] outscalar_SlicerFramer_network_mgmt_stream_from_host_tx_framed_eofCount Output scalar parameter "SlicerFramer_network_mgmt_stream_from_host_tx_framed.eofCount".
   * \param [out] outscalar_SlicerFramer_network_mgmt_stream_from_host_tx_framed_sofCount Output scalar parameter "SlicerFramer_network_mgmt_stream_from_host_tx_framed.sofCount".
   * \param [out] outscalar_ddrFifo_internalFifoFull Output scalar parameter "ddrFifo.internalFifoFull".
   * \param [out] outscalar_ddrFifo_memCmdStalling Output scalar parameter "ddrFifo.memCmdStalling".
   * \param [out] outscalar_ddrFifo_memFifoAlmostEmpty Output scalar parameter "ddrFifo.memFifoAlmostEmpty".
   * \param [out] outscalar_ddrFifo_memFifoAlmostFull Output scalar parameter "ddrFifo.memFifoAlmostFull".
   * \param [out] outscalar_ddrFifo_memFifoFillLevel Output scalar parameter "ddrFifo.memFifoFillLevel".
   * \param [out] outscalar_ddrFifo_memReadPointer Output scalar parameter "ddrFifo.memReadPointer".
   * \param [out] outscalar_ddrFifo_memWritePointer Output scalar parameter "ddrFifo.memWritePointer".
   * \param [out] outscalar_ddrFifo_shouldStallDownstream Output scalar parameter "ddrFifo.shouldStallDownstream".
   * \param [out] outscalar_network_mgmt_stream_to_host_rx_framed_FramedStreamPreprocessor_eofCount Output scalar parameter "network_mgmt_stream_to_host_rx_framed_FramedStreamPreprocessor.eofCount".
   * \param [out] outscalar_network_mgmt_stream_to_host_rx_framed_FramedStreamPreprocessor_sofCount Output scalar parameter "network_mgmt_stream_to_host_rx_framed_FramedStreamPreprocessor.sofCount".
   * \param [in] instream_network_mgmt_stream_from_host_tx_framed Stream "network_mgmt_stream_from_host_tx_framed".
   * \param [in] instream_size_network_mgmt_stream_from_host_tx_framed The size of the stream instream_network_mgmt_stream_from_host_tx_framed in bytes.
   * \param [out] outstream_network_mgmt_stream_to_host_rx_framed Stream "network_mgmt_stream_to_host_rx_framed".
   * \param [in] outstream_size_network_mgmt_stream_to_host_rx_framed The size of the stream outstream_network_mgmt_stream_to_host_rx_framed in bytes.
   * \param [out] outstream_toCpu Stream "toCpu".
   * \param [in] outstream_size_toCpu The size of the stream outstream_toCpu in bytes.
   * \param [in] inmem_timestampStream_COUNT_8_bcd_dates Mapped ROM inmem_timestampStream_COUNT_8_bcd_dates, should be of size (512 * sizeof(uint64_t)).
   * \param [in] inmem_timestampStream_COUNT_8_correctionInfo Mapped ROM inmem_timestampStream_COUNT_8_correctionInfo, should be of size (2 * sizeof(uint64_t)).
   * \param [in] inmem_timestampStream_COUNT_8_epoch Mapped ROM inmem_timestampStream_COUNT_8_epoch, should be of size (2 * sizeof(uint64_t)).
   * \param [in] inmem_timestampStream_COUNT_8_currentTime Input for mapped RAM timestampStream_COUNT_8.currentTime, should be of size (2 * sizeof(uint64_t))
   * \param [out] outmem_timestampStream_COUNT_8_currentTime Output for mapped RAM timestampStream_COUNT_8.currentTime, should be of size (2 * sizeof(uint64_t))
   * \param [in] inmem_timestampStream_COUNT_8_current_index Input for mapped RAM timestampStream_COUNT_8.current_index, should be of size (2 * sizeof(uint64_t))
   * \param [out] outmem_timestampStream_COUNT_8_current_index Output for mapped RAM timestampStream_COUNT_8.current_index, should be of size (2 * sizeof(uint64_t))
   * \param [in] routing_string A string containing comma-separated "from_name -> to_name" routing commands.
   */
  void CaptureClient(
  	uint64_t inscalar_SenderK_socketA0,
  	uint64_t inscalar_SenderK_socketA1,
  	uint64_t inscalar_SenderK_socketB0,
  	uint64_t inscalar_SenderK_socketB1,
  	uint64_t inscalar_SenderK_socketsALen,
  	uint64_t inscalar_SenderK_socketsBLen,
  	uint64_t *outscalar_SlicerFramer_network_mgmt_stream_from_host_tx_framed_eofCount,
  	uint64_t *outscalar_SlicerFramer_network_mgmt_stream_from_host_tx_framed_sofCount,
  	uint64_t *outscalar_ddrFifo_internalFifoFull,
  	uint64_t *outscalar_ddrFifo_memCmdStalling,
  	uint64_t *outscalar_ddrFifo_memFifoAlmostEmpty,
  	uint64_t *outscalar_ddrFifo_memFifoAlmostFull,
  	uint64_t *outscalar_ddrFifo_memFifoFillLevel,
  	uint64_t *outscalar_ddrFifo_memReadPointer,
  	uint64_t *outscalar_ddrFifo_memWritePointer,
  	uint64_t *outscalar_ddrFifo_shouldStallDownstream,
  	uint64_t *outscalar_network_mgmt_stream_to_host_rx_framed_FramedStreamPreprocessor_eofCount,
  	uint64_t *outscalar_network_mgmt_stream_to_host_rx_framed_FramedStreamPreprocessor_sofCount,
  	const void *instream_network_mgmt_stream_from_host_tx_framed,
  	size_t instream_size_network_mgmt_stream_from_host_tx_framed,
  	void *outstream_network_mgmt_stream_to_host_rx_framed,
  	size_t outstream_size_network_mgmt_stream_to_host_rx_framed,
  	void *outstream_toCpu,
  	size_t outstream_size_toCpu,
  	const uint64_t *inmem_timestampStream_COUNT_8_bcd_dates,
  	const uint64_t *inmem_timestampStream_COUNT_8_correctionInfo,
  	const uint64_t *inmem_timestampStream_COUNT_8_epoch,
  	const uint64_t *inmem_timestampStream_COUNT_8_currentTime,
  	uint64_t *outmem_timestampStream_COUNT_8_currentTime,
  	const uint64_t *inmem_timestampStream_COUNT_8_current_index,
  	uint64_t *outmem_timestampStream_COUNT_8_current_index,
  	const char * routing_string);
  
  /**
   * \brief Basic static non-blocking function for the interface 'default'.
   * 
   * Schedule to run on an engine and return immediately.
   * The status of the run can be checked either by ::max_wait or ::max_nowait;
   * note that one of these *must* be called, so that associated memory can be released.
   * 
   * 
   * \param [in] inscalar_SenderK_socketA0 Input scalar parameter "SenderK.socketA0".
   * \param [in] inscalar_SenderK_socketA1 Input scalar parameter "SenderK.socketA1".
   * \param [in] inscalar_SenderK_socketB0 Input scalar parameter "SenderK.socketB0".
   * \param [in] inscalar_SenderK_socketB1 Input scalar parameter "SenderK.socketB1".
   * \param [in] inscalar_SenderK_socketsALen Input scalar parameter "SenderK.socketsALen".
   * \param [in] inscalar_SenderK_socketsBLen Input scalar parameter "SenderK.socketsBLen".
   * \param [out] outscalar_SlicerFramer_network_mgmt_stream_from_host_tx_framed_eofCount Output scalar parameter "SlicerFramer_network_mgmt_stream_from_host_tx_framed.eofCount".
   * \param [out] outscalar_SlicerFramer_network_mgmt_stream_from_host_tx_framed_sofCount Output scalar parameter "SlicerFramer_network_mgmt_stream_from_host_tx_framed.sofCount".
   * \param [out] outscalar_ddrFifo_internalFifoFull Output scalar parameter "ddrFifo.internalFifoFull".
   * \param [out] outscalar_ddrFifo_memCmdStalling Output scalar parameter "ddrFifo.memCmdStalling".
   * \param [out] outscalar_ddrFifo_memFifoAlmostEmpty Output scalar parameter "ddrFifo.memFifoAlmostEmpty".
   * \param [out] outscalar_ddrFifo_memFifoAlmostFull Output scalar parameter "ddrFifo.memFifoAlmostFull".
   * \param [out] outscalar_ddrFifo_memFifoFillLevel Output scalar parameter "ddrFifo.memFifoFillLevel".
   * \param [out] outscalar_ddrFifo_memReadPointer Output scalar parameter "ddrFifo.memReadPointer".
   * \param [out] outscalar_ddrFifo_memWritePointer Output scalar parameter "ddrFifo.memWritePointer".
   * \param [out] outscalar_ddrFifo_shouldStallDownstream Output scalar parameter "ddrFifo.shouldStallDownstream".
   * \param [out] outscalar_network_mgmt_stream_to_host_rx_framed_FramedStreamPreprocessor_eofCount Output scalar parameter "network_mgmt_stream_to_host_rx_framed_FramedStreamPreprocessor.eofCount".
   * \param [out] outscalar_network_mgmt_stream_to_host_rx_framed_FramedStreamPreprocessor_sofCount Output scalar parameter "network_mgmt_stream_to_host_rx_framed_FramedStreamPreprocessor.sofCount".
   * \param [in] instream_network_mgmt_stream_from_host_tx_framed Stream "network_mgmt_stream_from_host_tx_framed".
   * \param [in] instream_size_network_mgmt_stream_from_host_tx_framed The size of the stream instream_network_mgmt_stream_from_host_tx_framed in bytes.
   * \param [out] outstream_network_mgmt_stream_to_host_rx_framed Stream "network_mgmt_stream_to_host_rx_framed".
   * \param [in] outstream_size_network_mgmt_stream_to_host_rx_framed The size of the stream outstream_network_mgmt_stream_to_host_rx_framed in bytes.
   * \param [out] outstream_toCpu Stream "toCpu".
   * \param [in] outstream_size_toCpu The size of the stream outstream_toCpu in bytes.
   * \param [in] inmem_timestampStream_COUNT_8_bcd_dates Mapped ROM inmem_timestampStream_COUNT_8_bcd_dates, should be of size (512 * sizeof(uint64_t)).
   * \param [in] inmem_timestampStream_COUNT_8_correctionInfo Mapped ROM inmem_timestampStream_COUNT_8_correctionInfo, should be of size (2 * sizeof(uint64_t)).
   * \param [in] inmem_timestampStream_COUNT_8_epoch Mapped ROM inmem_timestampStream_COUNT_8_epoch, should be of size (2 * sizeof(uint64_t)).
   * \param [in] inmem_timestampStream_COUNT_8_currentTime Input for mapped RAM timestampStream_COUNT_8.currentTime, should be of size (2 * sizeof(uint64_t))
   * \param [out] outmem_timestampStream_COUNT_8_currentTime Output for mapped RAM timestampStream_COUNT_8.currentTime, should be of size (2 * sizeof(uint64_t))
   * \param [in] inmem_timestampStream_COUNT_8_current_index Input for mapped RAM timestampStream_COUNT_8.current_index, should be of size (2 * sizeof(uint64_t))
   * \param [out] outmem_timestampStream_COUNT_8_current_index Output for mapped RAM timestampStream_COUNT_8.current_index, should be of size (2 * sizeof(uint64_t))
   * \param [in] routing_string A string containing comma-separated "from_name -> to_name" routing commands.
   * \return A handle on the execution status, or NULL in case of error.
   */
  max_run_t *CaptureClient_nonblock(
  	uint64_t inscalar_SenderK_socketA0,
  	uint64_t inscalar_SenderK_socketA1,
  	uint64_t inscalar_SenderK_socketB0,
  	uint64_t inscalar_SenderK_socketB1,
  	uint64_t inscalar_SenderK_socketsALen,
  	uint64_t inscalar_SenderK_socketsBLen,
  	uint64_t *outscalar_SlicerFramer_network_mgmt_stream_from_host_tx_framed_eofCount,
  	uint64_t *outscalar_SlicerFramer_network_mgmt_stream_from_host_tx_framed_sofCount,
  	uint64_t *outscalar_ddrFifo_internalFifoFull,
  	uint64_t *outscalar_ddrFifo_memCmdStalling,
  	uint64_t *outscalar_ddrFifo_memFifoAlmostEmpty,
  	uint64_t *outscalar_ddrFifo_memFifoAlmostFull,
  	uint64_t *outscalar_ddrFifo_memFifoFillLevel,
  	uint64_t *outscalar_ddrFifo_memReadPointer,
  	uint64_t *outscalar_ddrFifo_memWritePointer,
  	uint64_t *outscalar_ddrFifo_shouldStallDownstream,
  	uint64_t *outscalar_network_mgmt_stream_to_host_rx_framed_FramedStreamPreprocessor_eofCount,
  	uint64_t *outscalar_network_mgmt_stream_to_host_rx_framed_FramedStreamPreprocessor_sofCount,
  	const void *instream_network_mgmt_stream_from_host_tx_framed,
  	size_t instream_size_network_mgmt_stream_from_host_tx_framed,
  	void *outstream_network_mgmt_stream_to_host_rx_framed,
  	size_t outstream_size_network_mgmt_stream_to_host_rx_framed,
  	void *outstream_toCpu,
  	size_t outstream_size_toCpu,
  	const uint64_t *inmem_timestampStream_COUNT_8_bcd_dates,
  	const uint64_t *inmem_timestampStream_COUNT_8_correctionInfo,
  	const uint64_t *inmem_timestampStream_COUNT_8_epoch,
  	const uint64_t *inmem_timestampStream_COUNT_8_currentTime,
  	uint64_t *outmem_timestampStream_COUNT_8_currentTime,
  	const uint64_t *inmem_timestampStream_COUNT_8_current_index,
  	uint64_t *outmem_timestampStream_COUNT_8_current_index,
  	const char * routing_string);
  
  /**
   * \brief Advanced static interface, structure for the engine interface 'default'
   * 
   */
  typedef struct { 
  	uint64_t inscalar_SenderK_socketA0; /**<  [in] Input scalar parameter "SenderK.socketA0". */
  	uint64_t inscalar_SenderK_socketA1; /**<  [in] Input scalar parameter "SenderK.socketA1". */
  	uint64_t inscalar_SenderK_socketB0; /**<  [in] Input scalar parameter "SenderK.socketB0". */
  	uint64_t inscalar_SenderK_socketB1; /**<  [in] Input scalar parameter "SenderK.socketB1". */
  	uint64_t inscalar_SenderK_socketsALen; /**<  [in] Input scalar parameter "SenderK.socketsALen". */
  	uint64_t inscalar_SenderK_socketsBLen; /**<  [in] Input scalar parameter "SenderK.socketsBLen". */
  	uint64_t *outscalar_SlicerFramer_network_mgmt_stream_from_host_tx_framed_eofCount; /**<  [out] Output scalar parameter "SlicerFramer_network_mgmt_stream_from_host_tx_framed.eofCount". */
  	uint64_t *outscalar_SlicerFramer_network_mgmt_stream_from_host_tx_framed_sofCount; /**<  [out] Output scalar parameter "SlicerFramer_network_mgmt_stream_from_host_tx_framed.sofCount". */
  	uint64_t *outscalar_ddrFifo_internalFifoFull; /**<  [out] Output scalar parameter "ddrFifo.internalFifoFull". */
  	uint64_t *outscalar_ddrFifo_memCmdStalling; /**<  [out] Output scalar parameter "ddrFifo.memCmdStalling". */
  	uint64_t *outscalar_ddrFifo_memFifoAlmostEmpty; /**<  [out] Output scalar parameter "ddrFifo.memFifoAlmostEmpty". */
  	uint64_t *outscalar_ddrFifo_memFifoAlmostFull; /**<  [out] Output scalar parameter "ddrFifo.memFifoAlmostFull". */
  	uint64_t *outscalar_ddrFifo_memFifoFillLevel; /**<  [out] Output scalar parameter "ddrFifo.memFifoFillLevel". */
  	uint64_t *outscalar_ddrFifo_memReadPointer; /**<  [out] Output scalar parameter "ddrFifo.memReadPointer". */
  	uint64_t *outscalar_ddrFifo_memWritePointer; /**<  [out] Output scalar parameter "ddrFifo.memWritePointer". */
  	uint64_t *outscalar_ddrFifo_shouldStallDownstream; /**<  [out] Output scalar parameter "ddrFifo.shouldStallDownstream". */
  	uint64_t *outscalar_network_mgmt_stream_to_host_rx_framed_FramedStreamPreprocessor_eofCount; /**<  [out] Output scalar parameter "network_mgmt_stream_to_host_rx_framed_FramedStreamPreprocessor.eofCount". */
  	uint64_t *outscalar_network_mgmt_stream_to_host_rx_framed_FramedStreamPreprocessor_sofCount; /**<  [out] Output scalar parameter "network_mgmt_stream_to_host_rx_framed_FramedStreamPreprocessor.sofCount". */
  	const void *instream_network_mgmt_stream_from_host_tx_framed; /**<  [in] Stream "network_mgmt_stream_from_host_tx_framed". */
  	size_t instream_size_network_mgmt_stream_from_host_tx_framed; /**<  [in] The size of the stream instream_network_mgmt_stream_from_host_tx_framed in bytes. */
  	void *outstream_network_mgmt_stream_to_host_rx_framed; /**<  [out] Stream "network_mgmt_stream_to_host_rx_framed". */
  	size_t outstream_size_network_mgmt_stream_to_host_rx_framed; /**<  [in] The size of the stream outstream_network_mgmt_stream_to_host_rx_framed in bytes. */
  	void *outstream_toCpu; /**<  [out] Stream "toCpu". */
  	size_t outstream_size_toCpu; /**<  [in] The size of the stream outstream_toCpu in bytes. */
  	const uint64_t *inmem_timestampStream_COUNT_8_bcd_dates; /**<  [in] Mapped ROM inmem_timestampStream_COUNT_8_bcd_dates, should be of size (512 * sizeof(uint64_t)). */
  	const uint64_t *inmem_timestampStream_COUNT_8_correctionInfo; /**<  [in] Mapped ROM inmem_timestampStream_COUNT_8_correctionInfo, should be of size (2 * sizeof(uint64_t)). */
  	const uint64_t *inmem_timestampStream_COUNT_8_epoch; /**<  [in] Mapped ROM inmem_timestampStream_COUNT_8_epoch, should be of size (2 * sizeof(uint64_t)). */
  	const uint64_t *inmem_timestampStream_COUNT_8_currentTime; /**<  [in] Input for mapped RAM timestampStream_COUNT_8.currentTime, should be of size (2 * sizeof(uint64_t)) */
  	uint64_t *outmem_timestampStream_COUNT_8_currentTime; /**<  [out] Output for mapped RAM timestampStream_COUNT_8.currentTime, should be of size (2 * sizeof(uint64_t)) */
  	const uint64_t *inmem_timestampStream_COUNT_8_current_index; /**<  [in] Input for mapped RAM timestampStream_COUNT_8.current_index, should be of size (2 * sizeof(uint64_t)) */
  	uint64_t *outmem_timestampStream_COUNT_8_current_index; /**<  [out] Output for mapped RAM timestampStream_COUNT_8.current_index, should be of size (2 * sizeof(uint64_t)) */
  	const char * routing_string; /**<  [in] A string containing comma-separated "from_name -> to_name" routing commands. */
  } CaptureClient_actions_t;
  
  /**
   * \brief Advanced static function for the interface 'default'.
   * 
   * \param [in] engine The engine on which the actions will be executed.
   * \param [in,out] interface_actions Actions to be executed.
   */
  void CaptureClient_run(
  	max_engine_t *engine,
  	CaptureClient_actions_t *interface_actions);
  
  /**
   * \brief Advanced static non-blocking function for the interface 'default'.
   *
   * Schedule the actions to run on the engine and return immediately.
   * The status of the run can be checked either by ::max_wait or ::max_nowait;
   * note that one of these *must* be called, so that associated memory can be released.
   *
   * 
   * \param [in] engine The engine on which the actions will be executed.
   * \param [in] interface_actions Actions to be executed.
   * \return A handle on the execution status of the actions, or NULL in case of error.
   */
  max_run_t *CaptureClient_run_nonblock(
  	max_engine_t *engine,
  	CaptureClient_actions_t *interface_actions);
  
  /**
   * \brief Group run advanced static function for the interface 'default'.
   * 
   * \param [in] group Group to use.
   * \param [in,out] interface_actions Actions to run.
   *
   * Run the actions on the first device available in the group.
   */
  void CaptureClient_run_group(max_group_t *group, CaptureClient_actions_t *interface_actions);
  
  /**
   * \brief Group run advanced static non-blocking function for the interface 'default'.
   * 
   *
   * Schedule the actions to run on the first device available in the group and return immediately.
   * The status of the run must be checked with ::max_wait. 
   * Note that use of ::max_nowait is prohibited with non-blocking running on groups:
   * see the ::max_run_group_nonblock documentation for more explanation.
   *
   * \param [in] group Group to use.
   * \param [in] interface_actions Actions to run.
   * \return A handle on the execution status of the actions, or NULL in case of error.
   */
  max_run_t *CaptureClient_run_group_nonblock(max_group_t *group, CaptureClient_actions_t *interface_actions);
  
  /**
   * \brief Array run advanced static function for the interface 'default'.
   * 
   * \param [in] engarray The array of devices to use.
   * \param [in,out] interface_actions The array of actions to run.
   *
   * Run the array of actions on the array of engines.  The length of interface_actions
   * must match the size of engarray.
   */
  void CaptureClient_run_array(max_engarray_t *engarray, CaptureClient_actions_t *interface_actions[]);
  
  /**
   * \brief Array run advanced static non-blocking function for the interface 'default'.
   * 
   *
   * Schedule to run the array of actions on the array of engines, and return immediately.
   * The length of interface_actions must match the size of engarray.
   * The status of the run can be checked either by ::max_wait or ::max_nowait;
   * note that one of these *must* be called, so that associated memory can be released.
   *
   * \param [in] engarray The array of devices to use.
   * \param [in] interface_actions The array of actions to run.
   * \return A handle on the execution status of the actions, or NULL in case of error.
   */
  max_run_t *CaptureClient_run_array_nonblock(max_engarray_t *engarray, CaptureClient_actions_t *interface_actions[]);
  
  /**
   * \brief Converts a static-interface action struct into a dynamic-interface max_actions_t struct.
   *
   * Note that this is an internal utility function used by other functions in the static interface.
   *
   * \param [in] maxfile The maxfile to use.
   * \param [in] interface_actions The interface-specific actions to run.
   * \return The dynamic-interface actions to run, or NULL in case of error.
   */
  max_actions_t* CaptureClient_convert(max_file_t *maxfile, CaptureClient_actions_t *interface_actions);
  
  /**
   * \brief Initialise a maxfile.
   */
  max_file_t* CaptureClient_init(void);
  
  /* Error handling functions */
  int CaptureClient_has_errors(void);
  const char* CaptureClient_get_errors(void);
  void CaptureClient_clear_errors(void);
  /* Free statically allocated maxfile data */
  void CaptureClient_free(void);
  /* These are dummy functions for hardware builds. */
  int CaptureClient_simulator_start(void);
  int CaptureClient_simulator_stop(void);
  
  #ifdef __cplusplus
  }
  #endif /* __cplusplus */
  #endif /* SLIC_DECLARATIONS_CaptureClient_H */
  
  