Media/WebRTC/Architecture: Difference between revisions

Line 95: Line 95:
needs to loop around <code>cprGetMessage()</tt>, as in <tt>ccap_task.c</tt>:
needs to loop around <code>cprGetMessage()</tt>, as in <tt>ccap_task.c</tt>:


/**
    /**
  *
    *
  * CCApp Provider main routine.
    * CCApp Provider main routine.
  *
    *
  * @param  arg - CCApp msg queue
    * @param  arg - CCApp msg queue
  *
    *
  * @return  void
    * @return  void
  *
    *
  * @pre    None
    * @pre    None
  */
    */
void CCApp_task(void * arg)
  void CCApp_task(void * arg)
{
  {
    static const char fname[] = "CCApp_task";
      static const char fname[] = "CCApp_task";
    phn_syshdr_t  *syshdr = NULL;
      phn_syshdr_t  *syshdr = NULL;
    appListener *listener = NULL;
      appListener *listener = NULL;
    void * msg;
      void * msg;
 
    //initialize the listener list
      //initialize the listener list
    sll_lite_init(&sll_list);
      sll_lite_init(&sll_list);
 
    CCAppInit();
      CCAppInit();
 
    while (1) {
      while (1) {
        msg = cprGetMessage(ccapp_msgq, TRUE, (void **) &syshdr);
          msg = cprGetMessage(ccapp_msgq, TRUE, (void **) &syshdr);
        if ( msg) {
          if ( msg) {
            CCAPP_DEBUG(DEB_F_PREFIX"Received Cmd[%d] for app[%d]\n", DEB_F_PREFIX_ARGS(SIP_CC_PROV, fname),
              CCAPP_DEBUG(DEB_F_PREFIX"Received Cmd[%d] for app[%d]\n", DEB_F_PREFIX_ARGS(SIP_CC_PROV, fname),
                    syshdr->Cmd, syshdr->Usr.UsrInfo);
                      syshdr->Cmd, syshdr->Usr.UsrInfo);
 
            listener = getCcappListener(syshdr->Usr.UsrInfo);
              listener = getCcappListener(syshdr->Usr.UsrInfo);
            if (listener != NULL) {
              if (listener != NULL) {
                (* ((appListener)(listener)))(msg, syshdr->Cmd);
                  (* ((appListener)(listener)))(msg, syshdr->Cmd);
            } else {
              } else {
                CCAPP_DEBUG(DEB_F_PREFIX"Event[%d] doesn't have a dedicated listener.\n", DEB_F_PREFIX_ARGS(SIP_CC_PROV, fname),
                  CCAPP_DEBUG(DEB_F_PREFIX"Event[%d] doesn't have a dedicated listener.\n", DEB_F_PREFIX_ARGS(SIP_CC_PROV, fname),
                        syshdr->Usr.UsrInfo);
                          syshdr->Usr.UsrInfo);
            }
              }
            cprReleaseSysHeader(syshdr);
              cprReleaseSysHeader(syshdr);
            cprReleaseBuffer(msg);
              cprReleaseBuffer(msg);
        }
          }
    }
      }
}
  }


=== Important threads ===
=== Important threads ===
Confirmed users
214

edits