18 #define StringSize ((int)4096)
\r
24 void set_affinity(engine_t *engine, int value){
\r
25 pipex_set_affinity(engine->pipex,value);
\r
28 // engine_set_nice_value()
\r
30 void engine_set_nice_value(engine_t *engine, int value){
\r
31 pipex_set_priority(engine->pipex,value);
\r
34 // engine_send_queue()
\r
36 void engine_send_queue(engine_t * engine, const char *format, ...) {
\r
37 char buf[FormatBufferSize];
\r
38 CONSTRUCT_ARG_STRING(format,buf);
\r
39 pipex_write(engine->pipex,buf);
\r
44 void engine_send(engine_t * engine, const char *format, ...) {
\r
45 char buf[FormatBufferSize];
\r
46 CONSTRUCT_ARG_STRING(format,buf);
\r
47 pipex_writeln(engine->pipex,buf);
\r
52 void engine_close(engine_t * engine){
\r
53 char string[StringSize];
\r
54 pipex_send_eof(engine->pipex);
\r
56 while (!engine_eof(engine)) {
\r
57 engine_get(engine,string);
\r
59 pipex_exit(engine->pipex);
\r
64 void engine_open(engine_t * engine){
\r
66 pipex_open(engine->pipex,
\r
68 option_get_string(Option,"EngineDir"),
\r
69 option_get_string(Option,"EngineCommand"));
\r
70 if(pipex_active(engine->pipex)){
\r
71 //play with affinity (bad idea)
\r
72 affinity=option_get_int(Option,"Affinity");
\r
73 if(affinity!=-1) set_affinity(engine,affinity); //AAA
\r
74 // set a low priority
\r
75 if (option_get_bool(Option,"UseNice")){
\r
76 my_log("POLYGLOT Adjust Engine Piority\n");
\r
77 engine_set_nice_value(engine, option_get_int(Option,"NiceValue"));
\r
83 bool engine_active(engine_t *engine){
\r
84 return pipex_active(engine->pipex);
\r
87 bool engine_eof(engine_t *engine){
\r
88 return pipex_eof(engine->pipex);
\r
91 bool engine_get_non_blocking(engine_t * engine, char *string){
\r
92 return pipex_readln_nb(engine->pipex,string);
\r
95 void engine_get(engine_t * engine, char *string){
\r
96 pipex_readln(engine->pipex,string);
\r