mirror of
				https://github.com/Telecominfraproject/oopt-tai-implementations.git
				synced 2025-10-30 17:47:48 +00:00 
			
		
		
		
	mux: support tai_log_set()
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
						
							1373f9867f
						
					
				
				
					commit
					54155f66f7
				
			| @@ -220,6 +220,20 @@ tai_object_type_t Multiplexier::object_type_query(_In_ tai_object_id_t id) { | |||||||
|     return m_adapter->tai_object_type_query(realid); |     return m_adapter->tai_object_type_query(realid); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | tai_status_t Multiplexier::tai_log_set(_In_ tai_api_t api, _In_ tai_log_level_t level) { | ||||||
|  |     if ( g_mux == nullptr ) { | ||||||
|  |         return TAI_STATUS_UNINITIALIZED; | ||||||
|  |     } | ||||||
|  |     auto set = m_pa->list_module_adapters(); | ||||||
|  |     for ( const auto& a :  set ) { | ||||||
|  |         auto ret = a->tai_log_set(api, level); | ||||||
|  |         if ( ret != TAI_STATUS_SUCCESS ) { | ||||||
|  |             return ret; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     return TAI_STATUS_SUCCESS; | ||||||
|  | } | ||||||
|  |  | ||||||
| tai_status_t Multiplexier::set_attributes( std::function<tai_status_t(ModuleAdapter*, tai_object_id_t, uint32_t, const tai_attribute_t*)> f, tai_object_id_t oid, uint32_t attr_count, const tai_attribute_t *attr_list) { | tai_status_t Multiplexier::set_attributes( std::function<tai_status_t(ModuleAdapter*, tai_object_id_t, uint32_t, const tai_attribute_t*)> f, tai_object_id_t oid, uint32_t attr_count, const tai_attribute_t *attr_list) { | ||||||
|     tai_object_id_t id; |     tai_object_id_t id; | ||||||
|     ModuleAdapter *m_adapter; |     ModuleAdapter *m_adapter; | ||||||
|   | |||||||
| @@ -113,6 +113,10 @@ class Multiplexier { | |||||||
|         tai_object_type_t object_type_query( |         tai_object_type_t object_type_query( | ||||||
|                 _In_ tai_object_id_t id); |                 _In_ tai_object_id_t id); | ||||||
|  |  | ||||||
|  |         tai_status_t tai_log_set( | ||||||
|  |                 _In_ tai_api_t tai_api_id, | ||||||
|  |                 _In_ tai_log_level_t log_level); | ||||||
|  |  | ||||||
|     private: |     private: | ||||||
|         Multiplexier(const Multiplexier&){} |         Multiplexier(const Multiplexier&){} | ||||||
|         void operator = (const Multiplexier&){} |         void operator = (const Multiplexier&){} | ||||||
|   | |||||||
| @@ -2,6 +2,7 @@ | |||||||
| #define __PLATFORM_ADAPTER_HPP__ | #define __PLATFORM_ADAPTER_HPP__ | ||||||
|  |  | ||||||
| #include <string> | #include <string> | ||||||
|  | #include <unordered_set> | ||||||
|  |  | ||||||
| class ModuleAdapter; | class ModuleAdapter; | ||||||
|  |  | ||||||
| @@ -13,6 +14,9 @@ enum platform_adapter_t { | |||||||
| class PlatformAdapter { | class PlatformAdapter { | ||||||
|     public: |     public: | ||||||
|         virtual ModuleAdapter* get_module_adapter(const std::string& location) = 0; |         virtual ModuleAdapter* get_module_adapter(const std::string& location) = 0; | ||||||
|  |  | ||||||
|  |         /** @brief return the set of loaded module adapters. */ | ||||||
|  |         virtual const std::unordered_set<ModuleAdapter * > list_module_adapters() = 0; | ||||||
|         PlatformAdapter(){} |         PlatformAdapter(){} | ||||||
|     private: |     private: | ||||||
|         PlatformAdapter(const PlatformAdapter&){} |         PlatformAdapter(const PlatformAdapter&){} | ||||||
|   | |||||||
| @@ -24,6 +24,13 @@ class StaticPlatformAdapter : public PlatformAdapter { | |||||||
|         ModuleAdapter* get_module_adapter(const std::string& location) { |         ModuleAdapter* get_module_adapter(const std::string& location) { | ||||||
|             return m_ma_map[location]; |             return m_ma_map[location]; | ||||||
|         }; |         }; | ||||||
|  |         const std::unordered_set<ModuleAdapter*> list_module_adapters() { | ||||||
|  |             std::unordered_set<ModuleAdapter*> set; | ||||||
|  |             for ( auto m : m_ma_map ) { | ||||||
|  |                 set.emplace(m.second); | ||||||
|  |             } | ||||||
|  |             return set; | ||||||
|  |         }; | ||||||
|     private: |     private: | ||||||
|         std::map<std::string, ModuleAdapter*> m_ma_map; |         std::map<std::string, ModuleAdapter*> m_ma_map; | ||||||
|         std::thread m_th; |         std::thread m_th; | ||||||
|   | |||||||
| @@ -221,7 +221,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) { | tai_status_t tai_log_set(tai_api_t tai_api_id, tai_log_level_t log_level) { | ||||||
|     return TAI_STATUS_SUCCESS; |     return g_mux->tai_log_set(tai_api_id, log_level); | ||||||
| } | } | ||||||
|  |  | ||||||
| tai_object_type_t tai_object_type_query(tai_object_id_t id) { | tai_object_type_t tai_object_type_query(tai_object_id_t id) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user