GRASS 8 Programmer's Manual 8.6.0dev(2026)-4bb960b182
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 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 "macros.h"
15
16/*!
17 \brief Send index
18
19 \param index
20
21 \return
22 */
24{
25 int i;
26
29 DB_SEND_CHAR(index->unique);
30
31 DB_SEND_INT(index->numColumns);
32
33 for (i = 0; i < index->numColumns; i++) {
34 DB_SEND_STRING(&index->columnNames[i]);
35 }
36
37 return DB_OK;
38}
39
40/*!
41 \brief Send index array
42
43 \param list
44 \param count
45
46 \return
47 */
49{
50 int i;
51
53 for (i = 0; i < count; i++) {
55 }
56 return DB_OK;
57}
58
59/*!
60 \brief Receive index
61
62 \param index
63
64 \return
65 */
67{
68 int i, ncols;
69
70 db_init_index(index);
73 DB_RECV_CHAR(&index->unique);
74
75 DB_RECV_INT(&ncols);
76
77 if (db_alloc_index_columns(index, ncols) != DB_OK)
78 return db_get_error_code();
79
80 for (i = 0; i < ncols; i++) {
81 DB_RECV_STRING(&index->columnNames[i]);
82 }
83
84 return DB_OK;
85}
86
87/*!
88 \brief Receive index array
89
90 \param list
91 \param count
92 */
94{
95 int i;
96
98
100 if (*list == NULL)
101 return db_get_error_code();
102
103 for (i = 0; i < *count; i++) {
104 DB_RECV_INDEX(&((*list)[i]));
105 }
106
107 return DB_OK;
108}
#define NULL
Definition ccmath.h:32
Main header of GRASS DataBase Management Interface.
#define DB_OK
Definition dbmi.h:69
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:232
int numColumns
Definition dbmi.h:231
dbString indexName
Definition dbmi.h:229
dbString tableName
Definition dbmi.h:230
char unique
Definition dbmi.h:233
Definition manage.h:4
int db__send_index(dbIndex *index)
Send index.
Definition xdrindex.c:23
int db__recv_index_array(dbIndex **list, int *count)
Receive index array.
Definition xdrindex.c:93
int db__send_index_array(dbIndex *list, int count)
Send index array.
Definition xdrindex.c:48
int db__recv_index(dbIndex *index)
Receive index.
Definition xdrindex.c:66