GRASS 8 Programmer's Manual 8.6.0dev(2026)-55de52a352
Loading...
Searching...
No Matches
xdrvalue.c
Go to the documentation of this file.
1/*!
2 \file lib/db/dbmi_base/xdrvalue.c
3
4 \brief DBMI Library (base) - external data representation (value)
5
6 SPDX-FileCopyrightText: 1999-2009, 2011 GRASS Development Team
7 SPDX-License-Identifier: GPL-2.0-or-later
8
9 \author Joel Jones (CERL/UIUC), Radim Blazek, Brad Douglas, Markus Neteler
10 \author Doxygenized by Martin Landa <landa.martin gmail.com> (2011)
11 */
12
13#include <grass/dbmi.h>
14#include <grass/glocale.h>
15
16#include "macros.h"
17
18/*!
19 \brief Send value
20
21 \param value
22 \param Ctype
23
24 \return
25 */
27{
28 DB_SEND_CHAR(value->isNull);
29 if (value->isNull)
30 return DB_OK;
31
32 switch (Ctype) {
33 case DB_C_TYPE_INT:
34 DB_SEND_INT(value->i);
35 break;
37 DB_SEND_DOUBLE(value->d);
38 break;
40 DB_SEND_STRING(&value->s);
41 break;
43 DB_SEND_DATETIME(&value->t);
44 break;
45 default:
46 db_error("send data: invalid C-type");
47 return DB_FAILED;
48 }
49 return DB_OK;
50}
51
52/*!
53 \brief Receive value
54
55 \param value
56 \param Ctype
57
58 \return
59 */
61{
62 DB_RECV_CHAR(&value->isNull);
63 if (value->isNull)
64 return DB_OK;
65
66 switch (Ctype) {
67 case DB_C_TYPE_INT:
68 DB_RECV_INT(&value->i);
69 break;
71 DB_RECV_DOUBLE(&value->d);
72 break;
74 DB_RECV_STRING(&value->s);
75 break;
77 DB_RECV_DATETIME(&value->t);
78 break;
79 default:
80 db_error(_("send data: invalid C-type"));
81 return DB_FAILED;
82 }
83 return DB_OK;
84}
Main header of GRASS DataBase Management Interface.
#define DB_C_TYPE_INT
Definition dbmi.h:106
#define DB_FAILED
Definition dbmi.h:70
#define DB_C_TYPE_STRING
Definition dbmi.h:105
#define DB_C_TYPE_DOUBLE
Definition dbmi.h:107
#define DB_OK
Definition dbmi.h:69
#define DB_C_TYPE_DATETIME
Definition dbmi.h:108
void db_error(const char *)
Report error message.
#define _(str)
Definition glocale.h:10
#define DB_SEND_STRING(x)
Definition macros.h:24
#define DB_SEND_CHAR(x)
Definition macros.h:50
#define DB_RECV_CHAR(x)
Definition macros.h:55
#define DB_RECV_DOUBLE(x)
Definition macros.h:109
#define DB_SEND_INT(x)
Definition macros.h:82
#define DB_RECV_INT(x)
Definition macros.h:87
#define DB_RECV_STRING(x)
Definition macros.h:39
#define DB_SEND_DATETIME(x)
Definition macros.h:115
#define DB_RECV_DATETIME(x)
Definition macros.h:120
#define DB_SEND_DOUBLE(x)
Definition macros.h:104
dbString s
Definition dbmi.h:189
dbDateTime t
Definition dbmi.h:190
char isNull
Definition dbmi.h:186
double d
Definition dbmi.h:188
int i
Definition dbmi.h:187
int db__send_value(dbValue *value, int Ctype)
Send value.
Definition xdrvalue.c:26
int db__recv_value(dbValue *value, int Ctype)
Receive value.
Definition xdrvalue.c:60