/**
 * @file config.h
 * @author Radek Krejci <rkrejci@cesnet.cz>
 * @author Michal Vasko <mvasko@cesnet.cz>
 * @brief libnetconf2 various configuration settings.
 *
 * @copyright
 * Copyright (c) 2015 - 2022 CESNET, z.s.p.o.
 *
 * This source code is licensed under BSD 3-Clause License (the "License").
 * You may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://opensource.org/licenses/BSD-3-Clause
 */

#ifndef NC_CONFIG_H_
#define NC_CONFIG_H_

/*
 * Mark all objects as hidden and export only objects explicitly marked to be part of the public API or
 * those marked as mock objects for testing purpose
 */
#define API __attribute__((visibility("default")))
#define MOCK __attribute__((visibility("default")))

/*
 * Support for getpeereid
 */
#cmakedefine HAVE_GETPEEREID

/*
 * Support for shadow file manipulation
 */
#cmakedefine HAVE_SHADOW

/*
 * Support for crypt.h
 */
#cmakedefine HAVE_CRYPT

/*
 * Support for keyboard-interactive SSH authentication method
 */
#cmakedefine HAVE_LIBPAM

/*
 * Location of installed YANG modules on the system
 */
#define NC_SERVER_SEARCH_DIR "@YANG_MODULE_DIR@"

/*
 * Location of installed YANG modules on the system
 */
#define NC_CLIENT_SEARCH_DIR "@CLIENT_SEARCH_DIR@"

/*
 * Inactive read timeout
 */
#define NC_READ_INACT_TIMEOUT @READ_INACTIVE_TIMEOUT@

/*
 * Active read timeout in seconds
 * (also used for internal <get-schema> RPC reply timeout)
 */
#define NC_READ_ACT_TIMEOUT @READ_ACTIVE_TIMEOUT@

/*
 * pspoll structure queue size (also found in nc_server.h)
 */
#define NC_PS_QUEUE_SIZE @MAX_PSPOLL_THREAD_COUNT@

/* Microseconds after which tasks are repeated until the full timeout elapses.
 * A millisecond (1000) should be divisible by this number without remain.
 */
#define NC_TIMEOUT_STEP @TIMEOUT_STEP@

/* Portability feature-check macros. */
#cmakedefine HAVE_PTHREAD_RWLOCKATTR_SETKIND_NP

#endif /* NC_CONFIG_H_ */
