/**
 *@file sr_net_adapter.h
 *@brief 网络适配器管理接口
 *@details 提供网络适配器管理相关枚举、结构体、API声明
 *@copyright Copyright (c) 2024 lierda. All rights reserved.
 *@author Lierda-RDC
 *@date 2024-04-01
 *@example ZhaoyangSDK\example\component\netadp_example.c
 */


#ifndef _SR_NET_ADAPTER_H
#define _SR_NET_ADAPTER_H

#include "sr_stddef.h"
#include "sr_list.h"



/**  
* @brief 网络适配器结构体
*/  
typedef struct
{
    const char *name;         /*!<适配器名称*/
    
    os_list_node_t list;      /*!<链表*/
			
    void *mqttcOps;           /*!<mqtt操作函数集*/ 
	void *httpcOps;           /*!<http操作函数集*/
	
}SR_NET_ADP_T;


/**  
* @brief 网络适配器查找    
*
* @param[in] name  在BSP层注册的网络适配器名称  
*
* @return 成功返回SR_NET_ADP_T对象指针，失败返回OS_NULL 
*/ 
SR_NET_ADP_T *SR_NetAdpFind(const char *name);



/**  
* @brief 网络适配器注册  
*
* @param[in] name  网络适配器对象指针
*
* @return 成功返回0，失败返回负值错误码
*/  
int SR_NetAdpRegister(SR_NET_ADP_T *adp);



#endif

