#ifndef NLWS_COURIER_H
#define NLWS_COURIER_H
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include <unistd.h>
#include <stdbool.h>
#include <libwebsockets.h>
#include "nlws.h"
typedef struct {
struct lws *wsi;
unsigned on_text_count;
SV** on_text;
unsigned on_binary_count;
SV** on_binary;
struct lws_ring *ring;
unsigned consume_pending_count;
unsigned pauses;
pid_t pid;
bool close_requested;
uint16_t close_status;
unsigned char close_reason[MAX_CLOSE_REASON_LENGTH];
STRLEN close_reason_length;
} courier_t;
courier_t* nlws_create_courier (pTHX_ struct lws *wsi);
void nlws_destroy_courier (pTHX_ courier_t* courier);
#endif