![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
vector.cpp@132:05cd37f7e007, 2015-09-01 (annotated)
- Committer:
- klauss
- Date:
- Tue Sep 01 17:21:11 2015 +0000
- Revision:
- 132:05cd37f7e007
- Parent:
- 121:ee02790d00b7
- Child:
- 135:2f4290590e51
Substitui??o de; send_msg -> vz_printf; debug_msg -> vz_debug
Who changed what in which revision?
User | Revision | Line number | New 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::find_element ( Object * e ) |
klauss | 132:05cd37f7e007 | 55 | { |
klauss | 87:679ee0d594a9 | 56 | if( e != NULL ) |
klauss | 87:679ee0d594a9 | 57 | { |
klauss | 87:679ee0d594a9 | 58 | for( int i = 0; i < this->elements; i++ ) |
klauss | 87:679ee0d594a9 | 59 | if( this->objects[ i ] == e ) return ( i ); |
klauss | 87:679ee0d594a9 | 60 | return ( -3 ); |
klauss | 87:679ee0d594a9 | 61 | } |
klauss | 87:679ee0d594a9 | 62 | else |
klauss | 87:679ee0d594a9 | 63 | { |
klauss | 87:679ee0d594a9 | 64 | return ( -1 ); |
klauss | 87:679ee0d594a9 | 65 | } |
klauss | 0:4d17cd9c8f9d | 66 | } |
klauss | 0:4d17cd9c8f9d | 67 | |
klauss | 132:05cd37f7e007 | 68 | int Vector::size ( void ) { return this -> elements; } |
klauss | 109:a5b8264ffbbc | 69 | |
klauss | 109:a5b8264ffbbc | 70 | int Vector::print_yourself ( void ) |
klauss | 109:a5b8264ffbbc | 71 | { |
klauss | 132:05cd37f7e007 | 72 | vz_printf ("\r\n"); |
klauss | 132:05cd37f7e007 | 73 | vz_printf ("Elements :: %d ( %p )", this -> elements, &( this->elements ) ); |
klauss | 132:05cd37f7e007 | 74 | vz_printf ("Values ::\r\n"); |
klauss | 109:a5b8264ffbbc | 75 | |
klauss | 132:05cd37f7e007 | 76 | if ( this -> elements == 0 ) |
klauss | 109:a5b8264ffbbc | 77 | { |
klauss | 132:05cd37f7e007 | 78 | vz_printf ( "Objects :: %p", this -> objects ); |
klauss | 109:a5b8264ffbbc | 79 | } |
klauss | 109:a5b8264ffbbc | 80 | else |
klauss | 109:a5b8264ffbbc | 81 | { |
klauss | 132:05cd37f7e007 | 82 | for ( register int i = 0; i < this -> elements; i++ ) |
klauss | 109:a5b8264ffbbc | 83 | { |
klauss | 132:05cd37f7e007 | 84 | vz_printf ("[ %i ] :: %p", i, ( this -> objects + i ) ); |
klauss | 109:a5b8264ffbbc | 85 | } |
klauss | 109:a5b8264ffbbc | 86 | } |
klauss | 132:05cd37f7e007 | 87 | vz_printf ("\r\n"); |
klauss | 132:05cd37f7e007 | 88 | |
klauss | 132:05cd37f7e007 | 89 | return ( sizeof ( Vector ) ); |
klauss | 109:a5b8264ffbbc | 90 | } |