2 #ifndef CISINTERFACE_H_ 3 #define CISINTERFACE_H_ 6 #include <../communication/communication.h> 7 #include <../dataio/AsciiFile.h> 8 #include <../dataio/AsciiTable.h> 15 #define cisOutput_t comm_t 16 #define cisInput_t comm_t 17 #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);
217 int vcisSend(
const cisOutput_t cisQ, va_list ap) {
218 return vcommSend(cisQ, ap);
234 int vcisRecv(
const cisInput_t cisQ, va_list ap) {
235 return vcommRecv(cisQ, ap);
248 int cisSend(
const cisOutput_t cisQ, ...){
251 int ret = vcommSend(cisQ, ap);
268 int cisRecv(
const cisInput_t cisQ, ...){
271 int ret = vcommRecv(cisQ, ap);
287 int vcisSend_nolimit(
const cisOutput_t cisQ, va_list ap) {
288 return vcommSend_nolimit(cisQ, ap);
304 int vcisRecv_nolimit(
const cisInput_t cisQ, va_list ap) {
305 return vcommRecv_nolimit(cisQ, ap);
319 int cisSend_nolimit(
const cisOutput_t cisQ, ...) {
322 int ret = vcommSend_nolimit(cisQ, ap);
339 int cisRecv_nolimit(
const cisInput_t cisQ, ...) {
342 int ret = vcommRecv_nolimit(cisQ, ap);
393 #define cisRpc_t comm_t 406 cisRpc_t cisRpc(
const char *name,
const char *outFormat,
const char *inFormat) {
407 return init_comm(name, outFormat, RPC_COMM, inFormat);
421 comm_t cisRpcClient(
const char *name,
const char *outFormat,
const char *inFormat){
422 return init_comm(name, outFormat, CLIENT_COMM, inFormat);
436 comm_t cisRpcServer(
const char *name,
const char *inFormat,
const char *outFormat){
437 return init_comm(name, inFormat, SERVER_COMM, outFormat);
451 int vrpcSend(
const cisRpc_t rpc, va_list ap) {
452 int ret = vcommSend_nolimit(rpc, ap);
470 int vrpcRecv(
const cisRpc_t rpc, va_list ap) {
471 int ret = vcommRecv_nolimit(rpc, ap);
486 int rpcSend(
const cisRpc_t rpc, ...){
489 int ret = vrpcSend(rpc, ap);
508 int rpcRecv(
const cisRpc_t rpc, ...) {
511 int ret = vrpcRecv(rpc, ap);
530 int vrpcCall(
const cisRpc_t rpc, va_list ap) {
539 sret = vcommSend_nolimit(rpc, ap);
541 cislog_error(
"vrpcCall: vcisSend_nolimit error: ret %d: %s", sret, strerror(errno));
546 cislog_debug(
"vrpcCall: Used %d arguments in send", sret);
548 for (i = 0; i < sret; i++) {
555 rret = vcommRecv_nolimit(rpc, op);
575 int rpcCall(
const cisRpc_t rpc, ...){
579 ret = vrpcCall(rpc, ap);
624 #define cisAsciiFileInput_t comm_t 625 #define cisAsciiFileOutput_t comm_t 633 comm_t cisAsciiFileOutput(
const char *name) {
634 comm_t out = init_comm(name,
"send", _default_comm, NULL);
644 comm_t cisAsciiFileOutput_local(
const char *name) {
645 comm_t out = init_comm(name,
"send", ASCII_FILE_COMM, NULL);
655 comm_t cisAsciiFileInput(
const char *name) {
656 comm_t out = init_comm(name,
"recv", _default_comm, NULL);
667 comm_t cisAsciiFileInput_local(
const char *name) {
668 comm_t out = init_comm(name,
"recv", ASCII_FILE_COMM, NULL);
756 #define cisAsciiTableInput_t comm_t 757 #define cisAsciiTableOutput_t comm_t 758 #define cisAsciiArrayInput_t comm_t 759 #define cisAsciiArrayOutput_t comm_t 769 comm_t cisAsciiTableOutput(
const char *name,
const char *format_str) {
771 comm_t out = init_comm(name,
"send", _default_comm, NULL);
773 flag = update_serializer(out.serializer, ASCII_TABLE_SERI,
777 flag = at_update(table, name,
"0");
798 comm_t cisAsciiTableInput(
const char *name) {
799 return init_comm(name,
"recv", _default_comm, NULL);
810 comm_t cisAsciiTableOutput_local(
const char *name,
const char *format_str) {
811 return init_comm(name,
"send", ASCII_TABLE_COMM, (
void*)format_str);
820 comm_t cisAsciiTableInput_local(
const char *name) {
821 return init_comm(name,
"recv", ASCII_TABLE_COMM, NULL);
832 comm_t cisAsciiArrayOutput(
const char *name,
const char *format_str) {
833 comm_t out = cisAsciiTableOutput(name, format_str);
834 out.serializer->type = ASCII_TABLE_ARRAY_SERI;
844 comm_t cisAsciiArrayInput(
const char *name) {
845 comm_t out = cisAsciiTableInput(name);
859 comm_t cisAsciiArrayOutput_local(
const char *name,
const char *format_str) {
860 comm_t out = init_comm(name,
"send", ASCII_TABLE_COMM, (
void*)format_str);
861 out.serializer->type = ASCII_TABLE_ARRAY_SERI;
871 comm_t cisAsciiArrayInput_local(
const char *name) {
872 comm_t out = init_comm(name,
"recv", ASCII_TABLE_COMM, NULL);
873 out.serializer->type = ASCII_TABLE_ARRAY_SERI;
911 #define cisPlyInput_t comm_t 912 #define cisPlyOutput_t comm_t 920 comm_t cisPlyOutput(
const char *name) {
922 comm_t out = init_comm(name,
"send", _default_comm, NULL);
924 flag = update_serializer(out.serializer, PLY_SERI, NULL);
938 comm_t cisPlyInput(
const char *name) {
939 return init_comm(name,
"recv", _default_comm, NULL);
977 #define cisObjInput_t comm_t 978 #define cisObjOutput_t comm_t 986 comm_t cisObjOutput(
const char *name) {
988 comm_t out = init_comm(name,
"send", _default_comm, NULL);
990 flag = update_serializer(out.serializer, OBJ_SERI, NULL);
1004 comm_t cisObjInput(
const char *name) {
1005 return init_comm(name,
"recv", _default_comm, NULL);
Communication structure.
Definition: CommBase.h:23
Structure containing information about an ASCII table.
Definition: AsciiTable.h:80