Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Revision:
69:65665afbad5d
Parent:
55:2f5e7374af9d
Child:
74:81c47fff88a5
diff -r b54993674190 -r 65665afbad5d call_box.h
--- a/call_box.h	Fri Nov 07 17:57:55 2014 +0000
+++ b/call_box.h	Wed Nov 12 13:25:54 2014 +0000
@@ -1,3 +1,11 @@
+/**
+ * @file call_box.h
+ * @Synopsis Implementa as funções de gerenciamento do Call_Box 
+ * @author Jhonatan Casale
+ * @version 1
+ * @date 2014-11-06
+ * \class Call_Box
+ */
 #ifndef __CALL_BOX_H__
 #define __CALL_BOX_H__
 
@@ -5,16 +13,25 @@
 #include "object.h"
 #include "sip.h"
 #include "debug.h"
-#define __TIMEOUT__  30  /*seconds*/
+#define __TIMEOUT__  30  
+///< O tempo que a Header demora para "pingar" o Call_Box para saber se esta tudo bem.
 #define __MAX_ATTEMPTS__  5
-#define __STEP__ 30 /*seconds*/
+///< O numero maximo de vezes que a Header vai tentar pingar o Call_Box
+#define __STEP__ 30
+///< Usado para aumentar o intervalo entre cada ping, fora de uso atualmente.
 #define __MAX_TIMEOUT__ __STEP__ * __MAX_ATTEMPTS__
+///< Usado para limitar o tempo maximo de timeout do Call_Box sem responder o ping, fora de uso.
 
 #define cb_idle 1
+///< Representa que o Call_Box esta disponivel
 #define cb_ringing 2
+///< Representa o Call_Box no status, discando.
 #define cb_trying 3
+///< Representa o Call_Box no status tentando concluir o pedido de ligação.
 #define cb_on_call 4
+///< Representa que o Call_Box já esta em uma ligação.
 #define cb_busy 5
