Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
timeslice.h
- Committer:
- klauss
- Date:
- 2015-11-24
- Revision:
- 137:32dd35a6dbc9
- Parent:
- 121:ee02790d00b7
File content as of revision 137:32dd35a6dbc9:
/**
* @file timeslice.h
* @Synopsis Implementa o gerenciamento do uso de timeslices, necessario para a comunicação no protocolo CBx->Header
* @author Jhonatan Casale
* @version 1
* @date 2014-10-31
* \class Timeslice
*/
#ifndef __TIMESLICE_H__
#define __TIMESLICE_H__
#include <stdint.h>
const uint8_t MAX_TIMESLICES = 4;
///< Por decisão de projeto, este foi dimensionado para o uso de 4 timeslices
class Timeslice{
private :
uint8_t timeslice[ MAX_TIMESLICES ];
public :
/**
* @Synopsis Cria e inicializa o objeto, pronto para o uso.
*
* Exemplo:
* @code
* ...
* Timeslice * ts = new Timeslice();
* ...
* @endcode
*/
Timeslice();
/**
* @Synopsis Destroi o elemento.
*
* Exemplo:
* @code
* ...
* delete( ts );
* ...
* @endcode
*/
~Timeslice();
/**
* @Synopsis Busca por timeslices disponiveis.
*
* @return zero, caso todos os timeslices já estiverem em uso, ou retorna um
* numero maior que zero que representa justamente o timeslice.
*
* Exemplo:
* @code
* ...
* ts->get_timeslice();
* ...
* @endcode
*/
uint8_t get_timeslice();
/**
* @Synopsis Coloca o timeslice devolvido a disposição para novos usos.
*
* @param i O timeslice que esta sendo devolvido.
*
* Exemplo:
* @code
* ...
* ts->return_timeslice( 0x03 );
* @endcode
*/
void return_timeslice( uint8_t i );
/**
* @Synopsis Reinicia a estrutura, deixando todos os timeslices a disposição para uso.
*
*
* Exemplo:
* @code
* ...
* ts->reset();
* ...
* @endcode
*/
void reset();
/**
* @Synopsis Representa quantos timeslices ainda estão disponiveis para uso.
*
* @return O numero de timeslices ainda desocupados. Este numero é sempre maior ou igual a zero.
*
* Exemplo:
* @code
* ...
* ts->remain_timeslices();
* ...
* @endcode
*/
uint8_t remain_timeslices( void );
};
#endif
