Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Wed Nov 12 13:25:54 2014 +0000
Revision:
69:65665afbad5d
Parent:
4:de46f0d9b14d
Child:
109:a5b8264ffbbc
versao em re-valida??o a priori, os dados de audio est?o se perdendo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
klauss 69:65665afbad5d 1 /**
klauss 69:65665afbad5d 2 * @file vector.h
klauss 69:65665afbad5d 3 * @Synopsis A classe Vector representa uma lista de Objects. O objetivo dessa classe é manter de forma organizada na memória as
klauss 69:65665afbad5d 4 * instâncias da classe Object.
klauss 69:65665afbad5d 5 * @author Jhonatan Casale
klauss 69:65665afbad5d 6 * @version 1
klauss 69:65665afbad5d 7 * @date 2014-10-31
klauss 69:65665afbad5d 8 * \class Vector
klauss 69:65665afbad5d 9 * \note Não preserva ordem dos seus elementos.
klauss 69:65665afbad5d 10 */
klauss 69:65665afbad5d 11
klauss 0:4d17cd9c8f9d 12 #ifndef __VECTOR_H__
klauss 0:4d17cd9c8f9d 13 #define __VECTOR_H__
klauss 0:4d17cd9c8f9d 14
klauss 0:4d17cd9c8f9d 15 #include <stdlib.h>
klauss 0:4d17cd9c8f9d 16 #include "object.h"
klauss 4:de46f0d9b14d 17 #include "debug.h"
klauss 0:4d17cd9c8f9d 18
klauss 0:4d17cd9c8f9d 19 class Vector{
klauss 0:4d17cd9c8f9d 20 private:
klauss 0:4d17cd9c8f9d 21 Object **objects;
klauss 0:4d17cd9c8f9d 22 int elements;
klauss 0:4d17cd9c8f9d 23
klauss 0:4d17cd9c8f9d 24 public:
klauss 69:65665afbad5d 25 /**
klauss 69:65665afbad5d 26 * Cria um objeto do tipo vetor pronto para uso.
klauss 69:65665afbad5d 27 *
klauss 69:65665afbad5d 28 * Exemplo:
klauss 69:65665afbad5d 29 * @code
klauss 69:65665afbad5d 30 * ...
klauss 69:65665afbad5d 31 * Vector * v = new Vector();
klauss 69:65665afbad5d 32 * ...
klauss 69:65665afbad5d 33 * @endcode
klauss 69:65665afbad5d 34 */
klauss 0:4d17cd9c8f9d 35 Vector();
klauss 69:65665afbad5d 36
klauss 69:65665afbad5d 37 /**
klauss 69:65665afbad5d 38 * Deleta todos os elementos do vetor
klauss 69:65665afbad5d 39 * \note Preserva os elementos originais
klauss 69:65665afbad5d 40 */
klauss 0:4d17cd9c8f9d 41 ~Vector();
klauss 69:65665afbad5d 42
klauss 69:65665afbad5d 43 /**
klauss 69:65665afbad5d 44 * @Synopsis Adiciona o elemento @f$e@f$ ao final do vetor
klauss 69:65665afbad5d 45 *
klauss 69:65665afbad5d 46 * @param e Um ponteiro para algum objeto da clase Object
klauss 69:65665afbad5d 47 *
klauss 69:65665afbad5d 48 * Exemplo:
klauss 69:65665afbad5d 49 * @code
klauss 69:65665afbad5d 50 * ...
klauss 69:65665afbad5d 51 * v->add( new * Object );
klauss 69:65665afbad5d 52 * ...
klauss 69:65665afbad5d 53 * @endcode
klauss 69:65665afbad5d 54 */
klauss 0:4d17cd9c8f9d 55 void add( Object * e );
klauss 69:65665afbad5d 56
klauss 69:65665afbad5d 57 /**
klauss 69:65665afbad5d 58 * @Synopsis Retorna elementos contidos no vetor
klauss 69:65665afbad5d 59 *
klauss 69:65665afbad5d 60 * @param position A posicao do elemento de interesse
klauss 69:65665afbad5d 61 *
klauss 69:65665afbad5d 62 * @return Um objeto da classe Object caso position seja
klauss 69:65665afbad5d 63 * maior do que zero e menor que o numero de elementos
klauss 69:65665afbad5d 64 * do vetor, NULL caso contrario
klauss 69:65665afbad5d 65 *
klauss 69:65665afbad5d 66 * Exemplo:
klauss 69:65665afbad5d 67 * @code
klauss 69:65665afbad5d 68 * ...
klauss 69:65665afbad5d 69 * Object obj = v->get_element( 0x01 );
klauss 69:65665afbad5d 70 * ...
klauss 69:65665afbad5d 71 * @endcode
klauss 69:65665afbad5d 72 */
klauss 0:4d17cd9c8f9d 73 Object * get_element( int position );
klauss 69:65665afbad5d 74
klauss 69:65665afbad5d 75 /**
klauss 69:65665afbad5d 76 * @Synopsis Remove elementos contidos no vetor
klauss 69:65665afbad5d 77 *
klauss 69:65665afbad5d 78 * @param position Remove o elemento na posição position,
klauss 69:65665afbad5d 79 * desde de, position seja maior do que 0 e menor do que o
klauss 69:65665afbad5d 80 * numero de elementos do vetor.
klauss 69:65665afbad5d 81 *
klauss 69:65665afbad5d 82 */
klauss 0:4d17cd9c8f9d 83 void remove_element( int position );
klauss 69:65665afbad5d 84
klauss 69:65665afbad5d 85 /**
klauss 69:65665afbad5d 86 * @Synopsis Executa procedimento de busca nos elementos do vetor
klauss 69:65665afbad5d 87 *
klauss 69:65665afbad5d 88 * @param e Verifica se o elemento @f$e@f$ esta contido no vetor
klauss 69:65665afbad5d 89 *
klauss 69:65665afbad5d 90 * @return Um inteiro maior ou igual a zero caso o elemento estiver
klauss 69:65665afbad5d 91 * contido no vetor, -3 caso o elemento ainda nao pertença.
klauss 69:65665afbad5d 92 *
klauss 69:65665afbad5d 93 * Exemplo:
klauss 69:65665afbad5d 94 * @code
klauss 69:65665afbad5d 95 * ...
klauss 69:65665afbad5d 96 * Object * obj = new Obj();
klauss 69:65665afbad5d 97 * return( v->find_element( e ) );
klauss 69:65665afbad5d 98 * ...
klauss 69:65665afbad5d 99 * @endcode
klauss 69:65665afbad5d 100 */
klauss 0:4d17cd9c8f9d 101 int find_element( Object * e );
klauss 69:65665afbad5d 102
klauss 69:65665afbad5d 103 /**
klauss 69:65665afbad5d 104 * @Synopsis Executa procedimento de busca nos elementos do vetor
klauss 69:65665afbad5d 105 *
klauss 69:65665afbad5d 106 * @param ext Verifica se existe algum elemento com este ramal contido no vetor
klauss 69:65665afbad5d 107 * @param port Verifica se existe algum elemento com esta porta contido no vetor
klauss 69:65665afbad5d 108 * \note Este método não esta completamente implementado.
klauss 69:65665afbad5d 109 *
klauss 69:65665afbad5d 110 * @return Um ponteiro para o objeto de interesse. NULL, caso este objeto não tenha
klauss 69:65665afbad5d 111 * sido encontrado.
klauss 69:65665afbad5d 112 *
klauss 69:65665afbad5d 113 * Exemplo:
klauss 69:65665afbad5d 114 * @code
klauss 69:65665afbad5d 115 * ...
klauss 69:65665afbad5d 116 * return( find_element( 1011, 1011 );
klauss 69:65665afbad5d 117 * ...
klauss 69:65665afbad5d 118 * @endcode
klauss 69:65665afbad5d 119 */
klauss 0:4d17cd9c8f9d 120 Object * find_element( int ext, int port );
klauss 69:65665afbad5d 121
klauss 69:65665afbad5d 122 /**
klauss 69:65665afbad5d 123 * @Synopsis Representa o numero de elementos contidos no vetor.
klauss 69:65665afbad5d 124 *
klauss 69:65665afbad5d 125 * @return O numero de elementos contidos no vetor
klauss 69:65665afbad5d 126 *
klauss 69:65665afbad5d 127 * Exemplo:
klauss 69:65665afbad5d 128 * @code
klauss 69:65665afbad5d 129 * ...
klauss 69:65665afbad5d 130 * v->size();
klauss 69:65665afbad5d 131 * ...
klauss 69:65665afbad5d 132 * @endcode
klauss 69:65665afbad5d 133 */
klauss 0:4d17cd9c8f9d 134 int size();
klauss 0:4d17cd9c8f9d 135 };
klauss 0:4d17cd9c8f9d 136 #endif