0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034 #include <stdio.h>
0035 #include <stdlib.h>
0036 #include <ndebug.h>
0037 #include <atmi.h>
0038 #include <ndrstandard.h>
0039 #include <ubf.h>
0040 #include <test.fd.h>
0041 #include <string.h>
0042 #include <unistd.h>
0043 #include "test66.h"
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056 void TESTSV (TPSVCINFO *p_svc)
0057 {
0058 int ret=EXSUCCEED;
0059 char testbuf[1024];
0060 UBFH *p_ub = (UBFH *)p_svc->data;
0061
0062 NDRX_LOG(log_debug, "%s got call", __func__);
0063
0064
0065 Bprint(p_ub);
0066
0067 if (EXFAIL==Bget(p_ub, T_STRING_FLD, 0, testbuf, 0))
0068 {
0069 NDRX_LOG(log_error, "TESTERROR: Failed to get T_STRING_FLD: %s",
0070 Bstrerror(Berror));
0071 ret=EXFAIL;
0072 goto out;
0073 }
0074
0075 if (0!=strcmp(testbuf, VALUE_EXPECTED))
0076 {
0077 NDRX_LOG(log_error, "TESTERROR: Expected: [%s] got [%s]",
0078 VALUE_EXPECTED, testbuf);
0079 ret=EXFAIL;
0080 goto out;
0081 }
0082
0083
0084 out:
0085 tpreturn( ret==EXSUCCEED?TPSUCCESS:TPFAIL,
0086 0L,
0087 (char *)p_ub,
0088 0L,
0089 0L);
0090 }
0091
0092
0093
0094
0095 void HELLOSV (TPSVCINFO *p_svc)
0096 {
0097 int ret=EXSUCCEED;
0098 char testbuf[1024];
0099 UBFH *p_ub = (UBFH *)p_svc->data;
0100
0101 NDRX_LOG(log_debug, "%s got call", __func__);
0102
0103
0104 Bprint(p_ub);
0105
0106 if (EXFAIL==Bget(p_ub, T_STRING_FLD, 0, testbuf, 0))
0107 {
0108 NDRX_LOG(log_error, "TESTERROR: Failed to get T_STRING_FLD: %s",
0109 Bstrerror(Berror));
0110 ret=EXFAIL;
0111 goto out;
0112 }
0113
0114 if (0!=strcmp(testbuf, VALUE_EXPECTED_2))
0115 {
0116 NDRX_LOG(log_error, "TESTERROR: Expected: [%s] got [%s]",
0117 VALUE_EXPECTED_2, testbuf);
0118 ret=EXFAIL;
0119 goto out;
0120 }
0121
0122 out:
0123 tpreturn( ret==EXSUCCEED?TPSUCCESS:TPFAIL,
0124 0L,
0125 (char *)p_ub,
0126 0L,
0127 0L);
0128 }
0129
0130
0131
0132
0133 void somefunc (TPSVCINFO *p_svc)
0134 {
0135 int ret=EXSUCCEED;
0136 char testbuf[1024];
0137 UBFH *p_ub = (UBFH *)p_svc->data;
0138
0139 NDRX_LOG(log_debug, "%s got call", __func__);
0140
0141
0142 Bprint(p_ub);
0143
0144 if (EXFAIL==Bchg(p_ub, T_STRING_FLD, 0, p_svc->fname, 0))
0145 {
0146 NDRX_LOG(log_error, "TESTERROR: Failed to set T_STRING_FLD: %s",
0147 Bstrerror(Berror));
0148 ret=EXFAIL;
0149 goto out;
0150 }
0151
0152 out:
0153 tpreturn( ret==EXSUCCEED?TPSUCCESS:TPFAIL,
0154 0L,
0155 (char *)p_ub,
0156 0L,
0157 0L);
0158 }
0159
0160
0161
0162
0163
0164 int tpsvrinit(int argc, char **argv)
0165 {
0166 NDRX_LOG(log_debug, "tpsvrinit called");
0167
0168 if (EXSUCCEED!=tpadvertise("TESTSV", TESTSV))
0169 {
0170 NDRX_LOG(log_error, "Failed to initialise TESTSV!");
0171 }
0172
0173 return EXSUCCEED;
0174 }
0175
0176
0177
0178
0179 void tpsvrdone(void)
0180 {
0181 NDRX_LOG(log_debug, "tpsvrdone called");
0182 }
0183
0184
0185
0186
0187 static struct tmdsptchtbl_t tmdsptchtbl[] = {
0188 {"SYSADV1","TESTSV",(void (*)(TPSVCINFO *)) TESTSV, 0, 0 },
0189 {"SYSADV2","HELLOSV",(void (*)(TPSVCINFO *)) HELLOSV, 0, 0 },
0190 {"","somefunc",(void (*)(TPSVCINFO *)) somefunc, 0, 0 },
0191 {"","someXfunc",(void (*)(TPSVCINFO *)) somefunc, 0, 0 },
0192 { NULL, NULL, NULL, 0, 0 }
0193 };
0194
0195 int main( int argc, char** argv )
0196 {
0197 struct tmsvrargs_t tmsvrargs =
0198 {
0199 NULL,
0200 &tmdsptchtbl[0],
0201 0,
0202 tpsvrinit,
0203 tpsvrdone,
0204 NULL,
0205 NULL,
0206 NULL,
0207 NULL,
0208 NULL
0209 };
0210 return( _tmstartserver( argc, argv, &tmsvrargs ));
0211 }
0212
0213