00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include <stdlib.h>
00017 #include <stdio.h>
00018 #include <time.h>
00019 #include <unistd.h>
00020 #ifndef __MSD_USER_H__
00021 #include "msd_user.h"
00022 #endif
00023 #ifndef __MSD_ADMIN_H__
00024 #include "msd_admin.h"
00025 #endif
00026
00027 void PrintHelp ( char * argv0 ) {
00028 printf (
00029 "\n"
00030 "PDBe SOAP Server Administration Program\n"
00031 "======================================\n"
00032 "\n"
00033 "Usage: %s [-option]\n"
00034 "\n"
00035 "-option:\n"
00036 " -i: Initializes administration.\n"
00037 " -a: Add User.\n"
00038 " -e: Edit User.\n"
00039 " -d: Delete User.\n"
00040 " -g: Get User Data.\n"
00041 " -l: Activates Lisp evaluator.\n"
00042 " -p: Activates Prolog Interpreter.\n"
00043 " -v: Interactive Lisp evaluator.\n"
00044 " -t: Create Database structure from tables attributes.\n"
00045 " -s: Create SOAP data types from tables attributes.\n"
00046 " -m: Loads Meta Data.\n"
00047 " -h: Prints this help message.\n"
00048 "\n",argv0
00049 );
00050 }
00051
00052
00053
00054 int main(int argc, char* argv[]) {
00055
00056 int iparam=0;
00057 double dparam=0;
00058 char sparam[16]="";
00059 int fparam=0;
00060
00061 int xargc;
00062 char** xargv;
00063 char* usern="api2";
00064 char* passwd="api255";
00065 char* logstr="api2/api255@msdsrchd";
00066
00067 char* un;
00068 char* pass;
00069 char* loginstr;
00070 un = (char*)malloc(strlen(usern)+1);
00071 pass = (char*)malloc(strlen(passwd)+1);
00072 loginstr = (char*)malloc(strlen(logstr)+1);
00073 strcpy(un, usern);
00074 strcpy(pass, passwd);
00075 strcpy(loginstr, logstr);
00076
00077 if (argc<2) {
00078 PrintHelp ( argv[0] );
00079 return 1;
00080 }
00081
00082
00083 xargc=argc;
00084 xargv=argv;
00085
00086 argc--;
00087 argv++;
00088
00089 msdAdmin admin;
00090
00091
00092 while (argc > 0 && (*argv[0] == '-')){
00093
00094 if (strncmp (*argv,"-i",2) == 0) {
00095 admin.msdInit();
00096
00097 }
00098 else if (strncmp (*argv,"-l",2) == 0) {
00099
00100 argv++;
00101 argc--;
00102 xargc=argc;
00103 xargv=argv;
00104 msd_lisp_init(xargc, xargv);
00105 msd_lisp_load("xlisp.lsp");
00106 msd_lisp_load("clisp.lsp");
00107
00108 }
00109 else if (strncmp (*argv,"-p",2) == 0) {
00110
00111 argv++;
00112 argc--;
00113 xargc=argc;
00114 xargv=argv;
00115 msd_lisp_init(xargc, xargv);
00116 msd_lisp_load("xlisp.lsp");
00117 msd_lisp_load("clisp.lsp");
00118 msd_lisp_load("prolog.lsp");
00119
00120
00121 }
00122 else if (strncmp (*argv,"-v",2) == 0) {
00123
00124 argv++;
00125 argc--;
00126 xargc=argc;
00127 xargv=argv;
00128 msd_lisp_init(xargc, xargv);
00129 msd_lisp_load("xlisp.lsp");
00130 msd_lisp_load("clisp.lsp");
00131 msd_lisp_eval();
00132 }
00133 else if (strncmp (*argv,"-a",2) == 0) {
00134 admin.msdAddUser();
00135
00136 }
00137 else if (strncmp (*argv,"-d",2) == 0) {
00138 admin.msdDelUser();
00139
00140 }
00141 else if (strncmp (*argv,"-e",2) == 0) {
00142 admin.msdEditUser();
00143
00144 }
00145
00146 else if (strncmp (*argv,"-g",2) == 0) {
00147 admin.msdGetUser();
00148
00149 }
00150 else if (strncmp (*argv,"-h",2) == 0) {
00151 PrintHelp ( argv[0] );
00152
00153 }
00154 else if (strncmp (*argv,"-t",2) == 0) {
00155 msd_write_table_attributes("WHOUSE1","api2/api255@msdsrchd", "include/dbstruct.h");
00156
00157 }
00158 else if (strncmp (*argv,"-s",2) == 0) {
00159 msd_soap_data_generator("WHOUSE1","api2/api255@msdsrchd", "include/dbsoap.h");
00160
00161 }
00162 else if (strncmp (*argv,"-n",2) == 0) {
00163 msd_get_datamodel("WHOUSE1", loginstr);
00164
00165 }
00166 else if (strncmp (*argv,"-m",2) == 0) {
00167 msd_load_metadata("WHOUSE1", loginstr);
00168
00169 }
00170 else {
00171 printf ("\nUnknown switch: %s", *argv);}
00172
00173
00174 argv++;
00175 argc--;
00176 }
00177
00178 while (argc > 0){
00179 printf (*argv);
00180 printf ("\n");
00181 argv++;
00182 argc--;
00183 }
00184
00185
00186 free(un);
00187 free(pass);
00188 free(loginstr);
00189
00190 return 0;
00191 }
00192
00193
00194
00195