VZTECH / Mbed 2 deprecated main_src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers timeslice.h Source File

timeslice.h

Go to the documentation of this file.
00001 /**
00002  * @file timeslice.h
00003  * @Synopsis Implementa o gerenciamento do uso de timeslices, necessario para a comunicação no protocolo CBx->Header 
00004  * @author Jhonatan Casale
00005  * @version 1
00006  * @date 2014-10-31
00007  * \class Timeslice
00008  */
00009 
00010 #ifndef __TIMESLICE_H__
00011 #define __TIMESLICE_H__
00012 
00013 #include <stdint.h>
00014 
00015 const uint8_t MAX_TIMESLICES = 4;
00016 ///< Por decisão de projeto, este foi dimensionado para o uso de 4 timeslices
00017 
00018 class Timeslice{
00019     private :
00020         uint8_t timeslice[ MAX_TIMESLICES ];
00021     public :
00022         /**
00023          * @Synopsis Cria e inicializa o objeto, pronto para o uso.
00024          *
00025          * Exemplo:
00026          * @code
00027          * ...
00028          *  Timeslice * ts = new Timeslice();
00029          * ...
00030          * @endcode
00031          */
00032         Timeslice();
00033         
00034         /**
00035          * @Synopsis Destroi o elemento.
00036          *
00037          * Exemplo:
00038          * @code
00039          * ...
00040          *  delete( ts );
00041          * ...
00042          * @endcode
00043          */
00044         ~Timeslice();
00045         
00046         /**
00047          * @Synopsis Busca por timeslices disponiveis.
00048          *
00049          * @return zero, caso todos os timeslices já estiverem em uso, ou retorna um
00050          * numero maior que zero que representa justamente o timeslice.
00051          *
00052          * Exemplo:
00053          * @code
00054          * ...
00055          *  ts->get_timeslice();
00056          * ...
00057          * @endcode
00058          */
00059         uint8_t get_timeslice();
00060         
00061         /**
00062          * @Synopsis Coloca o timeslice devolvido a disposição para novos usos. 
00063          *
00064          * @param i O timeslice que esta sendo devolvido.
00065          *
00066          * Exemplo:
00067          * @code
00068          * ...
00069          *  ts->return_timeslice( 0x03 );
00070          * @endcode
00071          */
00072         void return_timeslice( uint8_t i );
00073         
00074         /**
00075          * @Synopsis Reinicia a estrutura, deixando todos os timeslices a disposição para uso.
00076          *
00077          *
00078          * Exemplo:
00079          * @code
00080          * ...
00081          *  ts->reset();
00082          * ...
00083          * @endcode
00084          */
00085         void reset();
00086         
00087         /**
00088          * @Synopsis Representa quantos timeslices ainda estão disponiveis para uso.
00089          *
00090          * @return O numero de timeslices ainda desocupados. Este numero é sempre maior ou igual a zero.
00091          *
00092          * Exemplo:
00093          * @code
00094          * ...
00095          *  ts->remain_timeslices();
00096          * ...
00097          * @endcode
00098          */
00099         uint8_t remain_timeslices( void );
00100 };
00101 
00102 #endif