COVISE Core
Covise_Util.h
Go to the documentation of this file.
1/* This file is part of COVISE.
2
3 You can use it under the terms of the GNU Lesser General Public License
4 version 2.1 or later, see lgpl-2.1.txt.
5
6 * License: LGPL 2+ */
7
8#ifndef COVISE_UTIL_H
9#define COVISE_UTIL_H
10
11#include "covise.h"
12
13namespace covise
14{
15
17{
18 char *buf;
19 int num;
20
21public:
23 {
24 num = 0;
25 buf = NULL;
26 };
28 {
29 buf = new char[50];
30 sprintf(buf, "%d", n);
31 num = n;
32 };
33 CharNum(float n)
34 {
35 buf = new char[50];
36 sprintf(buf, "%f", n);
37 num = (int)n;
38 };
40 {
41 delete[] buf;
42 };
43 operator char *()
44 {
45 return (buf);
46 };
47 operator int()
48 {
49 return (num);
50 };
51};
52
54{
55 char *buf;
56 int len;
57
58public:
61 {
62 cur_len = 0;
63 len = 0;
64 buf = NULL;
65 };
67 {
68 cur_len = obuf->cur_len;
69 len = cur_len + 1;
70 buf = new char[len];
71 strcpy(buf, obuf->getbuf());
72 };
73 CharBuffer(int def)
74 {
75 cur_len = 0;
76 len = def;
77 buf = new char[len];
78 if (len)
79 *buf = '\0';
80 };
82 {
83 delete[] buf;
84 };
86 {
87 char *tmp = buf;
88 buf = nullptr;
89 cur_len = 0;
90 len = 0;
91 return (tmp);
92 };
93 int strlen()
94 {
95 return (cur_len);
96 };
97 void operator+=(const char *const s)
98 {
99 int l = (int)::strlen(s);
100 if (cur_len + l >= len)
101 {
102 len += l * 10;
103 char *nbuf = new char[len];
104 strcpy(nbuf, buf);
105 delete[] buf;
106 buf = nbuf;
107 }
108 strcpy(buf + cur_len, s);
109 cur_len += l;
110 };
111 void operator+=(char c)
112 {
113 if (cur_len + 1 >= len)
114 {
115 len += 100;
116 char *nbuf = new char[len];
117 strcpy(nbuf, buf);
118 delete[] buf;
119 buf = nbuf;
120 }
121 buf[cur_len] = c;
122 cur_len++;
123 buf[cur_len] = 0;
124 };
125 void operator+=(int n)
126 {
127 CharNum s(n);
128 int l = (int)::strlen(s);
129 if (cur_len + l >= len)
130 {
131 len += l * 10;
132 char *nbuf = new char[len];
133 strcpy(nbuf, buf);
134 delete[] buf;
135 buf = nbuf;
136 }
137 strcpy(buf + cur_len, s);
138 cur_len += l;
139 };
140 void operator+=(float n)
141 {
142 CharNum s(n);
143 int l = (int)::strlen(s);
144 if (cur_len + l >= len)
145 {
146 len += l * 10;
147 char *nbuf = new char[len];
148 strcpy(nbuf, buf);
149 delete[] buf;
150 buf = nbuf;
151 }
152 strcpy(buf + cur_len, s);
153 cur_len += l;
154 };
155 operator const char *() const
156 {
157 return (buf);
158 };
159 const char *getbuf()
160 {
161 return (buf);
162 };
163};
164}
165#endif
#define NULL
Definition: covise_list.h:22
GLdouble n
Definition: khronos-glext.h:8447
const GLubyte * c
Definition: khronos-glext.h:9864
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: khronos-glext.h:8469
GLuint GLuint num
Definition: khronos-glext.h:10593
GLenum GLsizei len
Definition: khronos-glext.h:7440
GLdouble s
Definition: khronos-glext.h:6441
list of all chemical elements
Definition: coConfig.h:27
Definition: Covise_Util.h:17
CharNum(float n)
Definition: Covise_Util.h:33
CharNum()
Definition: Covise_Util.h:22
char * buf
Definition: Covise_Util.h:18
int num
Definition: Covise_Util.h:19
CharNum(int n)
Definition: Covise_Util.h:27
~CharNum()
Definition: Covise_Util.h:39
Definition: Covise_Util.h:54
void operator+=(const char *const s)
Definition: Covise_Util.h:97
char * return_data()
Definition: Covise_Util.h:85
const char * getbuf()
Definition: Covise_Util.h:159
void operator+=(char c)
Definition: Covise_Util.h:111
~CharBuffer()
Definition: Covise_Util.h:81
CharBuffer(int def)
Definition: Covise_Util.h:73
void operator+=(int n)
Definition: Covise_Util.h:125
char * buf
Definition: Covise_Util.h:55
void operator+=(float n)
Definition: Covise_Util.h:140
CharBuffer(CharBuffer *obuf)
Definition: Covise_Util.h:66
int len
Definition: Covise_Util.h:56
CharBuffer()
Definition: Covise_Util.h:60
int cur_len
Definition: Covise_Util.h:59
int strlen()
Definition: Covise_Util.h:93