Go to the documentation of this file.00001 #include "xdr.h"
00002
00003
00004 int db__send_int(int n)
00005 {
00006 int stat = DB_OK;
00007
00008 if (!db__send(&n, sizeof(n)))
00009 stat = DB_PROTOCOL_ERR;
00010
00011 if (stat == DB_PROTOCOL_ERR)
00012 db_protocol_error();
00013
00014 return stat;
00015 }
00016
00017 int db__recv_int(int *n)
00018 {
00019 int stat = DB_OK;
00020
00021 if (!db__recv(n, sizeof(*n)))
00022 stat = DB_PROTOCOL_ERR;
00023
00024 if (stat == DB_PROTOCOL_ERR)
00025 db_protocol_error();
00026
00027 return stat;
00028 }
00029
00030 int db__send_int_array(const int *x, int n)
00031 {
00032 int stat = DB_OK;
00033
00034 if (!db__send(&n, sizeof(n)))
00035 stat = DB_PROTOCOL_ERR;
00036
00037 if (!db__send(x, n * sizeof(*x)))
00038 stat = DB_PROTOCOL_ERR;
00039
00040 if (stat == DB_PROTOCOL_ERR)
00041 db_protocol_error();
00042
00043 return stat;
00044 }
00045
00046
00047
00048 int db__recv_int_array(int **x, int *n)
00049 {
00050 int stat = DB_OK;
00051 int count = 0;
00052 int *a = NULL;
00053
00054 if (!db__recv(&count, sizeof(count)))
00055 stat = DB_PROTOCOL_ERR;
00056
00057 *n = count;
00058
00059 *x = a = (int *)db_calloc(count, sizeof(*a));
00060
00061 if (!db__recv(a, count * sizeof(*a)))
00062 stat = DB_PROTOCOL_ERR;
00063
00064 if (stat == DB_PROTOCOL_ERR)
00065 db_protocol_error();
00066
00067 return stat;
00068 }