mirror of
https://github.com/Telecominfraproject/oopt-tai-implementations.git
synced 2025-10-30 09:42:22 +00:00
mux: capability API support
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
This commit is contained in:
@@ -68,6 +68,27 @@ namespace tai::mux {
|
||||
return TAI_STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
tai_status_t get_capabilities(tai_object_type_t type, tai_object_id_t oid, uint32_t count, tai_attribute_capability_t *list) {
|
||||
switch (type) {
|
||||
case TAI_OBJECT_TYPE_MODULE:
|
||||
if ( m_module_api == nullptr || m_module_api->get_module_capabilities == nullptr ) {
|
||||
return TAI_STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
return m_module_api->get_module_capabilities(oid, count, list);
|
||||
case TAI_OBJECT_TYPE_NETWORKIF:
|
||||
if ( m_netif_api == nullptr || m_netif_api->get_network_interface_capabilities == nullptr ) {
|
||||
return TAI_STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
return m_netif_api->get_network_interface_capabilities(oid, count, list);
|
||||
case TAI_OBJECT_TYPE_HOSTIF:
|
||||
if ( m_hostif_api == nullptr || m_hostif_api->get_host_interface_capabilities == nullptr ) {
|
||||
return TAI_STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
return m_hostif_api->get_host_interface_capabilities(oid, count, list);
|
||||
}
|
||||
return TAI_STATUS_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
tai_status_t create_module(
|
||||
_Out_ tai_object_id_t *module_id,
|
||||
_In_ uint32_t attr_count,
|
||||
|
||||
@@ -61,7 +61,8 @@ namespace tai::mux {
|
||||
Object(S_PlatformAdapter pa) : m_context{pa}, tai::framework::Object<T>(0, nullptr, std::make_shared<tai::framework::FSM>(),
|
||||
reinterpret_cast<void*>(&m_context),
|
||||
std::bind(&Object::default_setter, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4, std::placeholders::_5),
|
||||
std::bind(&Object::default_getter, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)) {}
|
||||
std::bind(&Object::default_getter, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4),
|
||||
std::bind(&Object::default_cap_getter, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, std::placeholders::_4)) {}
|
||||
|
||||
tai_object_id_t id() const {
|
||||
return m_context.oid;
|
||||
@@ -80,10 +81,10 @@ namespace tai::mux {
|
||||
return m_context.pa->set(T, id(), count, attribute);
|
||||
}
|
||||
tai_status_t default_getter(uint32_t count, tai_attribute_t* const attribute, void* const user, const tai::framework::error_info* const info) {
|
||||
auto ret = m_context.pa->get(T, id(), count, attribute);
|
||||
if ( ret != TAI_STATUS_SUCCESS ) {
|
||||
}
|
||||
return ret;
|
||||
return m_context.pa->get(T, id(), count, attribute);
|
||||
}
|
||||
tai_status_t default_cap_getter(uint32_t count, tai_attribute_capability_t* const caps, void* const user, const tai::framework::error_info* const info) {
|
||||
return m_context.pa->get_capability(T, id(), count, caps);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Submodule tai_mux/oopt-tai updated: 7711e2332d...ba4b1ba6a6
@@ -156,6 +156,15 @@ namespace tai::mux {
|
||||
return TAI_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
tai_status_t PlatformAdapter::get_capability(const tai_object_type_t& type, const tai_object_id_t& id, uint32_t count, tai_attribute_capability_t* const caps) {
|
||||
S_ModuleAdapter adapter;
|
||||
tai_object_id_t real_id;
|
||||
if ( get_mapping(id, &adapter, &real_id) != 0 ) {
|
||||
return TAI_STATUS_FAILURE;
|
||||
}
|
||||
return adapter->get_capabilities(type, real_id, count, caps);
|
||||
}
|
||||
|
||||
tai_status_t PlatformAdapter::set(const tai_object_type_t& type, const tai_object_id_t& id, uint32_t count, const tai_attribute_t* const attrs) {
|
||||
S_ModuleAdapter adapter;
|
||||
tai_object_id_t real_id;
|
||||
|
||||
@@ -112,6 +112,7 @@ namespace tai::mux {
|
||||
|
||||
tai_status_t get(const tai_object_type_t& type, const tai_object_id_t& id, uint32_t count, tai_attribute_t* const attrs);
|
||||
tai_status_t set(const tai_object_type_t& type, const tai_object_id_t& id, uint32_t count, const tai_attribute_t* const attrs);
|
||||
tai_status_t get_capability(const tai_object_type_t& type, const tai_object_id_t& id, uint32_t count, tai_attribute_capability_t* const caps);
|
||||
|
||||
virtual tai_status_t get_mux_attribute(const tai_object_type_t& type, const tai_object_id_t& oid, tai_attribute_t* const attribute);
|
||||
virtual tai_status_t set_mux_attribute(const tai_object_type_t& type, const tai_object_id_t& oid, const tai_attribute_t* const attribute, tai::framework::FSMState* state);
|
||||
|
||||
Reference in New Issue
Block a user