| /////////////////////////////////////////////////////////////////////////////// |
| // // |
| // Copyright (c) 2000-2019 Ericsson Telecom AB // |
| // // |
| // All rights reserved. This program and the accompanying materials // |
| // are made available under the terms of the Eclipse Public License v2.0 // |
| // which accompanies this distribution, and is available at // |
| // https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html // |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| /////////////////////////////////////////////////////////// |
| // Module: EPTF_CLL_TransportCommPortIPL4_Functions |
| // |
| // Purpose: |
| // - |
| // |
| // Module Parameters: |
| // - |
| // |
| // Module depends on: |
| // <EPTF_CLL_TransportCommPortIPL4_Definitions> |
| // <EPTF_CLL_TransportMessageBufferManager_Functions> |
| // <IPL4asp_Types> |
| // <IPL4asp_PortType> |
| // <IPL4asp_Functions> |
| // <EPTF_CLL_HashMapInt2Int_Functions> |
| // <EPTF_CLL_HashMapStr2Int_Functions> |
| // <EPTF_CLL_FBQ_Definitions> |
| // <EPTF_CLL_FBQ_Functions> |
| // <EPTF_CLL_Base_Functions> |
| // <EPTF_CLL_Logging_Definitions> |
| // <EPTF_CLL_Logging_Functions> |
| // <EPTF_CLL_Variable_Definitions> |
| // <EPTF_CLL_Variable_Functions> |
| // <EPTF_CLL_Transport_CommonDefinitions> |
| // <EPTF_CLL_Common_Definitions> |
| // <Socket_API_Definitions> |
| // <EPTF_CLL_Base_Functions> |
| // |
| // Current Owner: |
| // ENORPIN (EBENMOL) |
| // |
| // Last Review Date: |
| // 2008-07-18 |
| // |
| // Detailed Comments: |
| // |
| // |
| /////////////////////////////////////////////////////////// |
| module EPTF_CLL_TransportCommPortIPL4_Functions { |
| //========================================================================= |
| // Import Part |
| //========================================================================= |
| import from EPTF_CLL_TransportCommPortIPL4_Definitions all; |
| import from IPL4asp_Types all; |
| import from IPL4asp_PortType all; |
| import from EPTF_CLL_Transport_CommonDefinitions all; |
| import from EPTF_CLL_TransportIPL4_Functions all |
| import from EPTF_CLL_TransportIPL4_Definitions all |
| import from EPTF_CLL_Base_Functions all |
| |
| /////////////////////////////////////////////////////////// |
| // Altstep: as_EPTF_CommPort_IPL4_Receive |
| // |
| // Purpose: |
| // Altstep to register receive templates and handling funcions |
| /////////////////////////////////////////////////////////// |
| public altstep as_EPTF_CommPort_IPL4_Receive ( |
| in template ASP_RecvFrom pl_msgTemplate, |
| in f_EPTF_CommPort_IPL4_messageProcess_FT pl_msghandler) |
| runs on EPTF_CommPort_IPL4_CT |
| { |
| [] IPL4_PCO.receive (pl_msgTemplate) -> value v_EPTF_CommPort_IPL4_aspRecvFrom |
| { |
| v_EPTF_CommPort_IPL4_incomingMessage.asp_RecvFrom := v_EPTF_CommPort_IPL4_aspRecvFrom; |
| if (not pl_msghandler == null ) { |
| if (f_EPTF_Base_isEnabledDTEHandling()) { |
| @try{ |
| pl_msghandler.apply(); |
| } @catch(dte_str) { |
| f_EPTF_TransportIPL4_warning(log2str(%definitionId&": Dynamic test case error occured during executing message handler ",pl_msghandler, |
| ". Error message: ",dte_str)); |
| } |
| } else { |
| pl_msghandler.apply(); |
| } |
| } |
| else { |
| f_EPTF_TransportIPL4_debug("Message Handler function not exist!") |
| } |
| repeat; |
| } |
| } |
| |
| |
| /////////////////////////////////////////////////////////// |
| // Altstep: as_EPTF_CommPort_IPL4_Event |
| // |
| // Purpose: |
| // Altstep to register event templates and handling funcions |
| /////////////////////////////////////////////////////////// |
| public altstep as_EPTF_CommPort_IPL4_Event ( |
| in template ASP_Event pl_msgTemplate, |
| in f_EPTF_CommPort_IPL4_messageProcess_FT pl_msghandler) |
| runs on EPTF_CommPort_IPL4_CT |
| { |
| [] IPL4_PCO.receive (pl_msgTemplate) -> value v_EPTF_CommPort_IPL4_aspEvent |
| { |
| v_EPTF_CommPort_IPL4_incomingMessage.asp_Event := v_EPTF_CommPort_IPL4_aspEvent; |
| if (not pl_msghandler == null ) { |
| if (f_EPTF_Base_isEnabledDTEHandling()) { |
| @try{ |
| pl_msghandler.apply(); |
| } @catch(dte_str) { |
| f_EPTF_TransportIPL4_warning(log2str(%definitionId&": Dynamic test case error occured during executing event handler ",pl_msghandler, |
| ". Error message: ",dte_str)); |
| } |
| } else { |
| pl_msghandler.apply(); |
| } |
| } |
| else { |
| f_EPTF_TransportIPL4_debug("Message Handler function not exist!") |
| } |
| repeat; |
| } |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Function: f_EPTF_CommPort_IPL4_init |
| // |
| // Purpose: |
| // Function to initialize the IPL4 Communicationport component |
| // |
| // Parameters: |
| // pl_interfaceList - *in* - <EPTF_CommPort_IPL4_InterfaceInformationList> - The defined interface |
| // pl_enableBufferManager - *in boolean* - Enable the BufferManager function |
| // |
| // Return Value: |
| // - |
| // |
| // Errors: |
| // - |
| // |
| // Detailed Comments: |
| // |
| /////////////////////////////////////////////////////////// |
| public function f_EPTF_CommPort_IPL4_init( |
| in EPTF_CommPort_IPL4_InterfaceInformationList pl_interfaceList := {}, |
| in boolean pl_enableBufferManager := true, |
| in charstring pl_selfName := "EPTF_CommPort_IPL4") |
| runs on EPTF_CommPort_IPL4_CT |
| { |
| var EPTF_Transport_InterfaceInformationList vl_lst := {} |
| for ( var integer vl_i := 0; vl_i < sizeof(pl_interfaceList) ; vl_i := vl_i+1 ){ |
| vl_lst[vl_i].HostName := pl_interfaceList[vl_i].HostName |
| vl_lst[vl_i].HostPort := pl_interfaceList[vl_i].HostPort |
| vl_lst[vl_i].netmask := pl_interfaceList[vl_i].netmask |
| vl_lst[vl_i].broadcast := pl_interfaceList[vl_i].broadcast |
| vl_lst[vl_i].ifname := pl_interfaceList[vl_i].ifname |
| vl_lst[vl_i].count := pl_interfaceList[vl_i].count |
| vl_lst[vl_i].virtualIfaceStart := pl_interfaceList[vl_i].virtualIfaceStart |
| } |
| |
| f_EPTF_Transport_init(IPL4, pl_selfName, vl_lst, pl_enableBufferManager) |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Function: f_EPTF_CommPort_IPL4_activateDefaultBufferingHandler |
| // |
| // Purpose: |
| // Function to activate the default buffering handler |
| // |
| // Parameters: |
| // pl_LGenType - *in* - *charstring* - the type of the LGen component registered this function |
| // |
| // Return Value: |
| // - |
| // |
| // Errors: |
| // - |
| // |
| // Detailed Comments: |
| // |
| /////////////////////////////////////////////////////////// |
| public function f_EPTF_CommPort_IPL4_activateDefaultBufferingHandler( |
| in charstring pl_LGenType := "") |
| runs on EPTF_CommPort_IPL4_CT |
| { |
| if(pl_LGenType == "") { |
| f_EPTF_TransportIPL4_warning(%definitionId&": LGenType not specified, the handler will be activated for ALL LGenTypes!"); |
| var template EPTF_CommPort_IPL4_IncomingMessage vl_recvTemplate := { |
| asp_Event := { |
| result := { |
| errorCode := IPL4_ERROR_AVAILABLE, |
| connId := ?, |
| os_error_code := *, |
| os_error_text := * |
| } |
| } |
| } |
| f_EPTF_CommPort_IPL4_setReceive(vl_recvTemplate, |
| refers(f_EPTF_TransportIPL4_defaultConnResultEventHandler), |
| pl_LGenType); |
| } else { |
| var integer vl_fbqId := -1; |
| f_EPTF_TransportIPL4_addLGenInfo(pl_LGenType, vl_fbqId); |
| v_EPTF_TransportIPL4_LGenInfoList[vl_fbqId].defaultBufferingHandlerActivated := true; |
| } |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Function: f_EPTF_CommPort_IPL4_setUpInterfaces |
| // |
| // Purpose: |
| // Function to set up the given interfaces |
| // |
| // Parameters: |
| // - |
| // |
| // Return Value: |
| // - |
| // |
| // Errors: |
| // - |
| // |
| // Detailed Comments: |
| // |
| /////////////////////////////////////////////////////////// |
| public function f_EPTF_CommPort_IPL4_setUpInterfaces() |
| runs on EPTF_CommPort_IPL4_CT |
| { |
| var Result vl_result := c_emptyResult; |
| f_EPTF_Transport_setUpInterfaces(IPL4, vl_result); |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Function: f_EPTF_CommPort_IPL4_setDownInterfaces |
| // |
| // Purpose: |
| // Function to set down the initialized interfaces |
| // |
| // Parameters: |
| // - |
| // |
| // Return Value: |
| // - |
| // |
| // Errors: |
| // - |
| // |
| // Detailed Comments: |
| // |
| /////////////////////////////////////////////////////////// |
| public function f_EPTF_CommPort_IPL4_setDownInterfaces () |
| runs on EPTF_CommPort_IPL4_CT |
| { |
| var Result vl_result := c_emptyResult; |
| f_EPTF_Transport_setDownInterfaces(IPL4, vl_result); |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Function: f_EPTF_CommPort_IPL4_setMsgLen |
| // |
| // Purpose: |
| // Function to set getMessageLength function |
| // |
| // Parameters: |
| // pl_connId - *in* - <ConnectionId> - The ID of the connection |
| // pl_function - *in* - <f_IPL4_getMsgLen> - The getMessageLength function |
| // pl_msgLenArgs - *in* - <ro_integer> - The arguments of the getMessageLength function |
| // |
| // Return Value: |
| // - |
| // |
| // Errors: |
| // - |
| // |
| // Detailed Comments: |
| // |
| /////////////////////////////////////////////////////////// |
| public function f_EPTF_CommPort_IPL4_setMsgLen( |
| in ConnectionId pl_connId, |
| in f_IPL4_getMsgLen pl_function, |
| in ro_integer pl_msgLenArgs) |
| runs on EPTF_CommPort_IPL4_CT |
| { |
| f_IPL4_setGetMsgLen(IPL4_PCO, pl_connId, pl_function, pl_msgLenArgs); |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Function: f_EPTF_CommPort_IPL4_setMsgLen4LGenType |
| // |
| // Purpose: |
| // Sets the message length calclutaion function for an LGen type. |
| // |
| // Parameters: |
| // pl_function - *in* - <f_IPL4_getMsgLen> - the message length calculation function reference |
| // pl_msgLenArgs - *in* - <ro_integer> - the function arguments |
| // pl_LGenType - *in* *charstring* - the name of the LGen type |
| // |
| /////////////////////////////////////////////////////////// |
| public function f_EPTF_CommPort_IPL4_setMsgLen4LGenType( |
| in f_IPL4_getMsgLen pl_function, |
| in ro_integer pl_msgLenArgs, |
| in charstring pl_LGenType) |
| runs on EPTF_CommPort_IPL4_CT |
| { |
| var integer vl_fbqId; |
| f_EPTF_TransportIPL4_addLGenInfo(pl_LGenType, vl_fbqId); |
| |
| v_EPTF_TransportIPL4_LGenInfoList[vl_fbqId].msgLenCalc := c_EPTF_TransportIPL4_emptyGetMsgLen |
| v_EPTF_TransportIPL4_LGenInfoList[vl_fbqId].msgLenCalc.getMsgLenOldAPIFn := pl_function |
| v_EPTF_TransportIPL4_LGenInfoList[vl_fbqId].msgLenCalc.getMsgLenOldArgs := pl_msgLenArgs |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Function: f_EPTF_CommPort_IPL4_setUserData |
| // |
| // Purpose: |
| // Function to set user data |
| // |
| // Parameters: |
| // pl_connId - *in* - <ConnectionId> - The ID of the connection |
| // pl_userData - *in* - <UserData> - The data information |
| // |
| // Return Value: |
| // Result - the result of the operation |
| // |
| // Errors: |
| // - |
| // |
| // Detailed Comments: |
| // |
| /////////////////////////////////////////////////////////// |
| public function f_EPTF_CommPort_IPL4_setUserData( |
| in ConnectionId pl_connId, |
| in UserData pl_userData) |
| runs on EPTF_CommPort_IPL4_CT |
| return Result |
| { |
| var Result vl_result := c_emptyResult; |
| f_EPTF_Transport_setUserData(IPL4, pl_connId, pl_userData, vl_result); |
| return vl_result |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Function: f_EPTF_CommPort_IPL4_getUserData |
| // |
| // Purpose: |
| // Function to get user data |
| // |
| // Parameters: |
| // pl_connId - *in* - <ConnectionId> - The ID of the connection |
| // pl_userData - *out* - <UserData> - The data information |
| // |
| // Return Value: |
| // Result - the result of the operation |
| // |
| // Errors: |
| // - |
| // |
| // Detailed Comments: |
| // |
| /////////////////////////////////////////////////////////// |
| public function f_EPTF_CommPort_IPL4_getUserData( |
| in ConnectionId pl_connId, |
| out UserData pl_userData) |
| runs on EPTF_CommPort_IPL4_CT |
| return Result |
| { |
| var Result vl_result := c_emptyResult; |
| f_EPTF_Transport_getUserData(IPL4, pl_connId, pl_userData, vl_result); |
| return vl_result |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Function: f_EPTF_CommPort_IPL4_getConnectionDetails |
| // |
| // Purpose: |
| // Function to get connection details |
| // |
| // Parameters: |
| // pl_connId - *in* - <ConnectionId> - The ID of the connection |
| // pl_param - *in* - <IPL4_Param> - the connection detail which is interested |
| // pl_result - *out* - <IPL4_ParamResult> - the value of the connection detail |
| // |
| // Return Value: |
| // Result - the result of the operation |
| // |
| // Errors: |
| // - |
| // |
| // Detailed Comments: |
| // |
| /////////////////////////////////////////////////////////// |
| public function f_EPTF_CommPort_IPL4_getConnectionDetails( |
| in ConnectionId pl_connId, |
| in IPL4_Param pl_param, |
| out IPL4_ParamResult pl_result) |
| runs on EPTF_CommPort_IPL4_CT |
| return Result |
| { |
| return f_IPL4_getConnectionDetails(IPL4_PCO,pl_connId,pl_param,pl_result); |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Function: f_EPTF_CommPort_IPL4_setReceive |
| // |
| // Purpose: |
| // Function to set receive altstep and handling function |
| // |
| // Parameters: |
| // pl_reveiveTemplate - *in* - <EPTF_CommPort_IPL4_IncomingMessage> - The template of the receive altstep |
| // pl_msghandler - *in* - <f_EPTF_CommPort_IPL4_messageProcess_FT> - The handler function to the receive template |
| // pl_LGenType - *in* - *charstring* - the type of the LGen component registered this function |
| // |
| // Return Value: |
| // - |
| // |
| // Errors: |
| // - |
| // |
| // Detailed Comments: |
| // |
| /////////////////////////////////////////////////////////// |
| public function f_EPTF_CommPort_IPL4_setReceive ( |
| in template EPTF_CommPort_IPL4_IncomingMessage pl_reveiveTemplate, |
| in f_EPTF_CommPort_IPL4_messageProcess_FT pl_msghandler, |
| in charstring pl_LGenType :="") |
| runs on EPTF_CommPort_IPL4_CT |
| { |
| if (pl_LGenType=="") |
| { |
| if (ischosen(pl_reveiveTemplate.asp_RecvFrom)) { v_EPTF_TransportIPL4_defaultList[sizeof(v_EPTF_TransportIPL4_defaultList)] := |
| activate(as_EPTF_CommPort_IPL4_Receive(pl_reveiveTemplate.asp_RecvFrom, pl_msghandler));} |
| |
| else {v_EPTF_TransportIPL4_defaultList[sizeof(v_EPTF_TransportIPL4_defaultList)] := |
| activate(as_EPTF_CommPort_IPL4_Event(pl_reveiveTemplate.asp_Event, pl_msghandler));} |
| } |
| else |
| { |
| var integer vl_fbqId; |
| |
| f_EPTF_TransportIPL4_addLGenInfo(pl_LGenType, vl_fbqId); |
| |
| if (ischosen(pl_reveiveTemplate.asp_RecvFrom)) |
| { |
| v_EPTF_TransportIPL4_LGenInfoList[vl_fbqId].msgHandlerOldFn := pl_msghandler; |
| } |
| else |
| { |
| v_EPTF_TransportIPL4_LGenInfoList[vl_fbqId].eventHandlerOldFn := pl_msghandler; |
| } |
| } |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Function: f_EPTF_CommPort_IPL4_send |
| // |
| // Purpose: |
| // Function to communicate with the communication port component |
| // |
| // Parameters: |
| // pl_data - *in* - <EPTF_CommPort_IPL4_ASP_OutgoingMessage> - The outgoing message |
| // pl_msghandler - *in* - <f_EPTF_CommPort_IPL4_messageProcess_FT> - The handler function to the receive template |
| // pl_needBuffering - *in - *boolean* - Insert the message into the Buffer |
| // pl_automaticBuffering - *in* - *boolean* - set on/off the using of commport automatic buffering (can be used in connect) |
| // pl_LGenType - *in* - *charstring* - the type of the LGen component called this function (can be used in connect and close) |
| // |
| // Return Value: |
| // - |
| // |
| // Errors: |
| // - |
| // |
| // Detailed Comments: |
| // pl_data is the message received from the transport components and will be send towards the IPL4 component. |
| // pl_msghandler can be registered to handle theese received messages in unique way. |
| // pl_needBuffering can be used to set the buffering method from the applib. In this case the buffering have to be handled from each applib's transport components. |
| // pl_automaticBuffering can be used to set the buffering method to be automatical. It can be set in connecting, and can be set on or off to each connection ID. |
| // In this case the Transport_CommPort component handles the buffering automatically, the applibs don't need to care about it. |
| // pl_LGenType can be used to set the name/ID of the applib's LGen component called this function. |
| // |
| /////////////////////////////////////////////////////////// |
| public function f_EPTF_CommPort_IPL4_send( |
| in EPTF_CommPort_IPL4_ASP_OutgoingMessage pl_data, |
| in f_EPTF_CommPort_IPL4_messageProcess_FT pl_msghandler := null, |
| in boolean pl_needBuffering := false, |
| in boolean pl_automaticBuffering := false, |
| in charstring pl_LGenType :="") |
| runs on EPTF_CommPort_IPL4_CT |
| return Result |
| { |
| var Result vl_result := c_emptyResult; |
| if ( ischosen(pl_data.asp_Send)){ |
| if(isbound(pl_data.asp_Send.proto) and ispresent(pl_data.asp_Send.proto)){ |
| f_EPTF_Transport_send(IPL4, pl_data.asp_Send.connId, pl_data.asp_Send.msg, vl_result, pl_needBuffering, pl_data.asp_Send.proto); |
| }else{ |
| f_EPTF_Transport_send(IPL4, pl_data.asp_Send.connId, pl_data.asp_Send.msg, vl_result, pl_needBuffering); |
| } |
| return vl_result |
| } |
| else if ( ischosen(pl_data.asp_SendTo)) { |
| if(isbound(pl_data.asp_SendTo.proto) and ispresent(pl_data.asp_SendTo.proto)){ |
| f_EPTF_Transport_sendTo( |
| IPL4, |
| pl_data.asp_SendTo.connId, |
| pl_data.asp_SendTo.remName, |
| pl_data.asp_SendTo.remPort, |
| pl_data.asp_SendTo.msg, |
| vl_result, |
| pl_needBuffering, |
| pl_data.asp_SendTo.proto) |
| }else{ |
| f_EPTF_Transport_sendTo( |
| IPL4, |
| pl_data.asp_SendTo.connId, |
| pl_data.asp_SendTo.remName, |
| pl_data.asp_SendTo.remPort, |
| pl_data.asp_SendTo.msg, |
| vl_result, |
| pl_needBuffering) |
| } |
| return vl_result |
| } |
| else if ( ischosen(pl_data.asp_Connect) ) { |
| var integer vl_connId := f_EPTF_Transport_connect( |
| IPL4, |
| pl_data.asp_Connect.proto, |
| pl_data.asp_Connect.locName, |
| pl_data.asp_Connect.locPort, |
| pl_data.asp_Connect.remName, |
| pl_data.asp_Connect.remPort, |
| pl_LGenType, |
| vl_result, |
| pl_automaticBuffering) |
| |
| if (pl_msghandler != null) { |
| if (f_EPTF_Base_isEnabledDTEHandling()) { |
| @try{ |
| pl_msghandler.apply(); |
| } @catch(dte_str) { |
| f_EPTF_TransportIPL4_warning(log2str(%definitionId&": Dynamic test case error occured during executing connect handler ",pl_msghandler, |
| ". Error message: ",dte_str)); |
| } |
| } else { |
| pl_msghandler.apply(); |
| } |
| } |
| return vl_result |
| } |
| else if ( ischosen(pl_data.asp_Listen)) { |
| var integer vl_connId := f_EPTF_Transport_listen( |
| IPL4, |
| pl_data.asp_Listen.proto, |
| pl_data.asp_Listen.locName, |
| pl_data.asp_Listen.locPort, |
| pl_LGenType, |
| vl_result, |
| pl_automaticBuffering) |
| |
| if (pl_msghandler != null) { |
| if (f_EPTF_Base_isEnabledDTEHandling()) { |
| @try{ |
| pl_msghandler.apply(); |
| } @catch(dte_str) { |
| f_EPTF_TransportIPL4_warning(log2str(%definitionId&": Dynamic test case error occured during executing listen handler ",pl_msghandler, |
| ". Error message: ",dte_str)); |
| } |
| } else { |
| pl_msghandler.apply(); |
| } |
| } |
| return vl_result |
| } |
| else if ( ischosen(pl_data.asp_Close)) { |
| var boolean vl_res := f_EPTF_Transport_close( |
| IPL4, |
| pl_data.asp_Close.id, |
| vl_result, |
| pl_data.asp_Close.proto) |
| if (pl_msghandler != null) { |
| if (f_EPTF_Base_isEnabledDTEHandling()) { |
| @try{ |
| pl_msghandler.apply(); |
| } @catch(dte_str) { |
| f_EPTF_TransportIPL4_warning(log2str(%definitionId&": Dynamic test case error occured during executing close handler ",pl_msghandler, |
| ". Error message: ",dte_str)); |
| } |
| } else { |
| pl_msghandler.apply(); |
| } |
| } |
| return vl_result |
| } else { |
| f_EPTF_TransportIPL4_error(%definitionId&": The received asp type is unknown. ASP: "&log2str(pl_data)) |
| return {IPL4_ERROR_GENERAL,omit,omit,omit} |
| } |
| } |
| /////////////////////////////////////////////////////////// |
| // Function: f_EPTF_CommPort_IPL4_portSend |
| // |
| // Purpose: |
| // Wrapper function for the f_IPL4_send external function |
| // |
| // Parameters: |
| // - portRef - IPL4 port reference |
| // - asp - the IPL4 ASP to be sent |
| // - sent_octets - number of sent octets (0..msg_size) |
| // - p_connInfofbqId - if present, the the connections state |
| // is stored in the connInfoFBQ record |
| // |
| // Return Value: |
| // - |
| // |
| // Errors: |
| // - |
| // |
| // Detailed Comments: |
| // |
| /////////////////////////////////////////////////////////// |
| public function f_EPTF_CommPort_IPL4_portSend( |
| inout IPL4asp_PT pl_portRef, |
| in ASP_Send pl_asp, |
| out integer pl_sent_octets, |
| in integer pl_connInfofbqId := -1 |
| ) |
| runs on EPTF_CommPort_IPL4_CT |
| return Result |
| { |
| return f_EPTF_TransportIPL4_portSend(pl_portRef, pl_asp, pl_sent_octets, pl_connInfofbqId); |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Function: f_EPTF_CommPort_IPL4_portSendTo |
| // |
| // Purpose: |
| // Wrapper function for the f_IPL4_sendto external function |
| // |
| // Parameters: |
| // - portRef - IPL4 port reference |
| // - asp - the IPL4 ASP to be sent |
| // - sent_octets - number of sent octets (0..msg_size) |
| // - p_connInfofbqId - if present, the the connections state |
| // is stored in the connInfoFBQ record |
| // |
| // Return Value: |
| // - |
| // |
| // Errors: |
| // - |
| // |
| // Detailed Comments: |
| // |
| /////////////////////////////////////////////////////////// |
| public function f_EPTF_CommPort_IPL4_portSendTo( |
| inout IPL4asp_PT pl_portRef, |
| in ASP_SendTo pl_asp, |
| out integer pl_sent_octets, |
| in integer pl_connInfofbqId := -1 |
| ) |
| runs on EPTF_CommPort_IPL4_CT |
| return Result |
| { |
| return f_EPTF_TransportIPL4_portSendTo(pl_portRef, pl_asp, pl_sent_octets, pl_connInfofbqId); |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Function: f_EPTF_CommPort_IPL4_portSend_retransmission |
| // |
| // Purpose: |
| // function for send retransmission handling |
| // |
| // Parameters: |
| // - portRef - IPL4 port reference |
| // - asp - the IPL4 ASP to be sent |
| // - sent_octets - number of sent octets (0..msg_size) |
| // - protocolId - string identifier for the protocol in the buffer |
| // - p_connInfofbqId - if present, the the connections state |
| // is stored in the connInfoFBQ record |
| // |
| // Return Value: |
| // - |
| // |
| // Errors: |
| // - |
| // |
| // Detailed Comments: |
| // |
| /////////////////////////////////////////////////////////// |
| public function f_EPTF_CommPort_IPL4_portSend_retransmission( |
| inout IPL4asp_PT pl_portRef, |
| in ASP_Send pl_asp, |
| out integer pl_sent_octets, |
| in charstring pl_protocolId, |
| in integer pl_connInfofbqId := -1 |
| ) |
| runs on EPTF_CommPort_IPL4_CT |
| return boolean |
| { |
| return f_EPTF_TransportIPL4_portSend_retransmission(pl_portRef, pl_asp, pl_sent_octets, pl_protocolId, pl_connInfofbqId); |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Function: f_EPTF_CommPort_IPL4_portSendTo_retransmission |
| // |
| // Purpose: |
| // Function for sendTo retransmission handling |
| // |
| // Parameters: |
| // - portRef - IPL4 port reference |
| // - asp - the IPL4 ASP to be sent |
| // - sent_octets - number of sent octets (0..msg_size) |
| // - protocolId - string identifier for the protocol in the buffer |
| // - p_connInfofbqId - if present, the the connections state |
| // is stored in the connInfoFBQ record |
| // |
| // Return Value: |
| // - |
| // |
| // Errors: |
| // - |
| // |
| // Detailed Comments: |
| // |
| /////////////////////////////////////////////////////////// |
| public function f_EPTF_CommPort_IPL4_portSendTo_retransmission( |
| inout IPL4asp_PT pl_portRef, |
| in ASP_SendTo pl_asp, |
| out integer pl_sent_octets, |
| in charstring pl_protocolId, |
| in integer pl_connInfofbqId := -1 |
| ) |
| runs on EPTF_CommPort_IPL4_CT |
| return boolean |
| { |
| return f_EPTF_TransportIPL4_portSendTo_retransmission(pl_portRef, pl_asp, pl_sent_octets, pl_protocolId, pl_connInfofbqId); |
| } |
| |
| /////////////////////////////////////////////////////////// |
| // Function: f_EPTF_CommPort_IPL4_defaultConnResultEventHandler |
| // |
| // Purpose: |
| // Function to receive the Connection available message and |
| // send the message from the buffer. |
| // |
| // Parameters: |
| // - |
| // |
| // Return Value: |
| // - |
| // |
| // Errors: |
| // - |
| // |
| // Detailed Comments: |
| // |
| /////////////////////////////////////////////////////////// |
| public function f_EPTF_CommPort_IPL4_defaultConnResultEventHandler() |
| runs on EPTF_CommPort_IPL4_CT |
| { |
| f_EPTF_TransportIPL4_defaultConnResultEventHandler() |
| } |
| |
| |
| } |