Modularizando o src

Dependencies:   EALib EthernetInterface_vz mbed-rtos mbed

Fork of header_main_colinas_V0-20-09-14 by VZTECH

Committer:
klauss
Date:
Tue Nov 24 14:06:22 2015 +0000
Revision:
137:32dd35a6dbc9
Parent:
135:2f4290590e51
core source of the .bin (09/21/2015) in the field

Who changed what in which revision?

UserRevisionLine numberNew contents of line
klauss 0:4d17cd9c8f9d 1 #include "vector.h"
klauss 0:4d17cd9c8f9d 2
klauss 132:05cd37f7e007 3 Vector::Vector ()
klauss 132:05cd37f7e007 4 {
klauss 132:05cd37f7e007 5 this -> objects = NULL;
klauss 132:05cd37f7e007 6 this -> elements = 0;
klauss 0:4d17cd9c8f9d 7 }
klauss 0:4d17cd9c8f9d 8
klauss 132:05cd37f7e007 9 Vector::~Vector ()
klauss 132:05cd37f7e007 10 {
klauss 132:05cd37f7e007 11 if ( this -> objects != NULL ) free ( this -> objects );
klauss 0:4d17cd9c8f9d 12 }
klauss 0:4d17cd9c8f9d 13
klauss 132:05cd37f7e007 14 void Vector::add ( Object * e )
klauss 132:05cd37f7e007 15 {
klauss 132:05cd37f7e007 16 if ( e != NULL )
klauss 132:05cd37f7e007 17 {
klauss 132:05cd37f7e007 18 this -> objects = ( Object ** ) realloc ( this -> objects, sizeof ( Object * ) * ++( this -> elements ) );
klauss 132:05cd37f7e007 19 if ( this -> objects == NULL )
klauss 132:05cd37f7e007 20 {
klauss 87:679ee0d594a9 21 memory_is_over = true;
klauss 132:05cd37f7e007 22 if ( debug_memory ) vz_debug ( "Vector add fail" );
klauss 132:05cd37f7e007 23 } else {
klauss 132:05cd37f7e007 24 this -> objects [ this -> elements - 1 ] = e;
klauss 87:679ee0d594a9 25 }
klauss 87:679ee0d594a9 26 }
klauss 0:4d17cd9c8f9d 27 }
klauss 0:4d17cd9c8f9d 28
klauss 132:05cd37f7e007 29 Object * Vector::get_element ( int position )
klauss 132:05cd37f7e007 30 {
klauss 132:05cd37f7e007 31 return ( position > -1 && position < this->elements ) ? ( Object * ) * ( this -> objects + position ) : NULL;
klauss 0:4d17cd9c8f9d 32 }
klauss 0:4d17cd9c8f9d 33
klauss 132:05cd37f7e007 34 void Vector::remove_element ( int position )
klauss 132:05cd37f7e007 35 {
klauss 132:05cd37f7e007 36 if ( debug_vector ) vz_debug ( "Removing element %d", position );
klauss 132:05cd37f7e007 37 if ( position > -1 && position < this -> elements )
klauss 132:05cd37f7e007 38 {
klauss 132:05cd37f7e007 39 if ( position == 0 && this -> elements == 1 )
klauss 132:05cd37f7e007 40 {
klauss 132:05cd37f7e007 41 this -> elements = 0;
klauss 132:05cd37f7e007 42 free ( this -> objects );
klauss 132:05cd37f7e007 43 this -> objects = NULL;
klauss 132:05cd37f7e007 44 } else {
klauss 132:05cd37f7e007 45 this -> objects [ position ] = this -> objects[ -- ( this -> elements ) ];
klauss 132:05cd37f7e007 46 this -> objects = ( Object ** ) realloc ( this -> objects, sizeof ( Object * ) * this -> elements );
klauss 132:05cd37f7e007 47 if ( this -> objects == NULL ) memory_is_over = true;
klauss 132:05cd37f7e007 48 if ( debug_memory ) vz_debug ( "Resize Vector fail" );
klauss 0:4d17cd9c8f9d 49 }
klauss 0:4d17cd9c8f9d 50 }
klauss 132:05cd37f7e007 51 if ( debug_vector ) vz_debug ( "Removed" );
klauss 0:4d17cd9c8f9d 52 }
klauss 0:4d17cd9c8f9d 53
klauss 132:05cd37f7e007 54 int Vector::size ( void ) { return this -> elements; }
klauss 109:a5b8264ffbbc 55
klauss 109:a5b8264ffbbc 56 int Vector::print_yourself ( void )
klauss 109:a5b8264ffbbc 57 {
klauss 132:05cd37f7e007 58 vz_printf ("\r\n");
klauss 132:05cd37f7e007 59 vz_printf ("Elements :: %d ( %p )", this -> elements, &( this->elements ) );
klauss 132:05cd37f7e007 60 vz_printf ("Values ::\r\n");
klauss 109:a5b8264ffbbc 61
klauss 132:05cd37f7e007 62 if ( this -> elements == 0 )
klauss 109:a5b8264ffbbc 63 {
klauss 132:05cd37f7e007 64 vz_printf ( "Objects :: %p", this -> objects );
klauss 109:a5b8264ffbbc 65 }
klauss 109:a5b8264ffbbc 66 else
klauss 109:a5b8264ffbbc 67 {
klauss 132:05cd37f7e007 68 for ( register int i = 0; i < this -> elements; i++ )
klauss 109:a5b8264ffbbc 69 {
klauss 132:05cd37f7e007 70 vz_printf ("[ %i ] :: %p", i, ( this -> objects + i ) );
klauss 109:a5b8264ffbbc 71 }
klauss 109:a5b8264ffbbc 72 }
klauss 132:05cd37f7e007 73 vz_printf ("\r\n");
klauss 132:05cd37f7e007 74
klauss 132:05cd37f7e007 75 return ( sizeof ( Vector ) );
klauss 109:a5b8264ffbbc 76 }