2 #include <../communication/communication.h> 3 #include <../dataio/AsciiFile.h> 4 #include <../dataio/AsciiTable.h> 7 #ifndef CISINTERFACE_H_ 8 #define CISINTERFACE_H_ 11 #define cisOutput_t comm_t 12 #define cisInput_t comm_t 13 #define cis_free free_comm 53 cisOutput_t cisOutputFmt(
const char *name,
const char *fmtString){
54 cisOutput_t ret = init_comm(name,
"send", _default_comm,
69 cisInput_t cisInputFmt(
const char *name,
const char *fmtString){
70 cisInput_t ret = init_comm(name,
"recv", _default_comm,
83 cisOutput_t cisOutput(
const char *name) {
84 cisOutput_t ret = cisOutputFmt(name, NULL);
96 cisInput_t cisInput(
const char *name){
97 cisInput_t ret = cisInputFmt(name, NULL);
111 int cis_send(
const cisOutput_t cisQ,
const char *data,
const size_t len) {
112 return comm_send(cisQ, data, len);
121 int cis_send_eof(
const cisOutput_t cisQ) {
122 return comm_send_eof(cisQ);
136 int cis_recv(
const cisInput_t cisQ,
char *data,
const size_t len){
137 return comm_recv(cisQ, data, len);
152 int cis_send_nolimit(
const cisOutput_t cisQ,
const char *data,
const size_t len){
153 return comm_send_nolimit(cisQ, data, len);
162 int cis_send_nolimit_eof(
const cisOutput_t cisQ) {
163 return comm_send_nolimit_eof(cisQ);
180 int cis_recv_nolimit(
const cisInput_t cisQ,
char **data,
const size_t len0){
181 return comm_recv_nolimit(cisQ, data, len0);
219 int vcisSend(
const cisOutput_t cisQ, va_list ap) {
220 return vcommSend(cisQ, ap);
236 int vcisRecv(
const cisInput_t cisQ, va_list ap) {
237 return vcommRecv(cisQ, ap);
250 int cisSend(
const cisOutput_t cisQ, ...){
253 int ret = vcommSend(cisQ, ap);
270 int cisRecv(
const cisInput_t cisQ, ...){
273 int ret = vcommRecv(cisQ, ap);
289 int vcisSend_nolimit(
const cisOutput_t cisQ, va_list ap) {
290 return vcommSend_nolimit(cisQ, ap);
306 int vcisRecv_nolimit(
const cisInput_t cisQ, va_list ap) {
307 return vcommRecv_nolimit(cisQ, ap);
321 int cisSend_nolimit(
const cisOutput_t cisQ, ...) {
324 int ret = vcommSend_nolimit(cisQ, ap);
341 int cisRecv_nolimit(
const cisInput_t cisQ, ...) {
344 int ret = vcommRecv_nolimit(cisQ, ap);
399 #define cisRpc_t comm_t 412 cisRpc_t cisRpc(
const char *name,
const char *outFormat,
const char *inFormat) {
413 return init_comm(name, outFormat, RPC_COMM, inFormat);
427 comm_t cisRpcClient(
const char *name,
const char *outFormat,
const char *inFormat){
428 return init_comm(name, outFormat, CLIENT_COMM, inFormat);
442 comm_t cisRpcServer(
const char *name,
const char *inFormat,
const char *outFormat){
443 return init_comm(name, inFormat, SERVER_COMM, outFormat);
457 int vrpcSend(
const cisRpc_t rpc, va_list ap) {
458 int ret = vcommSend_nolimit(rpc, ap);
476 int vrpcRecv(
const cisRpc_t rpc, va_list ap) {
477 int ret = vcommRecv_nolimit(rpc, ap);
492 int rpcSend(
const cisRpc_t rpc, ...){
495 int ret = vrpcSend(rpc, ap);
514 int rpcRecv(
const cisRpc_t rpc, ...) {
517 int ret = vrpcRecv(rpc, ap);
536 int vrpcCall(
const cisRpc_t rpc, va_list ap) {
545 sret = vcommSend_nolimit(rpc, ap);
547 cislog_error(
"vrpcCall: vcisSend_nolimit error: ret %d: %s", sret, strerror(errno));
552 cislog_debug(
"vrpcCall: Used %d arguments in send", sret);
554 for (i = 0; i < sret; i++) {
561 rret = vcommRecv_nolimit(rpc, op);
581 int rpcCall(
const cisRpc_t rpc, ...){
585 ret = vrpcCall(rpc, ap);
633 #define cisAsciiFileInput_t comm_t 634 #define cisAsciiFileOutput_t comm_t 642 comm_t cisAsciiFileOutput(
const char *name) {
643 comm_t out = init_comm(name,
"send", _default_comm, NULL);
653 comm_t cisAsciiFileOutput_local(
const char *name) {
654 comm_t out = init_comm(name,
"send", ASCII_FILE_COMM, NULL);
664 comm_t cisAsciiFileInput(
const char *name) {
665 comm_t out = init_comm(name,
"recv", _default_comm, NULL);
676 comm_t cisAsciiFileInput_local(
const char *name) {
677 comm_t out = init_comm(name,
"recv", ASCII_FILE_COMM, NULL);
769 #define cisAsciiTableInput_t comm_t 770 #define cisAsciiTableOutput_t comm_t 771 #define cisAsciiArrayInput_t comm_t 772 #define cisAsciiArrayOutput_t comm_t 782 comm_t cisAsciiTableOutput(
const char *name,
const char *format_str) {
784 comm_t out = init_comm(name,
"send", _default_comm, NULL);
786 flag = update_serializer(out.serializer, ASCII_TABLE_SERI,
790 flag = at_update(table, name,
"0");
811 comm_t cisAsciiTableInput(
const char *name) {
812 return init_comm(name,
"recv", _default_comm, NULL);
823 comm_t cisAsciiTableOutput_local(
const char *name,
const char *format_str) {
824 return init_comm(name,
"send", ASCII_TABLE_COMM, (
void*)format_str);
833 comm_t cisAsciiTableInput_local(
const char *name) {
834 return init_comm(name,
"recv", ASCII_TABLE_COMM, NULL);
845 comm_t cisAsciiArrayOutput(
const char *name,
const char *format_str) {
846 comm_t out = cisAsciiTableOutput(name, format_str);
847 out.serializer->type = ASCII_TABLE_ARRAY_SERI;
857 comm_t cisAsciiArrayInput(
const char *name) {
858 comm_t out = cisAsciiTableInput(name);
872 comm_t cisAsciiArrayOutput_local(
const char *name,
const char *format_str) {
873 comm_t out = init_comm(name,
"send", ASCII_TABLE_COMM, (
void*)format_str);
874 out.serializer->type = ASCII_TABLE_ARRAY_SERI;
884 comm_t cisAsciiArrayInput_local(
const char *name) {
885 comm_t out = init_comm(name,
"recv", ASCII_TABLE_COMM, NULL);
886 out.serializer->type = ASCII_TABLE_ARRAY_SERI;
Communication structure.
Definition: CommBase.h:19
Structure containing information about an ASCII table.
Definition: AsciiTable.h:76