#pragma once

#include "../../libs/include/pnet_api.h"
/**
 * Indication to the application that a Release request was received from the
 * controller.
 *
 * This application call-back function is called by the Profinet stack on every
 * Release request from the Profinet controller.
 *
 * The connection will be closed regardless of the return value from this
 * function. In case of error the application should provide error information
 * in \a p_result.
 *
 * It is optional to implement this callback (assumes success if not
 * implemented).
 * 
 * Индикация приложению о том, что от контроллера получен запрос Release. 
 * 
 * Эта функция обратного вызова приложения вызывается стеком Profinet при каждом запросе Release от контроллера Profinet.
 * 
 * Соединение будет закрыто независимо от возвращаемого значения этой функцией. В случае ошибки приложение должно предоставить 
 * информацию об ошибке в \a p_result. 
 * 
 * Реализовать этот обратный вызов необязательно (предполагается успех, если он не реализован).
 *
 * @param net              InOut: The p-net stack instance
 * @param arg              InOut: User-defined data (not used by p-net)
 * @param arep             In:    The AREP.
 * @param p_result         Out:   Detailed error information if return != 0.
 * @return  0  on success.
 *          -1 if an error occurred.
 */
int profinet_cb_release_ind( pnet_t * net,
                             void * arg,
                             uint32_t arep,
                             pnet_result_t * p_result);