+///< Representa que o Call_Box esta ocupado.
 
 class Call_Box : public Object{
     private :
@@ -27,32 +44,301 @@
         uint8_t timeslice;
         
     public :
+                /**
+                 * @Synopsis Objeto Sip que será usado para tratativas com o servidor.
+                 *
+                 * \note Esse objeto é criado no construtor da classe Call_Box, com os mesmos parâmetros passados para o 
+                 * construtor da classe Call_Box.
+                 */
         Sip * sip;
+                
+                /**
+                 * @Synopsis Cria um objeto Call_Box
+                 *
+                 * @param ext Vincula o objeto ao ramal informado
+                 * @param port Vincula o objeto a porto informada.
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  int ext = 5121;
+                 *  int port = 5021;
+                 *  Call_Box * cb = new Call_Box( ext, port );
+                 * ...
+                 * @endcode
+                 */
         Call_Box( int ext, int port );
+
+                /**
+                 * @Synopsis Destroi o objeto Call_Box
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  delete( cb );
+                 * ...
+                 * @endcode
+                 * \note Deleta o objeto Sip nesse processo.
+                 */
         ~Call_Box( void );
         
+                /**
+                 * @Synopsis Representa o status do Call_Box.
+                 *
+                 * \note Este valor sempre é atualizado ( por convenção ) com o uso da macro set_status(a,b), definida em utils.h
+                 */
         uint8_t status;
         
+                /**
+                 * @Synopsis Informa o ramal vinculado ao objeto Call_Box.
+                 *
+                 * @return O numero do ramal contido atualmente no objeto Call_Box
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  int ext = cb->get_ext();
+                 * ...
+                 * @endcode
+                 */
         int get_ext( void );
+
+                /**
+                 * @Synopsis Informa o numero da porta vinculada ao objeto Call_Box.
+                 *
+                 * @return O numero da porta contido atualmente no objeto Call_Box
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  int port = cb->get_port();
+                 * ...
+                 * @endcode
+                 */
         int get_port( void );
-        
+       
+                /**
+                 * @Synopsis Informa o tempo decorrido.
+                 * \note O timer de cada objeto é iniciado no momento da criação do objeto Call_Box.
+                 *
+                 * @return O tempo decorrido desde a ultima vez que o timer do objeto foi resetado.
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  float elapsed_time = cb->get_elapsed_time();
+                 * ...
+                 * @endcode
+                 */
         float get_elapsed_time( void );
+
+                /**
+                 * @Synopsis Informa se o Call_Box esta inativo acima do tempo previsto.
+                 *
+                 * @retval True - Caso o timer do objeto seja maior que o definido. 
+                 * @retval False - Caso o timer do objeto seja menor que o definido..
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  printf(" %s ", ( cb->is_timeout() ) ? "Call_Box is outdated" : "Call_Box is okay" );
+                 * ...
+                 * @endcode
+                 */
         bool is_timeout( void );
+
+                /**
+                 * @Synopsis Reconfigura o timeout de forma incremental, informando se ainda existe alguma tentativas de "ping" nesse Call_Box
+                 *
+                 * @return O numero de tentativas restantes de registro desse Call_Box. Retorno 0 significa que as tentativar acabaram.
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  if( cb->reconfigure_timeout() == 0x00 ){
+                 *      // faça alguma coisa ...
+                 *  }
+                 * ...
+                 * @endcode
+                 */
         uint8_t reconfigure_timeout( void );
+
+                /**
+                 * @Synopsis Reseta o timer do objeto Call_Box.
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  cb->reset_elapsed_time();
+                 * ...
+                 * @endcode
+                 */
         void reset_elapsed_time( void );
+
+                /**
+                 * @Synopsis Invoca o método de registro deste Call_Box ( via objeto Sip vinculado ).
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  cb->registry();
+                 * ...
+                 * @endcode
+                 */
         void registry( void );
+
+                /**
+                 * @Synopsis Invoca o método de pedido de ligação.
+                 *
+                 * @return Um ponteiro para um objeto VZ_call quando o pedido foi aceito pelo server, NULL caso em que o pedido de invite foi 
+                 * negado pelo server ou aconteceu timeout do invite.
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  VZ_call * call = cb->invite();
+                 * ...
+                 * @endcode
+                 */
         VZ_call * invite( void );
+
+                /**
+                 * @Synopsis Valor inicial para preenchimento deste campo nos pacotes trocados entre Header/Call_Box.
+                 *
+                 * @param msg_id Seta o valor recebido como parâmetro na variável do objeto.
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  cb->set_msg_id( 0x12 );
+                 * ...
+                 * @endcode
+                 */
         void set_msg_id( uint8_t msg_id );
+
+                /**
+                 * @Synopsis Informa o numero atual de msg_id que será enviado na próxima mensagem desse Call_Box
+                 *
+                 * @return O valor atual de msg_id.
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  uint8_t msg_id = cb->get_msg_id();
+                 * ...
+                 * @endcode
+                 */
         uint8_t get_msg_id( void );
-        void set_timeslice( uint8_t timeslice );
+
+        
+                /**
+                 * @Synopsis Armazena o valor de Timeslice atualmente em uso pelo Call_Box.
+                 *
+                 * @param timeslice O valor que corresponde ao Timeslice disponivel para comunição do Call_Box
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  Timeslice * ts = new Timeslice();
+                 *  cb->set_timeslice( ts->get_timeslice() );
+                 * ...
+                 * @endcode
+                 */
+                void set_timeslice( uint8_t timeslice );
+
+
+                /**
+                 * @Synopsis Informa o timeslice ocupado atualmente pelo Call_Box.
+                 *
+                 * @return O valor do timeslice em uso pelo Call_Box.
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  uint8_t ts = cb->get_timeslice();
+                 * ...
+                 * @endcode
+                 */
         uint8_t get_timeslice( void );
+
         //void set_sip( Sip * sip );
+                
+                /**
+                 * @Synopsis Faz chamada ( via objeto Sip vinculado ) a função que irá escutar a porta SIP associada neste Call_Box.
+                 *
+                 * @return Um valor menor que zero se a execução falhar, igual a zero se a execução for bem sucedida e nenhum dado foi
+                 * recebido, ou quando a execução foi bem sucedida e nenhuma mensagem que demanda tramamento foi recebida;  um numero 
+                 * maior do que zero, caso tenha recebido um pacote do tipo "bye" do servidor; este numero corresponde ao ramal do Call_Box.
+                 * 
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  int returned_value = cb->listen_SIP_server();
+                 * ...
+                 * @endcode
+                 */
         int listen_SIP_server( void );
+
+                /**
+                 * @Synopsis Invoca ( no objeto Sip ) o método de pedido de "desregistro".
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  cb->unregistry();
+                 * ...
+                 * @endcode
+                 */
         void unregistry( void );
+
+                /**
+                 * @Synopsis Invoca ( via objeto Sip ) o método de envio do pacote de "bye" para o servidor.
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  cb->send_bye();
+                 * ...
+                 * @endcode
+                 */
         void send_bye( void );
+
+                /**
+                 * @Synopsis Destroi o objeto Sip vinculado ao Call_Box, criando e vinculando outro em seguida.
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  cb->reset_sip();
+                 * ...
+                 * @endcode
+                 */
         void reset_sip( void );
+
+                /**
+                 * @Synopsis Altera o valor do status do objeto Sip vinculado.
+                 *
+                 * @param status O novo valor de status que será associado ao objeto Sip vinculado ao Call_Box.
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *  cb->set_sip_status( 0 );
+                 * ...
+                 * @endcode
+                 */
         void set_sip_status( int status );
-        void re_start_timer( void );
+
+                /**
+                 * @Synopsis Inicia ( ou re-inicia ) o Timer do objeto Call_Box.
+                 *
+                 * Exemplo:
+                 * @code
+                 * ...
+                 *   cb->re_start_timer();
+                 * ...
+                 * @endcode
+                 */
+                void re_start_timer( void );
 };
-
 #endif
\ No newline at end of file