Add output-table to libafsutil
[openafs.git] / src / util / tabular_output.h
1 #ifndef _TABULAR_OUTPUT_H
2 #define  _TABULAR_OUTPUT_H
3
4 #define UTIL_T_MAX_CELLS 20
5 #define UTIL_T_MAX_CELLCONTENT_LEN 30
6 #define UTIL_T_TYPE_ASCII 0
7 #define UTIL_T_TYPE_CSV 1
8 #define UTIL_T_TYPE_HTML 2
9 #define UTIL_T_TYPE_MAX 2
10 #define UTIL_T_CELLSEPARATOR '|'
11 #define UTIL_T_ROWSEPARATOR '-'
12 #define UTIL_T_NUMALLOC_ROW 10
13 #define UTIL_T_CONTENTTYPE_STRING 0
14 #define UTIL_T_CONTENTTYPE_NUMERIC 1
15
16 /* private structures */
17
18 struct util_Table;
19
20 /* public accessor functions */
21
22
23 extern struct util_Table* util_newTable(int Type, int numColumns,
24               char **ColumnHeaders, int *ColumnContentTypes,
25               int *ColumnWidths, int sortByColumn);
26 extern char ** util_newCellContents(struct util_Table*);
27 extern int util_printTableHeader(struct util_Table *Table);
28 extern int util_printTableBody(struct util_Table *Table);
29 extern int util_printTableFooter(struct util_Table *Table);
30 extern int util_printTable(struct util_Table *Table);
31 extern int util_addTableBodyRow(struct util_Table *Table, char **Contents);
32 extern int util_setTableBodyRow(struct util_Table *Table, int RowIndex,
33                         char **Contents);
34 extern int util_setTableHeader(struct util_Table *Table, char **Contents);
35 extern int util_setTableFooter(struct util_Table *Table, char **Contents);
36 extern int util_freeTable(struct util_Table* Table);
37
38 #define UTIL_T_TYPE_HELP "output-format of table: 0: ASCII, 1: CSV, 2 : HTML"
39 #define UTIL_T_SORT_HELP "table-column to sort"
40
41 #endif /* _TABULAR_OUTPUT_H */