/* * Class: fr_umlv_unitex_jni_UnitexJni * Method: installLogger * Signature: (Ljava/lang/String;Z)Z */ JNIEXPORT jboolean JNICALL Java_fr_umlv_unitex_jni_UnitexJni_installLogger (JNIEnv *env, jclass, jstring foldername, jboolean store_file_out_content) { jstringToCUtf jstc_foldername; jstc_foldername.initJString(env,foldername); if (p_ule) return JNI_FALSE; p_ule= (struct UniLoggerSpace *)malloc(sizeof(struct UniLoggerSpace)); if (!p_ule) return JNI_FALSE; memset(p_ule,0,sizeof(struct UniLoggerSpace)); p_ule->size_of_struct = sizeof(struct UniLoggerSpace); p_ule->privateUnloggerData = NULL; p_ule->szPathLog = strdup(jstc_foldername.getJString()); p_ule->szNameLog = NULL; p_ule->store_file_out_content = store_file_out_content; p_ule->store_list_file_out_content = 1; p_ule->store_file_in_content = 1; p_ule->store_list_file_in_content = 1; p_ule->store_std_out_content = 0; p_ule->store_std_err_content = 0; p_ule->auto_increment_logfilename = 1; if (0 != AddActivityLogger(p_ule)) return JNI_TRUE; free(p_ule); return JNI_FALSE; }
void InstallLogger::LoadParamFile(const char* parameter_filename) { init_done = 0; ABSTRACTFILE *af_fin = af_fopen_unlogged((parameter_filename != NULL) ? parameter_filename : "unitex_logging_parameters.txt","rb"); if (af_fin!=NULL) { size_t size_param=0; if (af_fseek(af_fin, 0, SEEK_END) == 0) { size_param = af_ftell(af_fin); af_fseek(af_fin, 0, SEEK_SET); } char* param=(char*)malloc(size_param+1); *(param+size_param)=0; if (af_fread(param,1,size_param,af_fin) == size_param) { int write_file_out=0; char*szPath = (char*)malloc(size_param+1); *szPath=0; sscanf(param,"%s\n%u",szPath,&write_file_out); write_file_out+=0; if ((*szPath) != 0) { ClearUniLoggerSpaceStruct(0); ule.szPathLog = szPath; ule.szNameLog = NULL; ule.store_file_out_content = write_file_out; if (AddActivityLogger(&ule) != 0) init_done = 1; else { ClearUniLoggerSpaceStruct(1); } } else free(szPath); } af_fclose(af_fin); free(param); } }
UnitexLogInstaller::UnitexLogInstaller(string const & strPathLog, bool bStoreFileOutContent) { init_done = 0; /* we want "mini log" with only list */ ule.size_of_struct = sizeof(struct unitex::logger::UniLoggerSpace); ule.privateUnloggerData = NULL; ule.szPathLog = strdup(strPathLog.c_str()); ule.szNameLog = NULL; ule.store_file_out_content = bStoreFileOutContent ? 1 : 0; ule.store_list_file_out_content = 1; ule.store_file_in_content = 1; ule.store_list_file_in_content = 1; ule.store_std_out_content = 0; ule.store_std_err_content = 0; ule.auto_increment_logfilename = 1; if (AddActivityLogger(&ule) != 0) init_done = 1; }
UnitexLogInstaller::UnitexLogInstaller(bool bStoreFileOutContent) { init_done = 0; /* we want "mini log" with only list */ ule.size_of_struct = sizeof(struct unitex::logger::UniLoggerSpace); ule.privateUnloggerData = NULL; ule.szPathLog = NULL; ule.store_file_out_content = bStoreFileOutContent ? 1 : 0; ule.store_list_file_out_content = 1; ule.store_file_in_content = 0 + 1; ule.store_list_file_in_content = 1; /* we dont want "auto generate" log */ ule.auto_increment_logfilename = 0; if (AddActivityLogger(&ule) != 0) init_done = 1; }
InstallLogger::InstallLogger(int argc,char* const argv[]) : ule(ule_default_init), init_done(0) { ClearUniLoggerSpaceStruct(0); if (argc==1) { usage(); return; } Encoding encoding_output = DEFAULT_ENCODING_OUTPUT; int bom_output = DEFAULT_BOM_OUTPUT; int mask_encoding_compatibility_input = DEFAULT_MASK_ENCODING_COMPATIBILITY_INPUT; int val,index=-1; bool only_verify_arguments = false; UnitexGetOpt options; while (EOF!=(val=options.parse_long(argc,argv,optstring_CreateLog,lopts_CreateLog,&index))) { switch(val) { case 'V': only_verify_arguments = true; break; case 'h': usage(); return; case 'n': ule.store_file_in_content = 0; break; case 'i': ule.store_file_in_content = 1; break; case 'o': ule.store_file_out_content = 1; break; case 'u': ule.store_file_out_content = 0; break; case 's': ule.store_list_file_in_content = 1; break; case 't': ule.store_list_file_in_content = 0; break; case 'r': ule.store_list_file_out_content = 1; break; case 'f': ule.store_list_file_out_content = 0; break; case ':': index==-1 ? error("Missing argument for option -%c\n",options.vars()->optopt) : error("Missing argument for option --%s\n",lopts_CreateLog[index].name); return; case 'k': if (options.vars()->optarg[0]=='\0') { error("Empty input_encoding argument\n"); return; } decode_reading_encoding_parameter(&mask_encoding_compatibility_input,options.vars()->optarg); break; case 'q': if (options.vars()->optarg[0]=='\0') { error("Empty output_encoding argument\n"); return; } decode_writing_encoding_parameter(&encoding_output,&bom_output,options.vars()->optarg); break; case 'g': ClearUniLoggerSpaceStruct(1); return; case 'p': if (options.vars()->optarg[0]=='\0') { error("You must specify a non empty param file\n"); return; } ClearUniLoggerSpaceStruct(1); LoadParamFile(options.vars()->optarg); return; case 'l': if (options.vars()->optarg[0]=='\0') { error("You must specify a non empty log filename\n"); return; } if (ule.szNameLog != NULL) { free((void*)ule.szNameLog); } ule.szNameLog = strdup(options.vars()->optarg); break; case 'd': if (options.vars()->optarg[0]=='\0') { error("You must specify a non empty directory\n"); return; } if (ule.szPathLog != NULL) { free((void*)ule.szPathLog); } ule.szPathLog = strdup(options.vars()->optarg); break; case '?': index==-1 ? error("Invalid option -%c\n",options.vars()->optopt) : error("Invalid option --%s\n",options.vars()->optarg); return; } index=-1; } if (options.vars()->optind!=argc-1) { } if (only_verify_arguments) { // freeing all allocated memory return; } if (AddActivityLogger(&ule) != 0) { init_done = 1; } else { ClearUniLoggerSpaceStruct(1); } }