#ifndef _EFL_NETWORK_SERVER_EO_LEGACY_H_
#define _EFL_NETWORK_SERVER_EO_LEGACY_H_

#ifndef _EFL_NETWORK_SERVER_EO_CLASS_TYPE
#define _EFL_NETWORK_SERVER_EO_CLASS_TYPE

typedef Eo Efl_Network_Server;

#endif

#ifndef _EFL_NETWORK_SERVER_EO_TYPES
#define _EFL_NETWORK_SERVER_EO_TYPES


#endif
/** Efl network server
 *
 * @ingroup Efl_Network_Server
 */

/**
 * @brief Retrieves the name of server.
 *
 * The name returned is the name used to connect on this server.
 *
 * @return The name of the server.
 *
 * @ingroup Efl_Network_Server
 */
EAPI const char *ecore_con_server_name_get(const Efl_Network_Server *obj);

/**
 * @brief Sets a limit on the number of clients that can be handled
 * concurrently by the given server, and a policy on what to do if excess
 * clients try to connect.
 *
 * Beware that if you set this once ecore is already running, you may already
 * have pending CLIENT_ADD events in your event queue.  Those clients have
 * already connected and will not be affected by this call. Only clients
 * subsequently trying to connect will be affected.
 *
 * @param[in] client_limit The maximum number of clients to handle
 * concurrently. -1 means unlimited (default). 0 effectively disables the
 * server.
 * @param[in] reject_excess_clients Set to 1 to automatically disconnect excess
 * clients as soon as they connect if you are already handling client_limit
 * clients. Set to 0 (default) to just hold off on the "accept()" system call
 * until the number of active  clients drops. This causes the kernel to queue
 * up to 4096 connections (or your kernel's limit, whichever is lower).
 *
 * @ingroup Efl_Network_Server
 */
EAPI void ecore_con_server_client_limit_set(Efl_Network_Server *obj, int client_limit, char reject_excess_clients);

/**
 * @brief Retrieves the current list of clients.
 *
 * Each node in the returned list points to an @ref Efl_Network_Client. This
 * list cannot be modified or freed. It can also change if new clients are
 * connected or disconnected, and will become invalid when the server is
 * deleted/freed.
 *
 * @return The list of clients on this server.
 *
 * @ingroup Efl_Network_Server
 */
EAPI const Eina_List *ecore_con_server_clients_get(const Efl_Network_Server *obj);

#endif
