Fix potential pointer use err in SI95
[ric-plt/lib/rmr.git] / docs / rmr_get_rcvfd.3.rst
index 8a6bcd2..3a3e270 100644 (file)
@@ -1,14 +1,14 @@
-.. This work is licensed under a Creative Commons Attribution 4.0 International License. 
-.. SPDX-License-Identifier: CC-BY-4.0 
-.. CAUTION: this document is generated from source in doc/src/rtd. 
-.. To make changes edit the source and recompile the document. 
-.. Do NOT make changes directly to .rst or .md files. 
-============================================================================================ 
-Man Page: rmr_get_rcvfd 
-============================================================================================ 
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. SPDX-License-Identifier: CC-BY-4.0
+.. CAUTION: this document is generated from source in doc/src/rtd.
+.. To make changes edit the source and recompile the document.
+.. Do NOT make changes directly to .rst or .md files.
+
+============================================================================================
+Man Page: rmr_get_rcvfd
+============================================================================================
+
+
 
 
 RMR LIBRARY FUNCTIONS
@@ -19,117 +19,117 @@ RMR LIBRARY FUNCTIONS
 NAME
 ----
 
-rmr_get_rcvfd 
+rmr_get_rcvfd
 
 
 SYNOPSIS
 --------
 
-:: 
- #include <rmr/rmr.h>
-  
- void* rmr_get_rcvfd( void* ctx )
+
+::
+
 #include <rmr/rmr.h>
+
 void* rmr_get_rcvfd( void* ctx )
+
 
 
 DESCRIPTION
 -----------
 
-The ``rmr_get_rcvfd`` function returns a file descriptor 
-which may be given to epoll_wait() by an application that 
-wishes to use event poll in a single thread rather than block 
-on the arrival of a message via calls to rmr_rcv_msg(). When 
-epoll_wait() indicates that this file descriptor is ready, a 
-call to rmr_rcv_msg() will not block as at least one message 
-has been received. 
-The context (ctx) pointer passed in is the pointer returned 
-by the call to rmr_init(). 
+The ``rmr_get_rcvfd`` function returns a file descriptor
+which may be given to epoll_wait() by an application that
+wishes to use event poll in a single thread rather than block
+on the arrival of a message via calls to rmr_rcv_msg(). When
+epoll_wait() indicates that this file descriptor is ready, a
+call to rmr_rcv_msg() will not block as at least one message
+has been received.
+
+The context (ctx) pointer passed in is the pointer returned
+by the call to rmr_init().
 
 
 RETURN VALUE
 ------------
 
-The ``rmr_get_rcvfd`` function returns a file descriptor 
-greater or equal to 0 on success and -1 on error. 
+The ``rmr_get_rcvfd`` function returns a file descriptor
+greater or equal to 0 on success and -1 on error.
 
 
 ERRORS
 ------
 
-The following error values are specifically set by this RMR 
-function. In some cases the error message of a system call is 
-propagated up, and thus this list might be incomplete. 
-   .. list-table:: 
-     :widths: auto 
-     :header-rows: 0 
-     :class: borderless 
-      
-     * - **EINVAL** 
-       - 
-         The use of this function is invalid in this environment. 
-          
+The following error values are specifically set by this RMR
+function. In some cases the error message of a system call is
+propagated up, and thus this list might be incomplete.
+
+    .. list-table::
+      :widths: auto
+      :header-rows: 0
+      :class: borderless
+
+      * - **EINVAL**
+        -
+          The use of this function is invalid in this environment.
+
+
 
 
 EXAMPLE
 -------
 
-The following short code bit illustrates the use of this 
-function. Error checking has been omitted for clarity. 
-:: 
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/epoll.h>
- #include <rmr/rmr.h>
-  
- int main() {
-     int rcv_fd;     // pollable fd
-     void* mrc;      //msg router context
-     struct epoll_event events[10];          // support 10 events to poll
-     struct epoll_event epe;                 // event definition for event to listen to
-     int     ep_fd = -1;
-     rmr_mbuf_t* msg = NULL;
-     int nready;
-     int i;
-     int norm_msg_size = 1500;               // 95% messages are less than this
-  
-     mrc = rmr_init( "43086", norm_msg_size, RMRFL_NONE );
-     rcv_fd = rmr_get_rcvfd( mrc );
-  
-     ep_fd = epoll_create1( 0 );             // initialise epoll environment
-     epe.events = EPOLLIN;
-     epe.data.fd = rcv_fd;
-     epoll_ctl( ep_fd, EPOLL_CTL_ADD, rcv_fd, &epe );    // add our info to the mix
-  
-     while( 1 ) {
-         nready = epoll_wait( ep_fd, events, 10, -1 );   // -1 == block forever (no timeout)
-         for( i = 0; i < nready && i < 10; i++ ) {       // loop through to find what is ready
-             if( events[i].data.fd == rcv_fd ) {         // RMR has something
-                 msg = rmr_rcv_msg( mrc, msg );
-                 if( msg ) {
-                     // do something with msg
-                 }
-             }
-  
-             // check for other ready fds....
-         }
-     }
- }
+The following short code bit illustrates the use of this
+function. Error checking has been omitted for clarity.
+
+
+::
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/epoll.h>
 #include <rmr/rmr.h>
+
 int main() {
+      int rcv_fd;     // pollable fd
+      void* mrc;      //msg router context
+      struct epoll_event events[10];          // support 10 events to poll
+      struct epoll_event epe;                 // event definition for event to listen to
+      int     ep_fd = -1;
+      rmr_mbuf_t* msg = NULL;
+      int nready;
+      int i;
+      int norm_msg_size = 1500;               // 95% messages are less than this
+
+      mrc = rmr_init( "43086", norm_msg_size, RMRFL_NONE );
+      rcv_fd = rmr_get_rcvfd( mrc );
+
+      ep_fd = epoll_create1( 0 );             // initialise epoll environment
+      epe.events = EPOLLIN;
+      epe.data.fd = rcv_fd;
+      epoll_ctl( ep_fd, EPOLL_CTL_ADD, rcv_fd, &epe );    // add our info to the mix
+
+      while( 1 ) {
+          nready = epoll_wait( ep_fd, events, 10, -1 );   // -1 == block forever (no timeout)
+          for( i = 0; i < nready && i < 10; i++ ) {       // loop through to find what is ready
+              if( events[i].data.fd == rcv_fd ) {         // RMR has something
+                  msg = rmr_rcv_msg( mrc, msg );
+                  if( msg ) {
+                      // do something with msg
+                  }
+              }
+
+              // check for other ready fds....
+          }
+      }
 }
+
 
 
 SEE ALSO
 --------
 
-rmr_alloc_msg(3), rmr_call(3), rmr_free_msg(3), 
-rmr_payload_size(3), rmr_send_msg(3), rmr_rcv_msg(3), 
-rmr_rcv_specific(3), rmr_rts_msg(3), rmr_ready(3), 
-rmr_fib(3), rmr_has_str(3), rmr_tokenise(3), rmr_mk_ring(3), 
-rmr_ring_free(3) 
+rmr_alloc_msg(3), rmr_call(3), rmr_free_msg(3),
+rmr_payload_size(3), rmr_send_msg(3), rmr_rcv_msg(3),
+rmr_rcv_specific(3), rmr_rts_msg(3), rmr_ready(3),
+rmr_fib(3), rmr_has_str(3), rmr_tokenise(3), rmr_mk_ring(3),
+rmr_ring_free(3)