GRASS 8 Programmer's Manual 8.6.0dev(2026)-1d1e47ad9d
Loading...
Searching...
No Matches
xdrindex.c
Go to the documentation of this file.
1/*!
2 \file lib/db/dbmi_base/xdrindex.c
3
4 \brief DBMI Library (base) - external data representation (index)
5
6 (C) 1999-2009, 2011 by the GRASS Development Team
7
8 This program is free software under the GNU General Public License
9 (>=v2). Read the file COPYING that comes with GRASS for details.
10
11 \author Joel Jones (CERL/UIUC), Radim Blazek, Brad Douglas, Markus Neteler
12 \author Doxygenized by Martin Landa <landa.martin gmail.com> (2011)
13 */
14
15#include <grass/dbmi.h>
16#include "macros.h"
17
18/*!
19 \brief Send index
20
21 \param index
22
23 \return
24 */
26{
27 int i;
28
31 DB_SEND_CHAR(index->unique);
32
33 DB_SEND_INT(index->numColumns);
34
35 for (i = 0; i < index->numColumns; i++) {
36 DB_SEND_STRING(&index->columnNames[i]);
37 }
38
39 return DB_OK;
40}
41
42/*!
43 \brief Send index array
44
45 \param list
46 \param count
47
48 \return
49 */
51{
52 int i;
53
55 for (i = 0; i < count; i++) {
57 }
58 return DB_OK;
59}
60
61/*!
62 \brief Receive index
63
64 \param index
65
66 \return
67 */
69{
70 int i, ncols;
71
72 db_init_index(index);
75 DB_RECV_CHAR(&index->unique);
76
77 DB_RECV_INT(&ncols);
78
79 if (db_alloc_index_columns(index, ncols) != DB_OK)
80 return db_get_error_code();
81
82 for (i = 0; i < ncols; i++) {
83 DB_RECV_STRING(&index->columnNames[i]);
84 }
85
86 return DB_OK;
87}
88
89/*!
90 \brief Receive index array
91
92 \param list
93 \param count
94 */
96{
97 int i;
98
100
102 if (*list == NULL)
103 return db_get_error_code();
104
105 for (i = 0; i < *count; i++) {
106 DB_RECV_INDEX(&((*list)[i]));
107 }
108
109 return DB_OK;
110}
#define NULL
Definition ccmath.h:32
Main header of GRASS DataBase Management Interface.
#define DB_OK
Definition dbmi.h:71
void db_init_index(dbIndex *)
Initialize dbIndex.
int db_get_error_code(void)
Get error code.
int db_alloc_index_columns(dbIndex *, int)
Allocate index columns.
dbIndex * db_alloc_index_array(int)
Allocate index array.
int count
#define DB_RECV_INDEX(x)
Definition macros.h:235
#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_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_INDEX(x)
Definition macros.h:225
dbString * columnNames
Definition dbmi.h:234
int numColumns
Definition dbmi.h:233
dbString indexName
Definition dbmi.h:231
dbString tableName
Definition dbmi.h:232
char unique
Definition dbmi.h:235
Definition manage.h:4
int db__send_index(dbIndex *index)
Send index.
Definition xdrindex.c:25
int db__recv_index_array(dbIndex **list, int *count)
Receive index array.
Definition xdrindex.c:95
int db__send_index_array(dbIndex *list, int count)
Send index array.
Definition xdrindex.c:50
int db__recv_index(dbIndex *index)
Receive index.
Definition xdrindex.c:68