/*============================================================================= Module :sample_object Filename :_stub_sample_object.c RCS : $Source: $Revision: $Author: $Data:Wed Mar 12 14:45:23 2008 $Locker: $state: =============================================================================*/ #include "grpc_executable.h" /* DESCRIPTION: This is test object */ static char stub_description[] = "This is test object"; ngExpressionElement_t size0_1_0[] = { {NG_EXPRESSION_VALUE_TYPE_CONSTANT, 1}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t start0_1_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t end0_1_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t step0_1_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngSubscriptInformation_t dims0_1[] = { { size0_1_0, start0_1_0, end0_1_0, step0_1_0 }, }; ngArgumentInformation_t param_desc_0[] = { { NG_ARGUMENT_IO_MODE_IN, NG_ARGUMENT_DATA_TYPE_DOUBLE, 0, NULL, NULL }, { NG_ARGUMENT_IO_MODE_OUT, NG_ARGUMENT_DATA_TYPE_DOUBLE, 1, dims0_1, NULL }, }; ngExpressionElement_t size1_1_0[] = { {NG_EXPRESSION_VALUE_TYPE_IN_ARGUMENT, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t start1_1_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t end1_1_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t step1_1_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t size1_1_1[] = { {NG_EXPRESSION_VALUE_TYPE_IN_ARGUMENT, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t start1_1_1[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t end1_1_1[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t step1_1_1[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t size1_2_0[] = { {NG_EXPRESSION_VALUE_TYPE_IN_ARGUMENT, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t start1_2_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t end1_2_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t step1_2_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t size1_2_1[] = { {NG_EXPRESSION_VALUE_TYPE_IN_ARGUMENT, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t start1_2_1[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t end1_2_1[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t step1_2_1[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t size1_3_0[] = { {NG_EXPRESSION_VALUE_TYPE_IN_ARGUMENT, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t start1_3_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t end1_3_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t step1_3_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t size1_3_1[] = { {NG_EXPRESSION_VALUE_TYPE_IN_ARGUMENT, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t start1_3_1[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t end1_3_1[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t step1_3_1[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngSubscriptInformation_t dims1_1[] = { { size1_1_0, start1_1_0, end1_1_0, step1_1_0 }, { size1_1_1, start1_1_1, end1_1_1, step1_1_1 }, }; ngSubscriptInformation_t dims1_2[] = { { size1_2_0, start1_2_0, end1_2_0, step1_2_0 }, { size1_2_1, start1_2_1, end1_2_1, step1_2_1 }, }; ngSubscriptInformation_t dims1_3[] = { { size1_3_0, start1_3_0, end1_3_0, step1_3_0 }, { size1_3_1, start1_3_1, end1_3_1, step1_3_1 }, }; ngArgumentInformation_t param_desc_1[] = { { NG_ARGUMENT_IO_MODE_IN, NG_ARGUMENT_DATA_TYPE_LONG, 0, NULL, NULL }, { NG_ARGUMENT_IO_MODE_IN, NG_ARGUMENT_DATA_TYPE_DOUBLE, 2, dims1_1, NULL }, { NG_ARGUMENT_IO_MODE_IN, NG_ARGUMENT_DATA_TYPE_DOUBLE, 2, dims1_2, NULL }, { NG_ARGUMENT_IO_MODE_OUT, NG_ARGUMENT_DATA_TYPE_DOUBLE, 2, dims1_3, NULL }, }; ngExpressionElement_t size2_1_0[] = { {NG_EXPRESSION_VALUE_TYPE_IN_ARGUMENT, 0}, {NG_EXPRESSION_VALUE_TYPE_IN_ARGUMENT, 0}, {NG_EXPRESSION_VALUE_TYPE_OPCODE, 3}, {NG_EXPRESSION_VALUE_TYPE_CONSTANT, 1}, {NG_EXPRESSION_VALUE_TYPE_OPCODE, 1}, {NG_EXPRESSION_VALUE_TYPE_CONSTANT, 1}, {NG_EXPRESSION_VALUE_TYPE_OPCODE, 2}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t start2_1_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t end2_1_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t step2_1_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t size2_2_0[] = { {NG_EXPRESSION_VALUE_TYPE_IN_ARGUMENT, 0}, {NG_EXPRESSION_VALUE_TYPE_IN_ARGUMENT, 0}, {NG_EXPRESSION_VALUE_TYPE_OPCODE, 3}, {NG_EXPRESSION_VALUE_TYPE_CONSTANT, 2}, {NG_EXPRESSION_VALUE_TYPE_OPCODE, 1}, {NG_EXPRESSION_VALUE_TYPE_CONSTANT, 3}, {NG_EXPRESSION_VALUE_TYPE_OPCODE, 2}, {NG_EXPRESSION_VALUE_TYPE_CONSTANT, 1}, {NG_EXPRESSION_VALUE_TYPE_OPCODE, 1}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t start2_2_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t end2_2_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t step2_2_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t size2_3_0[] = { {NG_EXPRESSION_VALUE_TYPE_IN_ARGUMENT, 0}, {NG_EXPRESSION_VALUE_TYPE_IN_ARGUMENT, 0}, {NG_EXPRESSION_VALUE_TYPE_OPCODE, 3}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t start2_3_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t end2_3_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t step2_3_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngSubscriptInformation_t dims2_1[] = { { size2_1_0, start2_1_0, end2_1_0, step2_1_0 }, }; ngSubscriptInformation_t dims2_2[] = { { size2_2_0, start2_2_0, end2_2_0, step2_2_0 }, }; ngSubscriptInformation_t dims2_3[] = { { size2_3_0, start2_3_0, end2_3_0, step2_3_0 }, }; ngArgumentInformation_t param_desc_2[] = { { NG_ARGUMENT_IO_MODE_IN, NG_ARGUMENT_DATA_TYPE_LONG, 0, NULL, NULL }, { NG_ARGUMENT_IO_MODE_IN, NG_ARGUMENT_DATA_TYPE_DOUBLE, 1, dims2_1, NULL }, { NG_ARGUMENT_IO_MODE_IN, NG_ARGUMENT_DATA_TYPE_DOUBLE, 1, dims2_2, NULL }, { NG_ARGUMENT_IO_MODE_OUT, NG_ARGUMENT_DATA_TYPE_DOUBLE, 1, dims2_3, NULL }, }; ngExpressionElement_t size3_2_0[] = { {NG_EXPRESSION_VALUE_TYPE_IN_ARGUMENT, 1}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t start3_2_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t end3_2_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t step3_2_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t size3_2_1[] = { {NG_EXPRESSION_VALUE_TYPE_IN_ARGUMENT, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t start3_2_1[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t end3_2_1[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t step3_2_1[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t size3_3_0[] = { {NG_EXPRESSION_VALUE_TYPE_IN_ARGUMENT, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t start3_3_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t end3_3_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t step3_3_0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t size3_3_1[] = { {NG_EXPRESSION_VALUE_TYPE_IN_ARGUMENT, 1}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t start3_3_1[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t end3_3_1[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t step3_3_1[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngSubscriptInformation_t dims3_2[] = { { size3_2_0, start3_2_0, end3_2_0, step3_2_0 }, { size3_2_1, start3_2_1, end3_2_1, step3_2_1 }, }; ngSubscriptInformation_t dims3_3[] = { { size3_3_0, start3_3_0, end3_3_0, step3_3_0 }, { size3_3_1, start3_3_1, end3_3_1, step3_3_1 }, }; ngArgumentInformation_t param_desc_3[] = { { NG_ARGUMENT_IO_MODE_IN, NG_ARGUMENT_DATA_TYPE_INT, 0, NULL, NULL }, { NG_ARGUMENT_IO_MODE_IN, NG_ARGUMENT_DATA_TYPE_INT, 0, NULL, NULL }, { NG_ARGUMENT_IO_MODE_OUT, NG_ARGUMENT_DATA_TYPE_FLOAT, 2, dims3_2, NULL }, { NG_ARGUMENT_IO_MODE_INOUT, NG_ARGUMENT_DATA_TYPE_FLOAT, 2, dims3_3, NULL }, }; /* DESCRIPTION: This is test ... */ static char method_description_0[] = " This is test ..."; static char method_description_1[] = ""; static char method_description_2[] = ""; static char method_description_3[] = ""; ngExpressionElement_t calc_order0[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t calc_order1[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t calc_order2[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngExpressionElement_t calc_order3[] = { {NG_EXPRESSION_VALUE_TYPE_NONE, 0}, {NG_EXPRESSION_VALUE_TYPE_END, 0} }; ngRemoteMethodInformation_t methods_desc[] = { { "sin", 0, calc_order0, 2, param_desc_0, 0, /* server side shrink */ method_description_0, }, { "mmul", 1, calc_order1, 4, param_desc_1, 0, /* server side shrink */ method_description_1, }, { "mmul2", 2, calc_order2, 4, param_desc_2, 0, /* server side shrink */ method_description_2, }, { "FFT", 3, calc_order3, 4, param_desc_3, 0, /* server side shrink */ method_description_3, }, }; /** stub info declaration */ ngRemoteClassInformation_t remoteClassInfo = { "sample_object/sample_object", "1.0", stub_description, (ngBackend_t)0, /* backend */ (ngClassLanguage_t)1, /* lang */ 4, /* number of methods */ methods_desc, }; /* Globals */ int x,y,z; /* Status for obj */ /* Callback proxy */ /* Stub Main program */ int main(int argc, char ** argv){ int error; int result; int methodID; int immediateExit; immediateExit = ngexStubAnalyzeArgumentWithExit( argc, argv, &remoteClassInfo, &error); if (immediateExit != 0) { exit(0); } result = ngexStubInitialize(argc, argv, &remoteClassInfo, &error); if (result == 0) { goto ng_stub_end; } while(1) { result = ngexStubGetRequest(&methodID, &error); if (result != NGEXI_INVOKE_METHOD) break; ngexStubCalculationStart(&error); switch (methodID) { case 0: { /* sin */ double d; double *result; ngexStubGetArgument(0,&d,&error); ngexStubGetArgument(1,&result,&error); { double sin(); *result = sin(d); } } break; case 1: { /* mmul */ long n; double *A; double *B; double *C; ngexStubGetArgument(0,&n,&error); ngexStubGetArgument(1,&A,&error); ngexStubGetArgument(2,&B,&error); ngexStubGetArgument(3,&C,&error); mmul(n,A,B,C); } break; case 2: { /* mmul2 */ long n; double *A; double *B; double *C; ngexStubGetArgument(0,&n,&error); ngexStubGetArgument(1,&A,&error); ngexStubGetArgument(2,&B,&error); ngexStubGetArgument(3,&C,&error); mmul(n,A,B,C); } break; case 3: { /* FFT */ int n; int m; float *x; float *y; ngexStubGetArgument(0,&n,&error); ngexStubGetArgument(1,&m,&error); ngexStubGetArgument(2,&x,&error); ngexStubGetArgument(3,&y,&error); FFT(&n,x,y); } break; default: fprintf(stderr, "unknown method number"); } result = ngexStubCalculationEnd(&error); if (result == 1){ continue; } else { break; } } ng_stub_end: ngexStubFinalize(&error); exit(0); } /* */