Log In | Get Help   
Home My Page Projects Code Snippets Project Openings Mareframe
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files
[mareframe] Annotation of /trunk/gadget/charptrvector.cc
[mareframe] / trunk / gadget / charptrvector.cc Repository:
ViewVC logotype

Annotation of /trunk/gadget/charptrvector.cc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (view) (download)

1 : agomez 1 #include "charptrvector.h"
2 :     #include "gadget.h"
3 :    
4 :     CharPtrVector::CharPtrVector(const CharPtrVector& initial) {
5 :     size = initial.size;
6 :     int i;
7 :     if (size > 0) {
8 :     v = new char*[size];
9 :     for (i = 0; i < size; i++)
10 :     v[i] = initial.v[i];
11 :     } else
12 :     v = 0;
13 :     }
14 :    
15 :     CharPtrVector::~CharPtrVector() {
16 :     if (v != 0) {
17 :     delete[] v;
18 :     v = 0;
19 :     }
20 :     }
21 :    
22 :     void CharPtrVector::resize(char* value) {
23 :     int i;
24 :     if (v == 0) {
25 :     v = new char*[1];
26 :     } else {
27 :     char** vnew = new char*[size + 1];
28 :     for (i = 0; i < size; i++)
29 :     vnew[i] = v[i];
30 :     delete[] v;
31 :     v = vnew;
32 :     }
33 :     v[size] = value;
34 :     size++;
35 :     }
36 :    
37 :     void CharPtrVector::resizeBlank(int addsize) {
38 :     if (addsize <= 0)
39 :     return;
40 :     int i;
41 :     if (v == 0) {
42 :     size = addsize;
43 :     v = new char*[size];
44 :     } else {
45 :     char** vnew = new char*[addsize + size];
46 :     for (i = 0; i < size; i++)
47 :     vnew[i] = v[i];
48 :     delete[] v;
49 :     v = vnew;
50 :     size += addsize;
51 :     }
52 :     }
53 :    
54 :     void CharPtrVector::Delete(int pos) {
55 :     int i;
56 :     if (size > 1) {
57 :     char** vnew = new char*[size - 1];
58 :     for (i = 0; i < pos; i++)
59 :     vnew[i] = v[i];
60 :     for (i = pos; i < size - 1; i++)
61 :     vnew[i] = v[i + 1];
62 :     delete[] v;
63 :     v = vnew;
64 :     size--;
65 :     } else {
66 :     delete[] v;
67 :     v = 0;
68 :     size = 0;
69 :     }
70 :     }
71 :    
72 :     void CharPtrVector::Reset() {
73 :     if (size > 0) {
74 :     delete[] v;
75 :     v = 0;
76 :     size = 0;
77 :     }
78 :     }
79 :    
80 :     CharPtrVector& CharPtrVector::operator = (const CharPtrVector& cv) {
81 :     int i;
82 :     if (size == cv.size) {
83 :     for (i = 0; i < size; i++)
84 :     v[i] = cv[i];
85 :     return *this;
86 :     }
87 :     if (v != 0) {
88 :     delete[] v;
89 :     v = 0;
90 :     }
91 :     size = cv.size;
92 :     if (size > 0) {
93 :     v = new char*[size];
94 :     for (i = 0; i < size; i++)
95 :     v[i] = cv.v[i];
96 :     } else
97 :     v = 0;
98 :     return *this;
99 :     }

root@forge.cesga.es
ViewVC Help
Powered by ViewVC 1.0.0  

Powered By FusionForge