From c4ae9be639a3ff47d86544636d08d3cc0e59fa4e Mon Sep 17 00:00:00 2001 From: erititan <elemer.lelik@ericsson.com> Date: Mon, 18 Jun 2018 12:07:20 +0200 Subject: [PATCH] R7C -> R7D --- PIPEasp_CNL113334.tpd | 4 +-- doc/PIPEasp_CNL113334_PRI.doc | Bin 80896 -> 81920 bytes src/PIPE.grp | 2 +- src/PIPEasp_PT.cc | 45 +++++++++++++++++----------------- src/PIPEasp_PT.hh | 11 +++++---- src/PIPEasp_PortType.ttcn | 2 +- src/PIPEasp_Types.ttcn | 2 +- 7 files changed, 34 insertions(+), 32 deletions(-) diff --git a/PIPEasp_CNL113334.tpd b/PIPEasp_CNL113334.tpd index f93f65d..3541eda 100644 --- a/PIPEasp_CNL113334.tpd +++ b/PIPEasp_CNL113334.tpd @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - Copyright (c) 2015 Ericsson + Copyright (c) 2018 Ericsson All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 @@ -10,7 +10,7 @@ File: PIPEasp_CNL113334.tpd Description: tpd project file - Rev: R7C + Rev: R7D Prodnr: CNL 113 334 --> diff --git a/doc/PIPEasp_CNL113334_PRI.doc b/doc/PIPEasp_CNL113334_PRI.doc index 8d160e6a75cebfef67e57deda5a0ef1a22107202..f1784dd657db8524647ae1128b0e4c0da9e929c7 100644 GIT binary patch delta 18110 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 VU_Y`MlH@>E%r4#YHjp)}_kZ8T%18hJ delta 17892 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 diff --git a/src/PIPE.grp b/src/PIPE.grp index a25dac6..23ec62a 100644 --- a/src/PIPE.grp +++ b/src/PIPE.grp @@ -19,7 +19,7 @@ // // File: PIPE.grp // Description: Group file of PIPE testport implementation -// Rev: R7C +// Rev: R7D // Prodnr: CNL 113 334 // --> diff --git a/src/PIPEasp_PT.cc b/src/PIPEasp_PT.cc index d71b139..3e98503 100644 --- a/src/PIPEasp_PT.cc +++ b/src/PIPEasp_PT.cc @@ -18,7 +18,7 @@ // // File: PIPEasp_PT.cc // Description: Source code of PIPE testport implementation -// Rev: R7C +// Rev: R7D // Prodnr: CNL 113 334 // @@ -121,8 +121,9 @@ namespace PIPEasp__PortType { PIPEasp__PT::PIPEasp__PT(const char *par_port_name) : PIPEasp__PT_BASE(par_port_name) - , pipedata_len(0) - , pipedata_used(0) + , maindata_len(0) + , maindata_used(0) + , threaddata_len(0) , main_data(NULL) , thread_data(NULL) , lineMode(true) @@ -158,7 +159,7 @@ PIPEasp__PT::~PIPEasp__PT() } if(main_data){ - for(int i=0;i<pipedata_len;i++) { + for(int i=0;i<maindata_len;i++) { if((main_data+i)->stdout_buffer){delete (main_data+i)->stdout_buffer;}; if((main_data+i)->stderr_buffer){delete (main_data+i)->stderr_buffer;}; } @@ -284,8 +285,8 @@ void PIPEasp__PT::user_map(const char *system_port) { log("%s mapping, child pid: %d",system_port, processServerPid); Handler_Add_Fd_Read(processServerUp); - pipedata_len=1; - pipedata_used=1; + maindata_len=1; + maindata_used=1; main_data=(pipedata_main*)Malloc(sizeof(pipedata_main)); setup_pipedata_main(0); main_data[0].reuse=true; @@ -343,7 +344,7 @@ void PIPEasp__PT::user_unmap(const char *system_port) log("Message sent %d",res); if(main_data){ - for(int i=0;i<pipedata_len;i++) { + for(int i=0;i<maindata_len;i++) { if((main_data+i)->stdout_buffer){delete (main_data+i)->stdout_buffer;}; if((main_data+i)->stderr_buffer){delete (main_data+i)->stderr_buffer;}; } @@ -1020,7 +1021,7 @@ void PIPEasp__PT::handle_childDeath(const int p_id) { main_data[p_id].stdout_buffer=NULL; Free(main_data[p_id].stderr_buffer); main_data[p_id].stderr_buffer=NULL; - pipedata_used--; + maindata_used--; } } @@ -1435,7 +1436,7 @@ void PIPEasp__PT::processHandler(){ //printf("kill(%d,%d) returned %d\r\n", processPid,sig_no,a); break; case 9: // unmap command - for(int i=0;i<pipedata_len;i++){ + for(int i=0;i<threaddata_len;i++){ if(thread_data[i].processStdin!=-1){ close(thread_data[i].processStdin); thread_data[i].processStdin=-1; @@ -1461,13 +1462,13 @@ void PIPEasp__PT::processHandler(){ case 12: p_id=((int)msg[5]<<8) + (int)msg[6]; - if(pipedata_len<=p_id){ + if(threaddata_len<=p_id){ int new_size=p_id+1; thread_data=(pipedata_thread *)Realloc(thread_data,new_size*sizeof(pipedata_thread)); - for(int i= pipedata_len;i<new_size;i++){ + for(int i= threaddata_len;i<new_size;i++){ init_pipedata(i); } - pipedata_len=new_size; + threaddata_len=new_size; } init_pipedata(p_id); break; @@ -1485,7 +1486,7 @@ void PIPEasp__PT::processHandler(){ return; } } - for(int p_id=0;result>0 && p_id<pipedata_len;p_id++){ + for(int p_id=0;result>0 && p_id<threaddata_len;p_id++){ if(thread_data[p_id].processStdout!=-1 && FD_ISSET(thread_data[p_id].processStdout,&select_set)){ result--; nBytes = PIPE_BUF_SIZE; @@ -1801,7 +1802,7 @@ void PIPEasp__PT::close_and_remove_fd(int fd){ FD_CLR(fd,&working_set); if(fd==max_fd){ max_fd=processServerDown; - for(int i=0;i<pipedata_len;i++){ + for(int i=0;i<threaddata_len;i++){ if(thread_data[i].processStdout!=-1 && thread_data[i].processStdout!=fd){ max_fd=max_fd>thread_data[i].processStdout?max_fd:thread_data[i].processStdout; } @@ -1818,12 +1819,12 @@ void PIPEasp__PT::close_and_remove_fd(int fd){ INTEGER f__PIPE__request__p__id(PIPEasp__PortType::PIPEasp__PT& pl__port, BOOLEAN const&pl__reuse){ int return_value=-1; - if((pl__port.pipedata_used+1)>pl__port.pipedata_len){ - return_value=pl__port.pipedata_len; - pl__port.pipedata_len++; - pl__port.main_data=(PIPEasp__PT::pipedata_main*)Realloc(pl__port.main_data,pl__port.pipedata_len*sizeof(PIPEasp__PT::pipedata_main)); + if((pl__port.maindata_used+1)>pl__port.maindata_len){ + return_value=pl__port.maindata_len; + pl__port.maindata_len++; + pl__port.main_data=(PIPEasp__PT::pipedata_main*)Realloc(pl__port.main_data,pl__port.maindata_len*sizeof(PIPEasp__PT::pipedata_main)); } else { - for(int i=0;i<pl__port.pipedata_len;i++){ + for(int i=0;i<pl__port.maindata_len;i++){ if(!pl__port.main_data[i].state){ return_value=i; break; @@ -1832,7 +1833,7 @@ INTEGER f__PIPE__request__p__id(PIPEasp__PortType::PIPEasp__PT& pl__port, BOOLEA } - pl__port.pipedata_used++; + pl__port.maindata_used++; pl__port.setup_pipedata_main(return_value); pl__port.main_data[return_value].reuse=pl__reuse; pl__port.send_p_id_to_thread(return_value); @@ -1841,7 +1842,7 @@ INTEGER f__PIPE__request__p__id(PIPEasp__PortType::PIPEasp__PT& pl__port, BOOLEA BOOLEAN f__PIPE__release__p__id(PIPEasp__PortType::PIPEasp__PT& pl__port, INTEGER const&pl__pid){ int p_id=(int)pl__pid; - if( (p_id>=0) && (p_id<pl__port.pipedata_len) && pl__port.main_data[p_id].state && !pl__port.main_data[p_id].processExecuting){ + if( (p_id>=0) && (p_id<pl__port.maindata_len) && pl__port.main_data[p_id].state && !pl__port.main_data[p_id].processExecuting){ pl__port.main_data[p_id].state=0; if(pl__port.main_data[p_id].stdout_buffer) { Free(pl__port.main_data[p_id].stdout_buffer); @@ -1851,7 +1852,7 @@ BOOLEAN f__PIPE__release__p__id(PIPEasp__PortType::PIPEasp__PT& pl__port, INTEGE Free(pl__port.main_data[p_id].stderr_buffer); pl__port.main_data[p_id].stderr_buffer=NULL; } - pl__port.pipedata_used--; + pl__port.maindata_used--; return true; } diff --git a/src/PIPEasp_PT.hh b/src/PIPEasp_PT.hh index 9fbae98..4fe1f87 100644 --- a/src/PIPEasp_PT.hh +++ b/src/PIPEasp_PT.hh @@ -18,7 +18,7 @@ // // File: PIPEasp_PT.hh // Description: Header file of PIPE testport implementation -// Rev: R7C +// Rev: R7D // Prodnr: CNL 113 334 // @@ -68,8 +68,9 @@ public: }; - int pipedata_len; - int pipedata_used; + int maindata_len; + int maindata_used; + int threaddata_len; pipedata_main *main_data; pipedata_thread *thread_data; void setup_pipedata_main(int idx); @@ -109,7 +110,7 @@ private: - boolean pipe_id_valid(const int p_id){if((p_id>=0)&&(p_id<pipedata_len)){return main_data[p_id].state==1;} else {return false;}} + boolean pipe_id_valid(const int p_id){if((p_id>=0)&&(p_id<maindata_len)){return main_data[p_id].state==1;} else {return false;}} int execCommand(const char* command); @@ -148,7 +149,7 @@ private: void newcmd_pty(const int p_id,const char* command); void close_and_remove_fd(int fd); - void free_thread_data(){ if(thread_data){Free(thread_data);thread_data=NULL;pipedata_used=0;pipedata_len=0;}} + void free_thread_data(){ if(thread_data){Free(thread_data);thread_data=NULL;threaddata_len=0;}} void init_pipedata(int idx); private: diff --git a/src/PIPEasp_PortType.ttcn b/src/PIPEasp_PortType.ttcn index 4692eba..d0ec1f2 100644 --- a/src/PIPEasp_PortType.ttcn +++ b/src/PIPEasp_PortType.ttcn @@ -17,7 +17,7 @@ ******************************************************************************/ // // File: PIPEasp_PortType.ttcn -// Rev: R7C +// Rev: R7D // Prodnr: CNL 113 334 module PIPEasp_PortType diff --git a/src/PIPEasp_Types.ttcn b/src/PIPEasp_Types.ttcn index 8f02a73..e9a7c74 100644 --- a/src/PIPEasp_Types.ttcn +++ b/src/PIPEasp_Types.ttcn @@ -18,7 +18,7 @@ // // File: PIPEasp_Types.ttcn // Description: PIPE (ASP) definitions -// Rev: R7C +// Rev: R7D // Prodnr: CNL 113 334 // -- GitLab