blob: 75bcc43f4a67be2b910b9eeaa8c703353ca6dd7a [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 //
///////////////////////////////////////////////////////////////////////////////
#include "EPTF_CLL_UIHandler_WidgetFunctions.hh"
#include "EPTF_CLL_UIHandler_GUIFunctions.hh"
namespace EPTF__CLL__UIHandler__WidgetFunctions {
CHARSTRING f__EPTF__UIHandler__simulation__encode__directContentDB(const EPTF__CLL__UIHandler__Definitions::EPTF__UIHandler__simulation__directContentDB& pl__DB) {
Text_Buf tb;
pl__DB.encode_text(tb);
return CHARSTRING(tb.get_len(),tb.get_data());
}
void f__EPTF__UIHandler__simulation__decode__directContentDB(const CHARSTRING& pl__dbStr,
EPTF__CLL__UIHandler__Definitions::EPTF__UIHandler__simulation__directContentDB& pl__DB) {
Text_Buf tb;
tb.push_raw(pl__dbStr.lengthof(), pl__dbStr);
pl__DB.decode_text(tb);
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_init_XML
//
// Purpose:
// Initializes the XML parser
//
// Parameters:
// -
//
// Return Value:
// -
//
// Errors:
// -
//
// Detailed Comments:
// Initialize the parser variables.
//
///////////////////////////////////////////////////////////
void f__EPTF__UIHandler__init__XML(void) {
init_XML();
return;
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_cleanup_XML
//
// Purpose:
// cleanup the XML parser
//
// Parameters:
// -
//
// Return Value:
// -
//
// Errors:
// -
//
// Detailed Comments:
// cleanup the XML parser variables.
//
///////////////////////////////////////////////////////////
void f__EPTF__UIHandler__cleanup__XML(void) {
cleanup_XML();
return;
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_expandXML
//
// Purpose:
// Expand XML conditional, iterator, external value elements
//
// Parameters:
// pl__expandedXML - *out* *charstring* - the expanded XML string
// pl__xul - *in* *charstring* - the input xul XML
// pl__parentWidgetId - *in* *charstring* - the parent widget ID
//
// Return Value:
// Returns the result of validation and process.
// pl__expandedXML - *out* *charstring* - the expanded XML string
//
// Errors:
// - The XML invalid[<error code>] : {<xml string>}
// - NO root element in the XML : {<xml string>}
// - is_valid_XML: The XML doc cannot be loaded or is not well-formed: {<xml string>}!
// - is_valid_XML: The root element in the xml is '<act root>' instead of 'Widgets'!
// - is_valid_XML: The the schema cannot be loaded or is not well-formed[<schema filename>]!
// - is_valid_XML: The schema patch [<xsd:element name="Widgets" />] invalid!
// - is_valid_XML: Unable to create a parser context for the schema[<schema filename>]!
// - is_valid_XML: The schema itself is not valid[<schema filename>]!
// - is_valid_XML: unable to create a validation context for the schema[<schema filename>]!
// - is_valid_XML: Invalid XML {<xml string>} with schema [<schema filename>] - message: <error_message>!
// - get_data_parameters: unknown attribute [<attribute name>=<attribute value>]!
// - get_data_parameters: invalid call!");
//
// Detailed Comments:
// Load XML string into rapidXML document. Validate it if
// v_EPTF_UIHandler_WidgetFunctions_XTDP_XSD_filepath XSD path are set.
// Append physical PTRs into entities "orig_node_ptr" Clone the XML document
// than expand all iterator, condition and externalvalue elements using
// f_EPTF_DataSource_getData_nonBlocking external function.
//
///////////////////////////////////////////////////////////
BOOLEAN f__EPTF__UIHandler__expandXML(CHARSTRING& pl__expandedXML, const CHARSTRING& pl__xul, const CHARSTRING& pl__parentWidgetId = "" )
{
bool vl_ret = expand_XML(pl__xul, pl__parentWidgetId, pl__expandedXML);
return BOOLEAN(vl_ret);
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_removeXML
//
// Purpose:
// Remove XML elements from active document
//
// Parameters:
// pl_removeWidgetID - *in* *charstring* - the removed widget ID
//
// Return Value:
// Returns the result of remove process.
//
// Errors:
//
// Detailed Comments:
// Remove XML elements from active document.
//
///////////////////////////////////////////////////////////
BOOLEAN f__EPTF__UIHandler__removeXML(const CHARSTRING& pl_removeWidgetID)
{
bool vl_ret = remove_XML(pl_removeWidgetID);
return BOOLEAN(vl_ret);
}
CHARSTRING f__EPTF__UIHandler__GUIFunctions__Tests(){
TTCN_Logger::log(TTCN_Logger::USER_UNQUALIFIED, "f__EPTF__UIHandler__GUIFunctions__Tests starts" );
std::string s("");
s.append(test_init_XML()); //pass
s.append(test_reset_XML()); //pass
s.append(test_expand_XML()); //pass
// s.append(test_refreshed_XML_forNode()); //pass
s.append(test_append_node_ptrs()); //pass
s.append(test_expand_XML_elements()); //pass
s.append(test_get_nodes_to_expand()); //pass
// s.append(test_expand_current_iterator()); //pass
// s.append(test_process_iterator_node()); //pass
// s.append(test_expand_current_condition ()); //pass
// s.append(test_process_condition_node()); //pass
// SUBROUTINES
s.append(test_is_valid_XML()); //pass
s.append(test_measure()); //pass
s.append(test_compare()); //pass
s.append(test_is_expandable()); //pass
s.append(test_get_data_source()); //pass
s.append(test_get_attribute()); //pass
s.append(test_get_metaiterator_itvalues()); //pass
s.append(test_get_data_source_parameters()); //pass
s.append(test_set_node_temp_attributes()); //pass
s.append(test_remove_nodes_temp_attributes()); //pass
s.append(test_compare_name()); //pass
s.append(test_clear_namespace_elements()); //pass
s.append(test_escape_double_quotes()); //pass
// Cleanup
s.append(test_cleanup_XML()); //pass
TTCN_Logger::log(TTCN_Logger::USER_UNQUALIFIED, "f__EPTF__UIHandler__GUIFunctions__Tests ends" );
return(CHARSTRING(s.c_str()));
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_refreshedXMLforNode
//
// Purpose:
// Expand XML for the given node
//
// Parameters:
// pl__nodePointer - *in* <int> - actual node pointer
// pl__xulExpanded - *out* *CHARSTRING* - the expanded XML string
//
// Return Value:
// pl_xulExpanded - *out* *CHARSTRING* - the expanded XML string
//
// Errors:
//
// Detailed Comments:
// Expand XML for the given node.
//
///////////////////////////////////////////////////////////
BOOLEAN f__EPTF__UIHandler__refreshedXMLforNode( const INTEGER& pl__nodePointer, CHARSTRING& pl__xulExpanded) {
bool vl_ret = refreshed_XML_forNode((long) pl__nodePointer.get_long_long_val(), pl__xulExpanded);
return BOOLEAN(vl_ret);
}
///////////////////////////////////////////////////////////
// Function: f_EPTF_UIHandler_printAllXML
//
// Purpose:
// print all XML
//
// Parameters:
// -
//
// Return Value:
// -
//
// Errors:
//
// Detailed Comments:
// print all XML.
//
///////////////////////////////////////////////////////////
void f__EPTF__UIHandler__printAllXML(void) {
print_all_XML();
return;
}
}// namespace