2 #ifndef CISASCIITABLECOMM_H_ 3 #define CISASCIITABLECOMM_H_ 7 #include <../dataio/AsciiTable.h> 14 static unsigned _cisAsciiTablesCreated;
22 int init_ascii_table_comm(
comm_t *comm) {
26 comm->
type = ASCII_TABLE_COMM;
29 flag = update_serializer(comm->
serializer, ASCII_TABLE_SERI, NULL);
31 cislog_error(
"init_ascii_table_comm: Could not update serializer.");
36 flag = at_update(handle, comm->
address,
"w");
38 flag = at_update(handle, comm->
address,
"r");
40 cislog_error(
"init_ascii_table_comm: Could not set asciiTable address.");
43 comm->
handle = (
void*)handle;
45 if (strcmp(comm->
direction,
"recv") == 0) {
46 flag = simplify_formats(handle->
format_str, CIS_MSG_MAX);
48 cislog_error(
"init_ascii_table_comm: Failed to simplify recvd format.");
53 flag = at_open(handle);
55 cislog_error(
"init_ascii_table_comm: Could not open %s", comm->
name);
61 at_writeformat(handle[0]);
75 int new_ascii_table_address(
comm_t *comm) {
76 sprintf(comm->
name,
"tempASCIITable.%d", _cisAsciiTablesCreated);
77 int ret = init_ascii_table_comm(comm);
78 _cisAsciiTablesCreated++;
88 int init_ascii_table_array_comm(
comm_t *comm) {
89 int ret = init_ascii_table_comm(comm);
100 int new_ascii_table_array_address(
comm_t *comm) {
101 sprintf(comm->
name,
"tempASCIITableArray.%d", _cisAsciiTablesCreated);
102 int ret = init_ascii_table_array_comm(comm);
103 _cisAsciiTablesCreated++;
113 int free_ascii_table_comm(
comm_t *x) {
131 int ascii_table_comm_nmsg(
const comm_t x) {
150 int ascii_table_comm_send(
const comm_t x,
const char *data,
const size_t len) {
158 return at_writeline_full(table[0], data);
174 int ascii_table_comm_recv(
const comm_t x,
char **data,
const size_t len,
175 const int allow_realloc) {
177 return at_readline_full_realloc(table[0], data, len, allow_realloc);
184 #define ascii_table_comm_send_nolimit ascii_table_comm_send 190 #define ascii_table_comm_recv_nolimit ascii_table_comm_recv void * handle
Pointer to handle for comm.
Definition: CommBase.h:29
char format_str[LINE_SIZE_MAX]
Format string for rows.
Definition: AsciiTable.h:82
Communication structure.
Definition: CommBase.h:23
char address[COMM_ADDRESS_SIZE]
Comm address.
Definition: CommBase.h:26
void * info
Pointer to any extra info serializer requires.
Definition: SerializeBase.h:21
comm_type type
Comm type.
Definition: CommBase.h:24
int is_file
Flag specifying if the comm connects directly to a file.
Definition: CommBase.h:40
seri_t * serializer
Serializer for comm messages.
Definition: CommBase.h:31
char direction[COMM_DIR_SIZE]
send or recv for direction messages will go.
Definition: CommBase.h:27
char name[COMM_NAME_SIZE]
Comm name.
Definition: CommBase.h:25
int valid
1 if communicator initialized, 0 otherwise.
Definition: CommBase.h:28
Structure containing information about an ASCII table.
Definition: AsciiTable.h:80
seri_type type
Serializer type.
Definition: SerializeBase.h:20