RIC-641 Fixing client/server model definitions and adding client and server API
[ric-plt/xapp-frame-cpp.git] / src / messaging / messenger.hpp
index b6e46b6..457e24b 100644 (file)
 #include <rmr/rmr.h>
 
 #include "message.hpp"
+#include "alarm.hpp"
+#include "metrics.hpp"
 
 #ifndef RMR_FALSE
        #define RMR_FALSE       0
        #define RMR_TRUE        1
 #endif
 
+namespace xapp {
+
+
 class Messenger {
 
        private:
@@ -57,7 +62,7 @@ class Messenger {
                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( const Messenger& soi );
                Messenger& operator=( const Messenger& soi );
 
        public:
@@ -71,12 +76,25 @@ class Messenger {
                ~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( const std::string& meid );
+               std::unique_ptr<xapp::Alarm> Alloc_alarm( int prob_id, const std::string& meid );
+
+               std::unique_ptr<xapp::Metrics> Alloc_metrics( );                                        // metrics allocation
+               std::unique_ptr<xapp::Metrics> Alloc_metrics( const std::string& source );
+               std::unique_ptr<xapp::Metrics> Alloc_metrics( const std::string& reporter, const std::string& source );
+
                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( const std::string& endpoint );
 };
 
+
+} // namespace
 #endif