aboutsummaryrefslogtreecommitdiff
path: root/src/core/sockfd.h
blob: 212f525013b9388335da05c8928dcfcaf1fa1a7b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//
// Copyright 2025 Staysail Systems, Inc. <info@staysail.tech>
//
// This software is supplied under the terms of the MIT License, a
// copy of which should be located in the distribution where this
// file was obtained (LICENSE.txt).  A copy of the license may also be
// found online at https://opensource.org/licenses/MIT.
//

#ifndef CORE_FDC_H
#define CORE_FDC_H

#include "defs.h"

// the nni_sfd_conn struct is provided by platform code to wrap
// an arbitrary byte stream file descriptor (UNIX) or handle (Windows)
// with a nng_stream.
typedef struct nni_sfd_conn nni_sfd_conn;
extern nng_err              nni_sfd_conn_alloc(nni_sfd_conn **cp, int fd);
extern nng_err nni_sfd_dialer_alloc(nng_stream_dialer **, const nng_url *);
extern nng_err nni_sfd_listener_alloc(nng_stream_listener **, const nng_url *);

// this is used to close a file descriptor, in case we cannot
// create a connection (or if the listener is closed before the
// connection is accepted.)
extern void nni_sfd_close_fd(int fd);

#endif // CORE_FDC_H