Add API allowing xAPPs to send alarm messages
[ric-plt/xapp-frame-cpp.git] / src / messaging / messenger.hpp
index c8e4f13..173426c 100644 (file)
 
 #include <rmr/rmr.h>
 
-//#include "callback.hpp"
-//#include "default_cb.hpp"            // default callback prototypes
 #include "message.hpp"
+#include "alarm.hpp"
 
 #ifndef RMR_FALSE
        #define RMR_FALSE       0
        #define RMR_TRUE        1
 #endif
 
+namespace xapp {
+
+
 class Messenger {
 
        private:
@@ -58,21 +60,36 @@ class Messenger {
                void*           mrc;                                    // message router context
                char*           listen_port;                    // port we ask msg router to listen on
 
+               // copy and assignment are PRIVATE so that they fail if xapp tries; messenger cannot be copied!
+               Messenger( const Messenger& soi );
+               Messenger& operator=( const Messenger& soi );
+
        public:
                // -- constants which need an instance; that happens as a global in the .cpp file (wtf C++)
                static const int MAX_PAYLOAD;                   // max message size we'll handle
                static const int DEFAULT_CALLBACK;              // parm for add callback to set default
 
-               Messenger( char* port, bool wait4table );       // builder
+               Messenger( const char* port, bool wait4table ); // builder
+               Messenger( Messenger&& soi );                           // move construction
+               Messenger& operator=( Messenger&& soi );        // move operator
                ~Messenger();                                                           // destroyer
 
                void Add_msg_cb( int mtype, user_callback fun_name, void* data );
+
                std::unique_ptr<Message> Alloc_msg( int payload_size );                 // message allocation
+
+               std::unique_ptr<xapp::Alarm> Alloc_alarm( );                                    // alarm allocation
+               std::unique_ptr<xapp::Alarm> Alloc_alarm( std::string meid );
+               std::unique_ptr<xapp::Alarm> Alloc_alarm( int prob_id, std::string meid );
+
                void Listen( );                                                                                                 // lisen driver
                std::unique_ptr<Message> Receive( int timeout );                                // receive 1 message
                void Stop( );                                                                                                   // force to stop
-               //void Release_mbuf( void* vmbuf );
                bool Wait_for_cts( int max_wait );
+
+               int     Wormhole_open( std::string endpoint );
 };
 
+
+} // namespace
 #endif