blob: 8b57ec9a590c23a4cfc7d27d561030db71a06f89 [file] [log] [blame]
///////////////////////////////////////////////////////////////////////////////
// //
// 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()
}
}