listensocket.h 1.67 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
/* Icecast
 *
 * This program is distributed under the GNU General Public License, version 2.
 * A copy of this license is included with this source.
 *
 * Copyright 2018,      Philipp "ph3-der-loewe" Schafft <lion@lion.leolix.org>,
 */

#ifndef __LISTENSOCKET_H__
#define __LISTENSOCKET_H__

#include "icecasttypes.h"
13
#include "refobject.h"
14 15
#include "cfgfile.h"

16 17
REFOBJECT_FORWARD_TYPE(listensocket_container_t);

18 19
listensocket_container_t *  listensocket_container_new(void);
int                         listensocket_container_configure(listensocket_container_t *self, const ice_config_t *config);
20
int                         listensocket_container_configure_and_setup(listensocket_container_t *self, const ice_config_t *config);
21 22
int                         listensocket_container_setup(listensocket_container_t *self);
connection_t *              listensocket_container_accept(listensocket_container_t *self, int timeout);
23 24
int                         listensocket_container_set_sockcount_cb(listensocket_container_t *self, void (*cb)(size_t count, void *userdata), void *userdata);
ssize_t                     listensocket_container_sockcount(listensocket_container_t *self);
25

26 27
REFOBJECT_FORWARD_TYPE(listensocket_t);

28 29
int                         listensocket_refsock(listensocket_t *self);
int                         listensocket_unrefsock(listensocket_t *self);
30
connection_t *              listensocket_accept(listensocket_t *self, listensocket_container_t *container);
31
const listener_t *          listensocket_get_listener(listensocket_t *self);
32
int                         listensocket_release_listener(listensocket_t *self);
33
listener_type_t             listensocket_get_type(listensocket_t *self);
34 35

#endif