Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

vector.h

Committer:
klauss
Date:
2015-11-24
Revision:
137:32dd35a6dbc9
Parent:
135:2f4290590e51

File content as of revision 137:32dd35a6dbc9:

/**
 * @file vector.h
 * @Synopsis A classe Vector representa uma lista de Objects. O objetivo dessa classe é manter de forma organizada na memória as 
 *  instâncias da classe Object.
 * @author Jhonatan Casale
 * @version 1
 * @date 2014-10-31
 * \class Vector
 * \note Não preserva ordem dos seus elementos.
 */

#ifndef __VECTOR_H__
#define __VECTOR_H__

#include "mbed.h"
#include <stdlib.h>
#include "object.h"
#include "debug.h"

class Vector{
    private:
        Object **objects;
        int elements;

    public: 
        /**
         * Cria um objeto do tipo vetor pronto para uso.
         *
         * Exemplo: 
         * @code
         * ...
         *  Vector * v = new Vector();
         * ...
         * @endcode
         */
        Vector();

        /**
         * Deleta todos os elementos do vetor
         * \note Preserva os elementos originais 
         */
        ~Vector();

        /**
         * @Synopsis Adiciona o elemento @f$e@f$ ao final do vetor
         *
         * @param e Um ponteiro para algum objeto da clase Object
         * 
         * Exemplo:
         * @code
         * ...
         *  v->add( new * Object );
         * ...
         * @endcode
         */
        void add( Object * e );

        /**
         * @Synopsis Retorna elementos contidos no vetor 
         *
         * @param position A posicao do elemento de interesse
         *
         * @return Um objeto da classe Object caso position seja 
         * maior do que zero e menor que o numero de elementos 
         * do vetor, NULL caso contrario
         *
         * Exemplo:
         * @code
         * ...
         *  Object obj = v->get_element( 0x01 );
         * ...
         * @endcode
         */
        Object * get_element( int position );

        /**
         * @Synopsis Remove elementos contidos no vetor
         *
         * @param position Remove o elemento na posição position, 
         * desde de, position seja maior do que 0 e menor do que o 
         * numero de elementos do vetor.
         *
         */
        void remove_element( int position );

        /**
         * @Synopsis Executa procedimento de busca nos elementos do vetor 
         *
         * @param ext Verifica se existe algum elemento com este ramal contido no vetor
         * @param port Verifica se existe algum elemento com esta porta contido no vetor
         * \note Este método não esta completamente implementado.
         *
         * @return Um ponteiro para o objeto de interesse. NULL, caso este objeto não tenha
         * sido encontrado.
         *
         * Exemplo:
         * @code
         * ...
         *  return( find_element( 1011, 1011 ); 
         * ...
         * @endcode
         */
        Object * find_element( int ext, int port );

        /**
         * @Synopsis Representa o numero de elementos contidos no vetor. 
         *
         * @return O numero de elementos contidos no vetor
         *
         * Exemplo:
         * @code
         * ...
         *  v->size();
         * ...
         * @endcode
         */
        int size ( void );
        int print_yourself ( void );
};
#endif