+// SPDX-License-Identifier: GPL-2.0-or-later
/* CSV
* Copyright (C) 2013 Cumulus Networks, Inc.
- *
- * This file is part of Quagga.
- *
- * Quagga is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2, or (at your option) any
- * later version.
- *
- * Quagga is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; see the file COPYING; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef __CSV_H__
#include <stdarg.h>
#include <sys/queue.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef struct _csv_field_t_ csv_field_t;
typedef struct _csv_record_t_ csv_record_t;
typedef struct _csv_t_ csv_t;
* Initialize the CSV structure (if necessary, allocate first). Point to
* the passed string buffer.
*/
-csv_t * csv_init(csv_t *csv, char *buf, int buflen);
+csv_t *csv_init(csv_t *csv, char *buf, int buflen);
/**
* Encode the variable list of arguments as CSV fields. The csv structure
* processes/nodes - e.g. the message header record can be rewritten AFTER
* encoding all other records, with new information such as total length.
*/
-csv_record_t *csv_encode_record(csv_t *csv, csv_record_t *rec,
- int count, ...);
+csv_record_t *csv_encode_record(csv_t *csv, csv_record_t *rec, int count, ...);
/**
* Decode a CSV formatted string. The csv structure should have been
* rec1 and rec2 are removed
*/
csv_record_t *csv_concat_record(csv_t *csv, csv_record_t *rec1,
- csv_record_t *rec2);
+ csv_record_t *rec2);
/**
* Remove a record from csv
* append fields to a record
* Only works when csv has discrete record bufs
*/
-csv_record_t *
-csv_append_record (csv_t *csv, csv_record_t *rec, int count, ...);
+csv_record_t *csv_append_record(csv_t *csv, csv_record_t *rec, int count, ...);
/**
* Serialize contents of csv into string
* Clone a record.
* Only works when csv has discrete record bufs
*/
-void csv_clone_record (csv_t *csv, csv_record_t *in_rec, csv_record_t **out_rec);
+void csv_clone_record(csv_t *csv, csv_record_t *in_rec, csv_record_t **out_rec);
/**
* Return number of records
*/
-int csv_num_records (csv_t *csv);
+int csv_num_records(csv_t *csv);
+
+#ifdef __cplusplus
+}
+#endif
#endif