SAGA API Version 9.13
Loading...
Searching...
No Matches
table_value.h
Go to the documentation of this file.
1
3// //
4// SAGA //
5// //
6// System for Automated Geoscientific Analyses //
7// //
8// Application Programming Interface //
9// //
10// Library: SAGA_API //
11// //
12//-------------------------------------------------------//
13// //
14// table_value.h //
15// //
16// Copyright (C) 2005 by Olaf Conrad //
17// //
18//-------------------------------------------------------//
19// //
20// This file is part of 'SAGA - System for Automated //
21// Geoscientific Analyses'. //
22// //
23// This library is free software; you can redistribute //
24// it and/or modify it under the terms of the GNU Lesser //
25// General Public License as published by the Free //
26// Software Foundation, either version 2.1 of the //
27// License, or (at your option) any later version. //
28// //
29// This library is distributed in the hope that it will //
30// be useful, but WITHOUT ANY WARRANTY; without even the //
31// implied warranty of MERCHANTABILITY or FITNESS FOR A //
32// PARTICULAR PURPOSE. See the GNU Lesser General Public //
33// License for more details. //
34// //
35// You should have received a copy of the GNU Lesser //
36// General Public License along with this program; if //
37// not, see <http://www.gnu.org/licenses/>. //
38// //
39//-------------------------------------------------------//
40// //
41// contact: Olaf Conrad //
42// Institute of Geography //
43// University of Goettingen //
44// Goldschmidtstr. 5 //
45// 37077 Goettingen //
46// Germany //
47// //
48// e-mail: oconrad@saga-gis.org //
49// //
51
52//---------------------------------------------------------
53#ifndef HEADER_INCLUDED__SAGA_API__table_value_H
54#define HEADER_INCLUDED__SAGA_API__table_value_H
55
56
58// //
59// //
60// //
62
63//---------------------------------------------------------
72
73
75// //
76// //
77// //
79
80//---------------------------------------------------------
81#include "datetime.h"
82
83
85// //
86// //
87// //
89
90//---------------------------------------------------------
99
100
102// //
103// //
104// //
106
107//---------------------------------------------------------
109{
110public:
112 virtual ~CSG_Table_Value(void) {}
113
114 virtual const TSG_Table_Value_Type Get_Type (void) const = 0;
115
116 virtual sLong asLong (void) const = 0;
117 virtual uLong asULong (void) const = 0;
118 virtual double asDouble (void) const = 0;
119 virtual const SG_Char * asString (int Decimals =-99) const = 0;
120 virtual CSG_Bytes asBinary (void) const { const SG_Char *s = asString(); return( CSG_Bytes((BYTE *)s, (int)(s && *s ? SG_STR_LEN(s) : 0) * sizeof(SG_Char)) ); }
121
122 virtual bool Set_Value (const sLong &Value) = 0;
123 virtual bool Set_Value (const uLong &Value) = 0;
124 virtual bool Set_Value (const double &Value) = 0;
125 virtual bool Set_Value (const SG_Char *Value) = 0;
126 virtual bool Set_Value (const CSG_Bytes &Value) { return( Set_Value((SG_Char *)Value.Get_Bytes()) ); } // interpret bytes by default as string
127 virtual bool Set_Value (const CSG_Table_Value &Value) = 0;
128
129 virtual bool is_Equal (const CSG_Table_Value &Value) const = 0;
130
131 virtual operator const SG_Char * (void) const { return( asString() ); }
132 virtual operator double (void) const { return( asDouble() ); }
133
134 virtual bool operator == (const CSG_Table_Value &Value) const { return( is_Equal(Value) ); }
135
136 CSG_Table_Value & operator = (double Value) { Set_Value(Value); return( *this ); }
137 CSG_Table_Value & operator = (const SG_Char *Value) { Set_Value(Value); return( *this ); }
138 CSG_Table_Value & operator = (const CSG_Table_Value &Value) { Set_Value(Value); return( *this ); }
139
140};
141
142
144// //
146
147//---------------------------------------------------------
149{
150public:
152 virtual ~CSG_Table_Value_String(void) {}
153
154 virtual const TSG_Table_Value_Type Get_Type (void) const { return( SG_TABLE_VALUE_TYPE_String ); }
155
156 virtual sLong asLong (void) const { return( m_Value.asLong () ); }
157 virtual uLong asULong (void) const { return( m_Value.asULong () ); }
158 virtual double asDouble (void) const { return( m_Value.asDouble() ); }
159 virtual const SG_Char * asString (int Decimals =-99) const { return( m_Value.c_str () ); }
160
161 virtual bool Set_Value (const sLong &Value) { return( Set_Value(CSG_String::Format("%lld" , Value).c_str()) ); }
162 virtual bool Set_Value (const uLong &Value) { return( Set_Value(CSG_String::Format("%ulld", Value).c_str()) ); }
163 virtual bool Set_Value (const double &Value) { return( Set_Value(CSG_String::Format("%f" , Value).c_str()) ); }
164 virtual bool Set_Value (const SG_Char *Value) { if( Value && m_Value.Cmp(Value) ) { m_Value = Value; return( true ); } return( false ); }
165 virtual bool Set_Value (const CSG_Table_Value &Value) { Set_Value(Value.asString()); return( *this ); }
166
167 virtual bool is_Equal (const CSG_Table_Value &Value) const { return( !m_Value.Cmp(Value.asString()) ); }
168
169
170private:
171
172 CSG_String m_Value;
173
174};
175
176
178// //
180
181//---------------------------------------------------------
183{
184public:
186 virtual ~CSG_Table_Value_Date(void) {}
187
188 virtual const TSG_Table_Value_Type Get_Type (void) const { return( SG_TABLE_VALUE_TYPE_Date ); }
189
190 virtual sLong asLong (void) const { return( (sLong)m_JDN ); }
191 virtual uLong asULong (void) const { return( (uLong)m_JDN ); }
192 virtual double asDouble (void) const { return( m_JDN ); }
193 virtual const SG_Char * asString (int Decimals =-99) const { return( m_Date ); }
194
195 virtual bool Set_Value (const sLong &Value) { return( Set_Value((double)Value) ); }
196 virtual bool Set_Value (const uLong &Value) { return( Set_Value((double)Value) ); }
197 virtual bool Set_Value (const double &Value) { if( m_JDN != Value ) { m_JDN = Value; m_Date = SG_JulianDayNumber_To_Date(m_JDN); return( true ); } return( false ); }
198 virtual bool Set_Value (const SG_Char *Value) { return( Set_Value(SG_Date_To_JulianDayNumber(Value)) ); }
199 virtual bool Set_Value (const CSG_Table_Value &Value)
200 {
201 switch( Value.Get_Type() )
202 {
204 m_JDN = (*(CSG_Table_Value_Date *)&Value).m_JDN ;
205 m_Date = (*(CSG_Table_Value_Date *)&Value).m_Date;
206 return( *this );
207
210 Set_Value(Value.asString());
211 return( *this );
212
213 default :
214 Set_Value(Value.asDouble());
215 return( *this );
216 }
217 }
218
219 virtual bool is_Equal (const CSG_Table_Value &Value) const { return( m_JDN == Value.asDouble() ); }
220
221
222private:
223
224 double m_JDN = 0.; // Julian Day Number
225
226 CSG_String m_Date; // YYYY-MM-DD (ISO 8601)
227
228};
229
230
232// //
234
235//---------------------------------------------------------
237{
238public:
240 virtual ~CSG_Table_Value_Binary(void) {}
241
242 virtual const TSG_Table_Value_Type Get_Type (void) const { return( SG_TABLE_VALUE_TYPE_Binary ); }
243
244 virtual sLong asLong (void) const { return( m_Value.Get_Count() ); }
245 virtual uLong asULong (void) const { return( m_Value.Get_Count() ); }
246 virtual double asDouble (void) const { return( 0. ); }
247 virtual const SG_Char * asString (int Decimals =-99) const { return( (const SG_Char *)m_Value.Get_Bytes() ); }
248 virtual CSG_Bytes asBinary (void) const { return( m_Value ); }
249
250 virtual bool Set_Value (const sLong &Value) { return( m_Value.Create((BYTE *)&Value, sizeof(Value)) ); }
251 virtual bool Set_Value (const uLong &Value) { return( m_Value.Create((BYTE *)&Value, sizeof(Value)) ); }
252 virtual bool Set_Value (const double &Value) { return( m_Value.Create((BYTE *)&Value, sizeof(Value)) ); }
253 virtual bool Set_Value (const SG_Char *Value) { return( m_Value.Create((BYTE *)Value, (int)((Value && *Value ? SG_STR_LEN(Value) : 0 * sizeof(SG_Char)))) ); }
254 virtual bool Set_Value (const CSG_Bytes &Value) { return( m_Value.Create(Value) ); }
255 virtual bool Set_Value (const CSG_Table_Value &Value) { return( Set_Value(Value.asBinary()) ); }
256
257 virtual bool is_Equal (const CSG_Table_Value &Value) const { return( !SG_STR_CMP(asString(), Value.asString()) ); }
258
259 virtual bool Set_NoData (void) { return( m_Value.Destroy() ); }
260 virtual bool is_NoData (void) const { return( m_Value.Get_Count() <= 0 ); }
261
262 CSG_Bytes & Get_Binary (void) { return( m_Value ); }
263
264
265private:
266
267 CSG_Bytes m_Value;
268
269};
270
271
273// //
275
276//---------------------------------------------------------
278{
279public:
281 {
282 m_Value = (void *)SG_Calloc(1, SG_Data_Type_Get_Size(Type));
283 }
284
286 {
287 if( m_Value ) { SG_Free(m_Value); }
288 }
289
290 virtual const TSG_Table_Value_Type Get_Type (void) const { return( SG_TABLE_VALUE_TYPE_Number ); }
291
292 virtual const TSG_Data_Type & Get_Data_Type (void) const { return( m_Type ); }
293
294 virtual sLong asLong (void) const
295 {
296 switch( m_Type )
297 {
298 case SG_DATATYPE_Byte : return( (sLong)*(BYTE *)m_Value );
299 case SG_DATATYPE_Char : return( (sLong)*(char *)m_Value );
300 case SG_DATATYPE_Word : return( (sLong)*(WORD *)m_Value );
301 case SG_DATATYPE_Short : return( (sLong)*(short *)m_Value );
302 case SG_DATATYPE_DWord : return( (sLong)*(DWORD *)m_Value );
303 case SG_DATATYPE_Int : return( (sLong)*(int *)m_Value );
304 case SG_DATATYPE_ULong : return( (sLong)*(uLong *)m_Value );
305 case SG_DATATYPE_Long : return( (sLong)*(sLong *)m_Value );
306 case SG_DATATYPE_Float : return( (sLong)*(float *)m_Value );
307 case SG_DATATYPE_Double: return( (sLong)*(double *)m_Value );
308 default : return( (sLong)0 );
309 }
310 }
311
312 virtual uLong asULong (void) const
313 {
314 switch( m_Type )
315 {
316 case SG_DATATYPE_Byte : return( (uLong)*(BYTE *)m_Value );
317 case SG_DATATYPE_Char : return( (uLong)*(char *)m_Value );
318 case SG_DATATYPE_Word : return( (uLong)*(WORD *)m_Value );
319 case SG_DATATYPE_Short : return( (uLong)*(short *)m_Value );
320 case SG_DATATYPE_DWord : return( (uLong)*(DWORD *)m_Value );
321 case SG_DATATYPE_Int : return( (uLong)*(int *)m_Value );
322 case SG_DATATYPE_ULong : return( (uLong)*(uLong *)m_Value );
323 case SG_DATATYPE_Long : return( (uLong)*(sLong *)m_Value );
324 case SG_DATATYPE_Float : return( (uLong)*(float *)m_Value );
325 case SG_DATATYPE_Double: return( (uLong)*(double *)m_Value );
326 default : return( (uLong)0 );
327 }
328 }
329
330 virtual double asDouble (void) const
331 {
332 switch( m_Type )
333 {
334 case SG_DATATYPE_Byte : return( (double)*(BYTE *)m_Value );
335 case SG_DATATYPE_Char : return( (double)*(char *)m_Value );
336 case SG_DATATYPE_Word : return( (double)*(WORD *)m_Value );
337 case SG_DATATYPE_Short : return( (double)*(short *)m_Value );
338 case SG_DATATYPE_DWord : return( (double)*(DWORD *)m_Value );
339 case SG_DATATYPE_Int : return( (double)*(int *)m_Value );
340 case SG_DATATYPE_ULong : return( (double)*(uLong *)m_Value );
341 case SG_DATATYPE_Long : return( (double)*(sLong *)m_Value );
342 case SG_DATATYPE_Float : return( (double)*(float *)m_Value );
343 case SG_DATATYPE_Double: return( (double)*(double *)m_Value );
344 default : return( (double)0. );
345 }
346 }
347
348 virtual const SG_Char * asString (int Decimals =-99) const
349 {
350 static CSG_String s;
351
352 switch( m_Type )
353 {
354 case SG_DATATYPE_Byte : s.Printf("%u" , *(BYTE *)m_Value) ; break;
355 case SG_DATATYPE_Char : s.Printf("%d" , *(char *)m_Value) ; break;
356 case SG_DATATYPE_Word : s.Printf("%u" , *(WORD *)m_Value) ; break;
357 case SG_DATATYPE_Short : s.Printf("%d" , *(short *)m_Value) ; break;
358 case SG_DATATYPE_DWord : s.Printf("%u" , *(DWORD *)m_Value) ; break;
359 case SG_DATATYPE_Int : s.Printf("%d" , *(int *)m_Value) ; break;
360 case SG_DATATYPE_ULong : s.Printf("%llu", *(uLong *)m_Value) ; break;
361 case SG_DATATYPE_Long : s.Printf("%lld", *(sLong *)m_Value) ; break;
362 case SG_DATATYPE_Float : s = SG_Get_String(*(float *)m_Value, Decimals); break;
363 case SG_DATATYPE_Double: s = SG_Get_String(*(double *)m_Value, Decimals); break;
364 default : s.Clear() ; break;
365 }
366
367 return( s.c_str() );
368 }
369
370 virtual bool Set_Value (const uLong &Value)
371 {
372 switch( m_Type )
373 {
374 case SG_DATATYPE_Byte : if( *(BYTE *)m_Value != (BYTE )Value ) { *(BYTE *)m_Value = (BYTE )Value; return( true ); } return( false );
375 case SG_DATATYPE_Char : if( *(char *)m_Value != (char )Value ) { *(char *)m_Value = (char )Value; return( true ); } return( false );
376 case SG_DATATYPE_Word : if( *(WORD *)m_Value != (WORD )Value ) { *(WORD *)m_Value = (WORD )Value; return( true ); } return( false );
377 case SG_DATATYPE_Short : if( *(short *)m_Value != (short )Value ) { *(short *)m_Value = (short )Value; return( true ); } return( false );
378 case SG_DATATYPE_DWord : if( *(DWORD *)m_Value != (DWORD )Value ) { *(DWORD *)m_Value = (DWORD )Value; return( true ); } return( false );
379 case SG_DATATYPE_Int : if( *(int *)m_Value != (int )Value ) { *(int *)m_Value = (int )Value; return( true ); } return( false );
380 case SG_DATATYPE_ULong : if( *(uLong *)m_Value != (uLong )Value ) { *(uLong *)m_Value = (uLong )Value; return( true ); } return( false );
381 case SG_DATATYPE_Long : if( *(sLong *)m_Value != (sLong )Value ) { *(sLong *)m_Value = (sLong )Value; return( true ); } return( false );
382 case SG_DATATYPE_Float : if( *(float *)m_Value != (float )Value ) { *(float *)m_Value = (float )Value; return( true ); } return( false );
383 case SG_DATATYPE_Double: if( *(double *)m_Value != (double )Value ) { *(double *)m_Value = (double )Value; return( true ); } return( false );
384 default : return( false );
385 }
386 }
387
388 virtual bool Set_Value (const sLong &Value)
389 {
390 switch( m_Type )
391 {
392 case SG_DATATYPE_Byte : if( *(BYTE *)m_Value != (BYTE )Value ) { *(BYTE *)m_Value = (BYTE )Value; return( true ); } return( false );
393 case SG_DATATYPE_Char : if( *(char *)m_Value != (char )Value ) { *(char *)m_Value = (char )Value; return( true ); } return( false );
394 case SG_DATATYPE_Word : if( *(WORD *)m_Value != (WORD )Value ) { *(WORD *)m_Value = (WORD )Value; return( true ); } return( false );
395 case SG_DATATYPE_Short : if( *(short *)m_Value != (short )Value ) { *(short *)m_Value = (short )Value; return( true ); } return( false );
396 case SG_DATATYPE_DWord : if( *(DWORD *)m_Value != (DWORD )Value ) { *(DWORD *)m_Value = (DWORD )Value; return( true ); } return( false );
397 case SG_DATATYPE_Int : if( *(int *)m_Value != (int )Value ) { *(int *)m_Value = (int )Value; return( true ); } return( false );
398 case SG_DATATYPE_ULong : if( *(uLong *)m_Value != (uLong )Value ) { *(uLong *)m_Value = (uLong )Value; return( true ); } return( false );
399 case SG_DATATYPE_Long : if( *(sLong *)m_Value != (sLong )Value ) { *(sLong *)m_Value = (sLong )Value; return( true ); } return( false );
400 case SG_DATATYPE_Float : if( *(float *)m_Value != (float )Value ) { *(float *)m_Value = (float )Value; return( true ); } return( false );
401 case SG_DATATYPE_Double: if( *(double *)m_Value != (double )Value ) { *(double *)m_Value = (double )Value; return( true ); } return( false );
402 default : return( false );
403 }
404 }
405
406 virtual bool Set_Value (const double &Value)
407 {
408 switch( m_Type )
409 {
410 case SG_DATATYPE_Byte : if( *(BYTE *)m_Value != (BYTE )Value ) { *(BYTE *)m_Value = (BYTE )Value; return( true ); } return( false );
411 case SG_DATATYPE_Char : if( *(char *)m_Value != (char )Value ) { *(char *)m_Value = (char )Value; return( true ); } return( false );
412 case SG_DATATYPE_Word : if( *(WORD *)m_Value != (WORD )Value ) { *(WORD *)m_Value = (WORD )Value; return( true ); } return( false );
413 case SG_DATATYPE_Short : if( *(short *)m_Value != (short )Value ) { *(short *)m_Value = (short )Value; return( true ); } return( false );
414 case SG_DATATYPE_DWord : if( *(DWORD *)m_Value != (DWORD )Value ) { *(DWORD *)m_Value = (DWORD )Value; return( true ); } return( false );
415 case SG_DATATYPE_Int : if( *(int *)m_Value != (int )Value ) { *(int *)m_Value = (int )Value; return( true ); } return( false );
416 case SG_DATATYPE_ULong : if( *(uLong *)m_Value != (uLong )Value ) { *(uLong *)m_Value = (uLong )Value; return( true ); } return( false );
417 case SG_DATATYPE_Long : if( *(sLong *)m_Value != (sLong )Value ) { *(sLong *)m_Value = (sLong )Value; return( true ); } return( false );
418 case SG_DATATYPE_Float : if( *(float *)m_Value != (float )Value ) { *(float *)m_Value = (float )Value; return( true ); } return( false );
419 case SG_DATATYPE_Double: if( *(double *)m_Value != (double )Value ) { *(double *)m_Value = (double )Value; return( true ); } return( false );
420 default : return( false );
421 }
422 }
423
424 virtual bool Set_Value (const SG_Char *Value)
425 {
426 switch( m_Type )
427 {
428 case SG_DATATYPE_Byte :
429 case SG_DATATYPE_Word :
430 case SG_DATATYPE_DWord :
431 case SG_DATATYPE_ULong : { uLong v; if( CSG_String(Value).asULong (v) ) { return( Set_Value(v) ); } } return( false );
432
433 case SG_DATATYPE_Char :
434 case SG_DATATYPE_Short :
435 case SG_DATATYPE_Int :
436 case SG_DATATYPE_Long : { sLong v; if( CSG_String(Value).asLong (v) ) { return( Set_Value(v) ); } } return( false );
437
438 case SG_DATATYPE_Float :
439 case SG_DATATYPE_Double: { double v; if( CSG_String(Value).asDouble(v) ) { return( Set_Value(v) ); } } return( false );
440
441 default : return( false );
442 }
443 }
444
445 virtual bool Set_Value (const CSG_Table_Value &Value)
446 {
447 switch( m_Type )
448 {
449 case SG_DATATYPE_Byte :
450 case SG_DATATYPE_Word :
451 case SG_DATATYPE_DWord :
452 case SG_DATATYPE_ULong : return( Set_Value(Value.asULong ()) );
453
454 case SG_DATATYPE_Char :
455 case SG_DATATYPE_Short :
456 case SG_DATATYPE_Int :
457 case SG_DATATYPE_Long : return( Set_Value(Value.asLong ()) );
458
459 case SG_DATATYPE_Float :
460 case SG_DATATYPE_Double: return( Set_Value(Value.asDouble()) );
461
462 default : return( false );
463 }
464 }
465
466 virtual bool is_Equal (const CSG_Table_Value &Value) const
467 {
468 switch( m_Type )
469 {
470 case SG_DATATYPE_Byte :
471 case SG_DATATYPE_Word :
472 case SG_DATATYPE_DWord :
473 case SG_DATATYPE_ULong : return( asULong () == Value.asULong () );
474
475 case SG_DATATYPE_Char :
476 case SG_DATATYPE_Short :
477 case SG_DATATYPE_Int :
478 case SG_DATATYPE_Long : return( asLong () == Value.asLong () );
479
480 case SG_DATATYPE_Float :
481 case SG_DATATYPE_Double: return( asDouble() == Value.asDouble() );
482
483 default : return( false );
484 }
485 }
486
487
488private:
489
491
492 void *m_Value = NULL;
493
494};
495
496
498// //
499// //
500// //
502
503//---------------------------------------------------------
504#endif // #ifndef HEADER_INCLUDED__SAGA_API__table_value_H
unsigned long long uLong
Definition api_core.h:159
signed long long sLong
Definition api_core.h:158
SAGA_API_DLL_EXPORT void SG_Free(void *memblock)
#define SG_STR_LEN
Definition api_core.h:542
SAGA_API_DLL_EXPORT void * SG_Calloc(size_t num, size_t size)
#define SG_STR_CMP(s1, s2)
Definition api_core.h:544
TSG_Data_Type
Definition api_core.h:1043
@ SG_DATATYPE_Long
Definition api_core.h:1052
@ SG_DATATYPE_Byte
Definition api_core.h:1045
@ SG_DATATYPE_Short
Definition api_core.h:1048
@ SG_DATATYPE_Word
Definition api_core.h:1047
@ SG_DATATYPE_ULong
Definition api_core.h:1051
@ SG_DATATYPE_Float
Definition api_core.h:1053
@ SG_DATATYPE_Double
Definition api_core.h:1054
@ SG_DATATYPE_Int
Definition api_core.h:1050
@ SG_DATATYPE_Char
Definition api_core.h:1046
@ SG_DATATYPE_DWord
Definition api_core.h:1049
#define SG_Char
Definition api_core.h:536
size_t SG_Data_Type_Get_Size(TSG_Data_Type Type)
Definition api_core.h:1110
SAGA_API_DLL_EXPORT CSG_String SG_Get_String(double Value, int Precision=-99)
BYTE * Get_Bytes(void) const
Definition api_core.h:880
void Clear(void)
static CSG_String Format(const char *Format,...)
const SG_Char * c_str(void) const
int Printf(const char *Format,...)
virtual bool Set_Value(const CSG_Bytes &Value)
virtual uLong asULong(void) const
virtual ~CSG_Table_Value_Binary(void)
virtual CSG_Bytes asBinary(void) const
virtual bool Set_NoData(void)
virtual bool is_NoData(void) const
virtual bool Set_Value(const CSG_Table_Value &Value)
CSG_Bytes & Get_Binary(void)
virtual double asDouble(void) const
virtual bool is_Equal(const CSG_Table_Value &Value) const
virtual bool Set_Value(const double &Value)
virtual bool Set_Value(const SG_Char *Value)
virtual const TSG_Table_Value_Type Get_Type(void) const
virtual const SG_Char * asString(int Decimals=-99) const
virtual sLong asLong(void) const
virtual bool Set_Value(const uLong &Value)
virtual bool Set_Value(const sLong &Value)
virtual const SG_Char * asString(int Decimals=-99) const
virtual uLong asULong(void) const
virtual ~CSG_Table_Value_Date(void)
virtual bool is_Equal(const CSG_Table_Value &Value) const
virtual double asDouble(void) const
virtual bool Set_Value(const sLong &Value)
virtual bool Set_Value(const uLong &Value)
virtual bool Set_Value(const SG_Char *Value)
virtual bool Set_Value(const CSG_Table_Value &Value)
virtual bool Set_Value(const double &Value)
virtual const TSG_Table_Value_Type Get_Type(void) const
virtual sLong asLong(void) const
virtual bool Set_Value(const double &Value)
virtual sLong asLong(void) const
virtual const SG_Char * asString(int Decimals=-99) const
virtual bool Set_Value(const sLong &Value)
virtual bool is_Equal(const CSG_Table_Value &Value) const
virtual ~CSG_Table_Value_Number(void)
virtual uLong asULong(void) const
virtual const TSG_Table_Value_Type Get_Type(void) const
virtual bool Set_Value(const CSG_Table_Value &Value)
virtual bool Set_Value(const uLong &Value)
virtual double asDouble(void) const
virtual bool Set_Value(const SG_Char *Value)
CSG_Table_Value_Number(TSG_Data_Type Type)
virtual const TSG_Data_Type & Get_Data_Type(void) const
virtual ~CSG_Table_Value_String(void)
virtual sLong asLong(void) const
virtual bool Set_Value(const sLong &Value)
virtual const SG_Char * asString(int Decimals=-99) const
virtual bool Set_Value(const SG_Char *Value)
virtual double asDouble(void) const
virtual bool Set_Value(const double &Value)
virtual bool Set_Value(const CSG_Table_Value &Value)
virtual uLong asULong(void) const
virtual bool is_Equal(const CSG_Table_Value &Value) const
virtual bool Set_Value(const uLong &Value)
virtual const TSG_Table_Value_Type Get_Type(void) const
virtual ~CSG_Table_Value(void)
virtual const SG_Char * asString(int Decimals=-99) const =0
virtual const TSG_Table_Value_Type Get_Type(void) const =0
virtual bool Set_Value(const CSG_Table_Value &Value)=0
virtual CSG_Bytes asBinary(void) const
virtual bool Set_Value(const CSG_Bytes &Value)
virtual bool is_Equal(const CSG_Table_Value &Value) const =0
virtual uLong asULong(void) const =0
virtual bool operator==(const CSG_Table_Value &Value) const
virtual bool Set_Value(const SG_Char *Value)=0
virtual bool Set_Value(const sLong &Value)=0
CSG_Table_Value & operator=(double Value)
virtual double asDouble(void) const =0
virtual sLong asLong(void) const =0
virtual bool Set_Value(const double &Value)=0
virtual bool Set_Value(const uLong &Value)=0
bool SG_JulianDayNumber_To_Date(double JDN, int &y, int &m, int &d)
Definition datetime.cpp:697
double SG_Date_To_JulianDayNumber(int Year, int Month, int Day)
Definition datetime.cpp:757
TSG_Table_Value_Type
Definition table_value.h:92
@ SG_TABLE_VALUE_TYPE_String
Definition table_value.h:94
@ SG_TABLE_VALUE_TYPE_Date
Definition table_value.h:95
@ SG_TABLE_VALUE_TYPE_Number
Definition table_value.h:93
@ SG_TABLE_VALUE_TYPE_Binary
Definition table_value.h:96