@@ -119,11 +119,11 @@ backendLoader(void *handle, const std::string_view &plugin_path) {
119119}
120120} // namespace
121121
122- nixlTelemtryPluginHandle::nixlTelemtryPluginHandle (void *handle, nixlTelemetryPlugin *plugin)
122+ nixlTelemetryPluginHandle::nixlTelemetryPluginHandle (void *handle, nixlTelemetryPlugin *plugin)
123123 : nixlPluginHandle(handle),
124124 plugin_(plugin) {}
125125
126- nixlTelemtryPluginHandle ::~nixlTelemtryPluginHandle () {
126+ nixlTelemetryPluginHandle ::~nixlTelemetryPluginHandle () {
127127 if (handle_) {
128128 // Call the plugin's cleanup function
129129 typedef void (*fini_func_t )();
@@ -140,23 +140,24 @@ nixlTelemtryPluginHandle::~nixlTelemtryPluginHandle() {
140140}
141141
142142std::unique_ptr<nixlTelemetryExporter>
143- nixlTelemtryPluginHandle::createExporter (const nixlTelemetryExporterInitParams &init_params) const {
143+ nixlTelemetryPluginHandle::createExporter (
144+ const nixlTelemetryExporterInitParams &init_params) const {
144145 if (plugin_ && plugin_->create_exporter ) {
145146 return plugin_->create_exporter (init_params);
146147 }
147148 return nullptr ;
148149}
149150
150151const char *
151- nixlTelemtryPluginHandle ::getName () const {
152+ nixlTelemetryPluginHandle ::getName () const {
152153 if (plugin_) {
153154 return plugin_->getName ().data ();
154155 }
155156 return " unknown" ;
156157}
157158
158159const char *
159- nixlTelemtryPluginHandle ::getVersion () const {
160+ nixlTelemetryPluginHandle ::getVersion () const {
160161 if (plugin_) {
161162 return plugin_->getVersion ().data ();
162163 }
@@ -194,7 +195,7 @@ telemetryLoader(void *handle, const std::string_view &plugin_path) {
194195 return nullptr ;
195196 }
196197
197- return std::make_shared<const nixlTelemtryPluginHandle >(handle, plugin);
198+ return std::make_shared<const nixlTelemetryPluginHandle >(handle, plugin);
198199}
199200} // namespace
200201
@@ -398,7 +399,7 @@ nixlPluginManager::loadBackendPlugin(const std::string &plugin_name) {
398399 return nullptr ;
399400}
400401
401- std::shared_ptr<const nixlTelemtryPluginHandle >
402+ std::shared_ptr<const nixlTelemetryPluginHandle >
402403nixlPluginManager::loadTelemetryPlugin (const std::string &plugin_name) {
403404 lock_guard lg (lock);
404405
@@ -423,7 +424,7 @@ nixlPluginManager::loadTelemetryPlugin(const std::string &plugin_name) {
423424 auto plugin_handle = loadPluginFromPath (plugin_path, telemetryLoader);
424425 if (plugin_handle) {
425426 auto telemetry_plugin =
426- std::dynamic_pointer_cast<const nixlTelemtryPluginHandle >(plugin_handle);
427+ std::dynamic_pointer_cast<const nixlTelemetryPluginHandle >(plugin_handle);
427428 loaded_telemetry_plugins_[plugin_name] = telemetry_plugin;
428429 return telemetry_plugin;
429430 }
@@ -433,15 +434,27 @@ nixlPluginManager::loadTelemetryPlugin(const std::string &plugin_name) {
433434 return nullptr ;
434435}
435436
436- void
437- nixlPluginManager::discoverBackendPlugin (const std::string &filename) {
438- auto prefix_len = strlen (backendPluginPrefix);
439- if (filename.size () < prefix_len + 1 ) return ;
437+ namespace {
438+ static bool
439+ startsWith (const std::string &str, const std::string &prefix) {
440+ return str.size () >= prefix.size () && std::equal (prefix.begin (), prefix.end (), str.begin ());
441+ }
442+
443+ static bool
444+ endsWith (const std::string &str, const std::string &suffix) {
445+ return str.size () >= suffix.size () && std::equal (suffix.rbegin (), suffix.rend (), str.rbegin ());
446+ }
440447
441- if (filename.substr (0 , prefix_len) == backendPluginPrefix &&
442- filename.substr (filename.size () - 3 ) == " .so" ) {
443- std::string plugin_name = filename.substr (10 , filename.size () - 13 );
448+ static std::string
449+ extractPluginName (const std::string &filename, const std::string &prefix) {
450+ return filename.substr (prefix.size (), filename.size () - prefix.size () - 3 );
451+ }
452+ } // namespace
444453
454+ void
455+ nixlPluginManager::discoverBackendPlugin (const std::string &filename) {
456+ if (startsWith (filename, backendPluginPrefix) && endsWith (filename, " .so" )) {
457+ std::string plugin_name = extractPluginName (filename, backendPluginPrefix);
445458 auto plugin = loadBackendPlugin (plugin_name);
446459 if (plugin) {
447460 NIXL_INFO << " Discovered and loaded backend plugin: " << plugin_name;
@@ -451,12 +464,8 @@ nixlPluginManager::discoverBackendPlugin(const std::string &filename) {
451464
452465void
453466nixlPluginManager::discoverTelemetryPlugin (const std::string &filename) {
454- auto prefix_len = strlen (telemetryPluginPrefix);
455- if (filename.size () < prefix_len + 1 ) return ;
456-
457- if (filename.substr (0 , prefix_len) == telemetryPluginPrefix &&
458- filename.substr (filename.size () - 3 ) == " .so" ) {
459- std::string plugin_name = filename.substr (10 , filename.size () - 13 );
467+ if (startsWith (filename, telemetryPluginPrefix) && endsWith (filename, " .so" )) {
468+ std::string plugin_name = extractPluginName (filename, telemetryPluginPrefix);
460469
461470 auto plugin = loadTelemetryPlugin (plugin_name);
462471 if (plugin) {
@@ -522,7 +531,7 @@ nixlPluginManager::getBackendPlugin(const nixl_backend_t &plugin_name) {
522531 return nullptr ;
523532}
524533
525- std::shared_ptr<const nixlTelemtryPluginHandle >
534+ std::shared_ptr<const nixlTelemetryPluginHandle >
526535nixlPluginManager::getTelemetryPlugin (const nixl_telemetry_plugin_t &plugin_name) {
527536 lock_guard lg (lock);
528537 auto it = loaded_telemetry_plugins_.find (plugin_name);
@@ -607,7 +616,7 @@ nixlPluginManager::registerTelemetryStaticPlugin(const std::string_view &name,
607616 NIXL_INFO << " Loading static plugin: " << name;
608617 if (plugin) {
609618 // Register the loaded plugin
610- auto plugin_handle = std::make_shared<const nixlTelemtryPluginHandle >(nullptr , plugin);
619+ auto plugin_handle = std::make_shared<const nixlTelemetryPluginHandle >(nullptr , plugin);
611620 loaded_telemetry_plugins_[name.data ()] = plugin_handle;
612621 }
613622}
0 commit comments