mirror of
				https://github.com/Telecominfraproject/oopt-tai-implementations.git
				synced 2025-10-31 01:57:52 +00:00 
			
		
		
		
	mux: adapt to the lastest oopt-tai
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
This commit is contained in:
		 Wataru Ishida
					Wataru Ishida
				
			
				
					committed by
					
						 Wataru Ishida
						Wataru Ishida
					
				
			
			
				
	
			
			
			 Wataru Ishida
						Wataru Ishida
					
				
			
						parent
						
							83613ad1f1
						
					
				
				
					commit
					76b252a543
				
			| @@ -3,6 +3,7 @@ | ||||
| #include <map> | ||||
| #include <exception> | ||||
| #include <sstream> | ||||
| #include <iostream> | ||||
|  | ||||
| #define LOAD_TAI_API(name)                            \ | ||||
|     m_ ## name = (name ## _fn) dlsym(m_dl, #name);    \ | ||||
| @@ -19,6 +20,8 @@ ModuleAdapter::ModuleAdapter(const std::string& name, uint64_t flags, const tai_ | ||||
|     LOAD_TAI_API(tai_api_uninitialize) | ||||
|     LOAD_TAI_API(tai_api_query) | ||||
|     LOAD_TAI_API(tai_log_set) | ||||
|     LOAD_TAI_API(tai_object_type_query) | ||||
|     LOAD_TAI_API(tai_module_id_query) | ||||
|  | ||||
|     std::stringstream ss; | ||||
|  | ||||
|   | ||||
| @@ -40,12 +40,11 @@ class ModuleAdapter { | ||||
|         tai_status_t create_module( | ||||
|             _Out_ tai_object_id_t          *module_id, | ||||
|             _In_ uint32_t                   attr_count, | ||||
|             _In_ const tai_attribute_t     *attr_list, | ||||
|             _In_ tai_module_notification_t *notifications) { | ||||
|             _In_ const tai_attribute_t     *attr_list) { | ||||
|             if ( m_module_api == nullptr || m_module_api->create_module == nullptr ) { | ||||
|                 return TAI_STATUS_FAILURE; | ||||
|             } | ||||
|             return m_module_api->create_module(module_id, attr_count, attr_list, notifications); | ||||
|             return m_module_api->create_module(module_id, attr_count, attr_list); | ||||
|         } | ||||
|  | ||||
|         tai_status_t remove_module( | ||||
|   | ||||
| @@ -1,4 +1,5 @@ | ||||
| #include "mux.hpp" | ||||
| #include <iostream> | ||||
|  | ||||
| Multiplexier *g_mux; | ||||
|  | ||||
| @@ -175,8 +176,7 @@ tai_status_t Multiplexier::get_network_interface_attributes(_In_ tai_object_id_t | ||||
| tai_status_t Multiplexier::create_module( | ||||
|     _Out_ tai_object_id_t          *module_id, | ||||
|     _In_ uint32_t                   attr_count, | ||||
|     _In_ const tai_attribute_t     *attr_list, | ||||
|     _In_ tai_module_notification_t *notifications) { | ||||
|     _In_ const tai_attribute_t     *attr_list) { | ||||
|     if ( g_mux == nullptr ) { | ||||
|         return TAI_STATUS_UNINITIALIZED; | ||||
|     } | ||||
| @@ -195,7 +195,7 @@ tai_status_t Multiplexier::create_module( | ||||
|  | ||||
|     tai_object_id_t id; | ||||
|  | ||||
|     auto ret = m_adapter->create_module(&id, attr_count, attr_list, notifications); | ||||
|     auto ret = m_adapter->create_module(&id, attr_count, attr_list); | ||||
|     if ( ret != TAI_STATUS_SUCCESS ) { | ||||
|         return ret; | ||||
|     } | ||||
| @@ -260,10 +260,24 @@ tai_status_t Multiplexier::get_module_attributes(_In_ tai_object_id_t module_id, | ||||
|     return m_adapter->get_module_attributes(id, attr_count, attr_list); | ||||
| } | ||||
|  | ||||
| tai_object_type_t Multiplexier::object_type_query(_In_ tai_object_id_t id) { | ||||
|     tai_object_id_t realid; | ||||
|     ModuleAdapter *m_adapter; | ||||
|     if ( g_mux == nullptr ) { | ||||
|         return TAI_OBJECT_TYPE_NULL; | ||||
|     } | ||||
|  | ||||
|     if ( g_mux->get_mapping(id, &m_adapter, &realid) != 0 ) { | ||||
|         return TAI_OBJECT_TYPE_NULL; | ||||
|     } | ||||
|     return m_adapter->tai_object_type_query(realid); | ||||
| } | ||||
|  | ||||
| Multiplexier* create_mux(platform_adapter_t pa_kind, uint64_t flags, const tai_service_method_table_t* services) { | ||||
|     try { | ||||
|         return new Multiplexier(pa_kind, flags, services); | ||||
|     } catch (...) { | ||||
|     } catch (const std::runtime_error& e) { | ||||
|         std::cerr << e.what() << std::endl; | ||||
|         return nullptr; | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -56,8 +56,7 @@ class Multiplexier { | ||||
|         tai_status_t create_module( | ||||
|                 _Out_ tai_object_id_t *module_id, | ||||
|                 _In_ uint32_t attr_count, | ||||
|                 _In_ const tai_attribute_t *attr_list, | ||||
|                 _In_ tai_module_notification_t *notifications); | ||||
|                 _In_ const tai_attribute_t *attr_list); | ||||
|  | ||||
|         tai_status_t remove_module( | ||||
|                 _In_ tai_object_id_t module_id); | ||||
| @@ -110,6 +109,9 @@ class Multiplexier { | ||||
|                 _In_ uint32_t               attr_count, | ||||
|                 _Out_ tai_attribute_t *attr_list); | ||||
|  | ||||
|         tai_object_type_t object_type_query( | ||||
|                 _In_ tai_object_id_t id); | ||||
|  | ||||
|     private: | ||||
|         Multiplexier(const Multiplexier&){} | ||||
|         void operator = (const Multiplexier&){} | ||||
|   | ||||
 Submodule tai_mux/oopt-tai updated: 865afb0201...5bea26d46b
									
								
							| @@ -18,6 +18,8 @@ StaticPlatformAdapter::StaticPlatformAdapter(uint64_t flags, const tai_service_m | ||||
|     std::map<uint64_t, ModuleAdapter*> map; | ||||
|     auto c = json::parse(config); | ||||
|  | ||||
|     m_services.module_presence = nullptr; | ||||
|  | ||||
|     for ( json::iterator it = c.begin(); it != c.end(); ++it ) { | ||||
|         auto location = it.key(); | ||||
|         auto lib = it.value().get<std::string>(); | ||||
|   | ||||
| @@ -1,5 +1,6 @@ | ||||
| #include "mux.hpp" | ||||
| #include <cstdlib> | ||||
| #include <iostream> | ||||
|  | ||||
| extern Multiplexier *g_mux; | ||||
|  | ||||
| @@ -148,10 +149,9 @@ tai_network_interface_api_t mux_network_interface_api = { | ||||
| static tai_status_t mux_create_module( | ||||
|     _Out_ tai_object_id_t          *module_id, | ||||
|     _In_ uint32_t                   attr_count, | ||||
|     _In_ const tai_attribute_t     *attr_list, | ||||
|     _In_ tai_module_notification_t *notifications) | ||||
|     _In_ const tai_attribute_t     *attr_list) | ||||
| { | ||||
|     return g_mux->create_module(module_id, attr_count, attr_list, notifications); | ||||
|     return g_mux->create_module(module_id, attr_count, attr_list); | ||||
| } | ||||
|  | ||||
| static tai_status_t mux_remove_module(_In_ tai_object_id_t module_id) | ||||
| @@ -223,3 +223,7 @@ tai_status_t tai_api_query(_In_ tai_api_t tai_api_id, | ||||
| tai_status_t tai_log_set(tai_api_t tai_api_id, tai_log_level_t log_level) { | ||||
|     return TAI_STATUS_SUCCESS; | ||||
| } | ||||
|  | ||||
| tai_object_type_t tai_object_type_query(tai_object_id_t id) { | ||||
|     return g_mux->object_type_query(id); | ||||
| } | ||||
|   | ||||
| @@ -18,8 +18,6 @@ tai_module_api_t *module_api; | ||||
| tai_network_interface_api_t *netif_api; | ||||
| tai_host_interface_api_t *hostif_api; | ||||
|  | ||||
| tai_module_notification_t notification = {0}; | ||||
|  | ||||
| int fd; | ||||
| std::queue<std::pair<bool, std::string>> q; | ||||
| std::mutex m; | ||||
| @@ -67,12 +65,12 @@ int module::create_netif(uint32_t num) { | ||||
|  | ||||
|         list.clear(); | ||||
|  | ||||
|         attr.id = TAI_NETWORK_INTERFACE_ATTR_TX_ENABLE; | ||||
|         attr.value.booldata = true; | ||||
|         attr.id = TAI_NETWORK_INTERFACE_ATTR_TX_DIS; | ||||
|         attr.value.booldata = false; | ||||
|         list.push_back(attr); | ||||
|  | ||||
|         attr.id = TAI_NETWORK_INTERFACE_ATTR_TX_CHANNEL; | ||||
|         attr.value.u16 = 10; | ||||
|         attr.id = TAI_NETWORK_INTERFACE_ATTR_TX_LASER_FREQ; | ||||
|         attr.value.u64 = 191300000000000; | ||||
|         list.push_back(attr); | ||||
|  | ||||
|         attr.id = TAI_NETWORK_INTERFACE_ATTR_TX_GRID_SPACING; | ||||
| @@ -125,7 +123,7 @@ tai_status_t create_module(const std::string& location, tai_object_id_t& m_id) { | ||||
|     attr.value.charlist.count = location.size(); | ||||
|     attr.value.charlist.list = (char*)location.c_str(); | ||||
|     list.push_back(attr); | ||||
|     return module_api->create_module(&m_id, list.size(), list.data(), ¬ification); | ||||
|     return module_api->create_module(&m_id, list.size(), list.data()); | ||||
| } | ||||
|  | ||||
| int main() { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user