mirror of
https://github.com/Telecominfraproject/oopt-tai-implementations.git
synced 2025-10-29 09:12:34 +00:00
mux: adapt to the lastest oopt-tai
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
This commit is contained in:
committed by
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