From 1350a74adf5594dff7165f44c16388e90d77f413 Mon Sep 17 00:00:00 2001 From: Erickson Silva Date: Fri, 23 May 2014 16:07:31 -0300 Subject: [PATCH] Adiciona exit code --- main.cpp | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------- 1 file changed, 50 insertions(+), 33 deletions(-) diff --git a/main.cpp b/main.cpp index 3665590..d56faa4 100644 --- a/main.cpp +++ b/main.cpp @@ -33,6 +33,7 @@ void serviceREC2(); void help(); void fail(string msg); void hasFailed(); +void hasInvalid(); string createFileToResponse(char* id); void updateRequestStatus(const char* filename, char* id, char* status); string createFileToRespWeb(char* id); @@ -40,6 +41,7 @@ void updateRequestStatusWeb(const char* filename, char* id, char* status); string filename; bool isFailed; +bool isInvalid; int main(int argc, char* argv[]) { @@ -56,12 +58,14 @@ int main(int argc, char* argv[]) { switch((int) atoi(argv[1])){ case 1: serviceCC(); - return 1; + hasInvalid(); + break; case 2: if(argc <= 8){ cout << "\nParametros inválidos. Tente novamente.\nService Type SRT: ./vlibras 2 INPUT_VIDEO INPUT_SRT LANGUAGE{1=Portuguese, 2=Glosa} POSITION{1=Top Left, 2=Top Right, 3=Bottom Right, 4=Bottom Left} SIZE{1=Small, 2=Medium, 3=Large} TRANSPARENCY{0=Opaque, 1=Transparent} ID" << endl; help(); - return 1; + hasInvalid(); + break; } serviceSRT(argv[2], argv[3], argv[4], argv[5], argv[6], argv[7], argv[8]); @@ -70,7 +74,8 @@ int main(int argc, char* argv[]) { if(argc <= 7){ cout << "\nParametros inválidos. Tente novamente.\nService Type REC: ./vlibras 3 INPUT_VIDEO LANGUAGE{1=Portuguese, 2=Glosa} POSITION{1=Top Left, 2=Top Right, 3=Bottom Right, 4=Bottom Left} SIZE{1=Small, 2=Medium, 3=Large} TRANSPARENCY{0=Opaque, 1=Transparent} ID" << endl; help(); - return 1; + hasInvalid(); + break; } if (argc == 8) serviceREC(argv[2], argv[3], argv[4], argv[5], @@ -83,7 +88,8 @@ int main(int argc, char* argv[]) { if(argc <= 5){ cout << "\nParametros inválidos. Tente novamente.\nService Type Text: ./vlibras 4 INPUT_TEXT_FILE TRANSPARENCY{0=Opaque, 1=Transparent} ID CLIENT_TYPE{Desktop, Web}" << endl; help(); - return 1; + hasInvalid(); + break; } serviceText(argv[2], argv[3], argv[4], argv[5]); break; @@ -91,27 +97,34 @@ int main(int argc, char* argv[]) { if(argc <= 4){ cout << "\nParametros inválidos. Tente novamente.\nService Type SRT Only: ./vlibras 5 INPUT_SRT TRANSPARENCY{0=Opaque, 1=Transparent} ID" << endl; help(); - return 1; + hasInvalid(); + break; } serviceOnlySRT(argv[2], argv[3], argv[4]); break; case 6: serviceREC2(); - return 1; + hasInvalid(); + break; default: cout << "\nServiço inválido. Tente novamente." << endl; help(); - return 1; + hasInvalid(); + break; } - if(!isFailed){ - gettimeofday(&tv2, NULL); - t2 = (double)(tv2.tv_sec) + (double)(tv2.tv_usec)/ 1000000.00; - cout << endl; - DDPRINTF("Time: %lf\n", (t2-t1)); - DDPRINTF("VLibras concluído!\n\n"); - } - return 1; + if(isFailed) + return 1; + else if(isInvalid) + return 127; + + gettimeofday(&tv2, NULL); + t2 = (double)(tv2.tv_sec) + (double)(tv2.tv_usec)/ 1000000.00; + cout << endl; + DDPRINTF("Time: %lf\n", (t2-t1)); + DDPRINTF("VLibras concluído!\n\n"); + return 0; + } void serviceCC(){ @@ -228,24 +241,25 @@ void serviceText(char* path_text, char* transparency, char* id, char* client_typ //filename = createFileToRespWeb(id); if (strcmp(client_type, (char*)"WEB") == 0) { - ServiceWindowGenerationFromText *service_text; - service_text = new ServiceWindowGenerationFromText(path_text, id, (int) atoi(transparency), 4, client_type); - try{ - service_text->initialize(); - }catch(ServiceException ex){ - fail(ex.getMessage()); - hasFailed(); - return; - } - - while (service_text->isAlive()) { - usleep(100000); //100ms - } - //updateRequestStatusWeb(filename.c_str(), id, "true"); - delete service_text; + ServiceWindowGenerationFromText *service_text; + service_text = new ServiceWindowGenerationFromText(path_text, id, (int) atoi(transparency), 4, client_type); + try{ + service_text->initialize(); + }catch(ServiceException ex){ + fail(ex.getMessage()); + hasFailed(); + return; + } + + while (service_text->isAlive()) { + usleep(100000); //100ms + } + //updateRequestStatusWeb(filename.c_str(), id, "true"); + delete service_text; + } else { - printf("ServicoIOS\n"); - ServiceWindowGenerationFromText *service_text; + printf("ServicoIOS\n"); + ServiceWindowGenerationFromText *service_text; service_text = new ServiceWindowGenerationFromText(path_text, id, (int) atoi(transparency), 4, (char*)"IOS"); try{ service_text->initialize(); @@ -261,7 +275,6 @@ void serviceText(char* path_text, char* transparency, char* id, char* client_typ //updateRequestStatusWeb(filename.c_str(), id, "true"); delete service_text; - } } @@ -325,6 +338,10 @@ void hasFailed(){ isFailed = true; } +void hasInvalid(){ + isInvalid = true; +} + //Help do programa, explicando todos os parâmetros existentes... void help() { -- libgit2 0.21.2