Issue-ID: SIM-18
[sim/e2-interface.git] / e2sim / e2apv1sim / e2sim / e2sim.hpp
diff --git a/e2sim/e2apv1sim/e2sim/e2sim.hpp b/e2sim/e2apv1sim/e2sim/e2sim.hpp
new file mode 100644 (file)
index 0000000..a8cb564
--- /dev/null
@@ -0,0 +1,37 @@
+#ifndef E2SIM_HPP
+#define E2SIM_HPP
+
+#include <unordered_map>
+
+extern "C" {
+#include "E2AP-PDU.h"
+#include "OCTET_STRING.h"
+}
+
+typedef void (*SubscriptionCallback)(E2AP_PDU_t*);
+
+class E2Sim;
+class E2Sim {
+
+private:
+
+  std::unordered_map<long, OCTET_STRING_t*> ran_functions_registered;
+  std::unordered_map<long, SubscriptionCallback> subscription_callbacks;
+
+  void wait_for_sctp_data();
+  
+public:
+
+  SubscriptionCallback get_subscription_callback(long func_id);
+  
+  void register_e2sm(long func_id, OCTET_STRING_t* ostr);
+
+  void register_subscription_callback(long func_id, SubscriptionCallback cb);
+  
+  void encode_and_send_sctp_data(E2AP_PDU_t* pdu);
+
+  int run_loop(int argc, char* argv[]);
+
+};
+
+#endif