aboutsummaryrefslogtreecommitdiffstats
path: root/hicn-light/src/hicn/io/listenerSet.c
diff options
context:
space:
mode:
Diffstat (limited to 'hicn-light/src/hicn/io/listenerSet.c')
-rw-r--r--hicn-light/src/hicn/io/listenerSet.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/hicn-light/src/hicn/io/listenerSet.c b/hicn-light/src/hicn/io/listenerSet.c
index 982373b63..3e44973d7 100644
--- a/hicn-light/src/hicn/io/listenerSet.c
+++ b/hicn-light/src/hicn/io/listenerSet.c
@@ -130,3 +130,39 @@ ListenerOps *listenerSet_Find(const ListenerSet *set, EncapType encapType,
return match;
}
+
+ListenerOps *listenerSet_FindById(const ListenerSet *set, unsigned id) {
+ parcAssertNotNull(set, "Parameter set must be non-null");
+
+ ListenerOps *match = NULL;
+
+ for (size_t i = 0; i < parcArrayList_Size(set->listOfListeners) && !match;
+ i++) {
+ ListenerOps *ops = parcArrayList_Get(set->listOfListeners, i);
+ parcAssertNotNull(ops, "Got null listener ops at index %zu", i);
+ if (ops->getInterfaceIndex(ops) == id) {
+ match = ops;
+ }
+ }
+
+ return match;
+}
+
+int listenerSet_FindIdByListenerName(const ListenerSet *set, const char *listenerName ) {
+ parcAssertNotNull(set, "Parameter set must be non-null");
+ parcAssertNotNull(listenerName, "Parameter listenerName must be non-null");
+
+ ListenerOps *match = NULL;
+ int index = -1;
+ for (size_t i = 0; i < parcArrayList_Size(set->listOfListeners) && !match;
+ i++) {
+ ListenerOps *ops = parcArrayList_Get(set->listOfListeners, i);
+ parcAssertNotNull(ops, "Got null listener ops at index %zu", i);
+ if (ops->getListenerName(ops) && strcmp(ops->getListenerName(ops), listenerName) == 0) {
+ index = ops->getInterfaceIndex(ops);
+ break;
+ }
+ }
+
+ return index;
+}