3 #include <../dataio/AsciiTable.h> 6 #ifndef CISASCIITABLECOMM_H_ 7 #define CISASCIITABLECOMM_H_ 10 static unsigned _cisAsciiTablesCreated;
18 int init_ascii_table_comm(
comm_t *comm) {
22 comm->
type = ASCII_TABLE_COMM;
25 flag = update_serializer(comm->
serializer, ASCII_TABLE_SERI, NULL);
27 cislog_error(
"init_ascii_table_comm: Could not update serializer.");
32 flag = at_update(handle, comm->
address,
"w");
34 flag = at_update(handle, comm->
address,
"r");
36 cislog_error(
"init_ascii_table_comm: Could not set asciiTable address.");
39 comm->
handle = (
void*)handle;
41 if (strcmp(comm->
direction,
"recv") == 0) {
42 flag = simplify_formats(handle->
format_str, CIS_MSG_MAX);
44 cislog_error(
"init_ascii_table_comm: Failed to simplify recvd format.");
49 flag = at_open(handle);
51 cislog_error(
"init_ascii_table_comm: Could not open %s", comm->
name);
57 at_writeformat(handle[0]);
71 int new_ascii_table_address(
comm_t *comm) {
72 sprintf(comm->
name,
"tempASCIITable.%d", _cisAsciiTablesCreated);
73 int ret = init_ascii_table_comm(comm);
74 _cisAsciiTablesCreated++;
84 int init_ascii_table_array_comm(
comm_t *comm) {
85 int ret = init_ascii_table_comm(comm);
96 int new_ascii_table_array_address(
comm_t *comm) {
97 sprintf(comm->
name,
"tempASCIITableArray.%d", _cisAsciiTablesCreated);
98 int ret = init_ascii_table_array_comm(comm);
99 _cisAsciiTablesCreated++;
109 int free_ascii_table_comm(
comm_t *x) {
127 int ascii_table_comm_nmsg(
const comm_t x) {
146 int ascii_table_comm_send(
const comm_t x,
const char *data,
const size_t len) {
154 return at_writeline_full(table[0], data);
170 int ascii_table_comm_recv(
const comm_t x,
char **data,
const size_t len,
171 const int allow_realloc) {
173 return at_readline_full_realloc(table[0], data, len, allow_realloc);
180 #define ascii_table_comm_send_nolimit ascii_table_comm_send 186 #define ascii_table_comm_recv_nolimit ascii_table_comm_recv void * handle
Pointer to handle for comm.
Definition: CommBase.h:25
char format_str[LINE_SIZE_MAX]
Format string for rows.
Definition: AsciiTable.h:78
Communication structure.
Definition: CommBase.h:19
char address[COMM_ADDRESS_SIZE]
Comm address.
Definition: CommBase.h:22
void * info
Pointer to any extra info serializer requires.
Definition: SerializeBase.h:17
comm_type type
Comm type.
Definition: CommBase.h:20
int is_file
Flag specifying if the comm connects directly to a file.
Definition: CommBase.h:36
seri_t * serializer
Serializer for comm messages.
Definition: CommBase.h:27
char direction[COMM_DIR_SIZE]
send or recv for direction messages will go.
Definition: CommBase.h:23
char name[COMM_NAME_SIZE]
Comm name.
Definition: CommBase.h:21
int valid
1 if communicator initialized, 0 otherwise.
Definition: CommBase.h:24
Structure containing information about an ASCII table.
Definition: AsciiTable.h:76
seri_type type
Serializer type.
Definition: SerializeBase.h:16