diff options
Diffstat (limited to 'TAO/CIAO/DAnCE/Config_Handlers/Utils.cpp')
-rw-r--r-- | TAO/CIAO/DAnCE/Config_Handlers/Utils.cpp | 353 |
1 files changed, 0 insertions, 353 deletions
diff --git a/TAO/CIAO/DAnCE/Config_Handlers/Utils.cpp b/TAO/CIAO/DAnCE/Config_Handlers/Utils.cpp deleted file mode 100644 index 526d757dbd9..00000000000 --- a/TAO/CIAO/DAnCE/Config_Handlers/Utils.cpp +++ /dev/null @@ -1,353 +0,0 @@ -//$Id$ - -#include "Utils.h" -#include "ace/OS_NS_stdlib.h" -#include "ace/Log_Msg.h" -#include "ace/SString.h" -#include "ace/Auto_Ptr.h" - -#include "XercesString.h" -#include <xercesc/util/XMLURL.hpp> -#include <xercesc/util/XMLUri.hpp> -#include <xercesc/util/XMLUniDefs.hpp> - -using xercesc::XMLUri; -using xercesc::XMLURL; -using xercesc::DOMDocument; -using xercesc::DOMDocumentTraversal; -using xercesc::XMLUni; -using xercesc::DOMImplementation; -using xercesc::DOMImplementationRegistry; -using xercesc::DOMNodeFilter; -using xercesc::DOMBuilder; -using xercesc::DOMImplementationLS; - -char * -CIAO::Config_Handler::Utils::parse_string (DOMNodeIterator * iter) -{ - DOMNode * node = iter->nextNode(); - DOMText* text = ACE_reinterpret_cast (DOMText*, node); - return XMLString::transcode (text->getNodeValue ()); -} - -CORBA::Short -CIAO::Config_Handler::Utils::parse_short (DOMNodeIterator * iter) -{ - char *temp = Config_Handler::Utils::parse_string (iter); - CORBA::Short ret_val = ACE_OS::atoi (temp); - XMLString::release (&temp); - return ret_val; -} - -CORBA::ULong -CIAO::Config_Handler::Utils::parse_ulong (DOMNodeIterator * iter) -{ - char *temp = Config_Handler::Utils::parse_string (iter); - CORBA::ULong ret_val = ACE_OS::strtoul (temp, 0, 10); - XMLString::release (&temp); - return ret_val; -} - -CORBA::Long -CIAO::Config_Handler::Utils::parse_long (DOMNodeIterator * iter) -{ - char *temp = Config_Handler::Utils::parse_string (iter); - CORBA::ULong ret_val = ACE_OS::strtol (temp, 0, 10); - XMLString::release (&temp); - return ret_val; -} - -CORBA::Double -CIAO::Config_Handler::Utils::parse_double (DOMNodeIterator * iter) -{ - char *temp = Config_Handler::Utils::parse_string (iter); - CORBA::Double ret_val = ACE_OS::strtod (temp, 0); - XMLString::release (&temp); - return ret_val; -} - -CORBA::Float -CIAO::Config_Handler::Utils::parse_float (DOMNodeIterator * iter) -{ - return ACE_static_cast (CORBA::Float, Utils::parse_double (iter)); -} - -CORBA::Boolean -CIAO::Config_Handler::Utils::parse_bool (DOMNodeIterator * iter) -{ - XStr true_val ("true"); - XStr true_cap_val ("TRUE"); - - DOMText * text = ACE_reinterpret_cast (DOMText *, iter->nextNode ()); - XStr value (text->getNodeValue ()); - - if (value == true_val || value == true_cap_val) - return 1; - else - return 0; -} - -CORBA::Char -CIAO::Config_Handler::Utils::parse_char (DOMNodeIterator * iter) -{ - DOMText * text = ACE_reinterpret_cast (DOMText *, iter->nextNode ()); - char * temp_string = XMLString::transcode (text->getNodeValue ()); - - // Should be non-null - ACE_ASSERT (temp_string != 0); - - // Return the first character in the node as char value - char ret_char = temp_string [0]; - XMLString::release (&temp_string); - return ret_char; -} - -CORBA::Octet -CIAO::Config_Handler::Utils::parse_octet (DOMNodeIterator * iter) -{ - return Utils::parse_char (iter); -} - -bool -CIAO::Config_Handler::Utils::process_string (DOMNodeIterator* iter, - const XStr& node_name, const char* name, - TAO_String_Manager& var) -{ - bool result = (node_name == XStr(ACE_TEXT (name))); - if (result == true) - { - DOMNode* node = iter->nextNode(); - const XMLCh* text = ACE_reinterpret_cast(DOMText*, node)->getNodeValue -(); - if (text) - var = XMLString::transcode (text); - } - return result; -} - -bool -CIAO::Config_Handler::Utils::process_string_seq (DOMNodeIterator* iter, - const XStr& node_name, const char* name, - CORBA::StringSeq& seq) -{ - bool result = (node_name == XStr (ACE_TEXT (name))); - - if (result == true) - { - DOMNode* node = iter->nextNode (); - const XMLCh* text = ACE_reinterpret_cast - (DOMText*, node)->getNodeValue (); - - if (text) - { - CORBA::ULong i (seq.length ()); - seq.length (i + 1); - seq[i] = XMLString::transcode (text); - } - } - - return result; -} - -bool -CIAO::Config_Handler::Utils::process_ulong (DOMNodeIterator* iter, - const XStr& node_name, const char* name, - CORBA::ULong& var) -{ - bool result = (node_name == XStr (ACE_TEXT (name))); - - if (result == true) - { - DOMNode* node = iter->nextNode (); - const XMLCh* text = ACE_reinterpret_cast - (DOMText*, node)->getNodeValue (); - - if (text) - { - CORBA::String_var temp = XMLString::transcode (text); - var = ACE_static_cast (CORBA::ULong, ACE_OS::strtol (temp.in (), - 0, 10)); - } - } - - return result; -} - -bool -CIAO::Config_Handler::Utils::process_boolean (DOMNodeIterator* iter, - const XStr& node_name, const char* name, - CORBA::Boolean& var) -{ - bool result = (node_name == XStr (ACE_TEXT (name))); - - if (result == true) - { - DOMNode* node = iter->nextNode (); - const XMLCh* text = ACE_reinterpret_cast - (DOMText*, node)->getNodeValue (); - - if (text) - { - CORBA::String_var temp = XMLString::transcode (text); - var = ACE_static_cast (CORBA::Boolean, ACE_OS::strtol (temp.in (), - 0, 10)); - } - } - - return result; -} - -DOMDocument* -CIAO::Config_Handler::Utils::create_document (const char * url) -{ - xercesc::XMLPlatformUtils::Initialize(); - static const XMLCh gLS[] = { xercesc::chLatin_L, - xercesc::chLatin_S, - xercesc::chNull }; - - DOMImplementation* impl - = DOMImplementationRegistry::getDOMImplementation(gLS); - //auto_ptr<DOMImplementation> cleanup_impl (impl); - - DOMBuilder* parser = - ((DOMImplementationLS*)impl)-> - createDOMBuilder(DOMImplementationLS::MODE_SYNCHRONOUS, 0); - //auto_ptr<DOMBuilder> cleanup_parser (parser); - - // Discard comment nodes in the document - parser->setFeature (XMLUni::fgDOMComments, false); - - // Disable datatype normalization. The XML 1.0 attribute value - // normalization always occurs though. - parser->setFeature (XMLUni::fgDOMDatatypeNormalization, true); - - // Do not create EntityReference nodes in the DOM tree. No - // EntityReference nodes will be created, only the nodes - // corresponding to their fully expanded sustitution text will be - // created. - parser->setFeature (XMLUni::fgDOMEntities, false); - - // Perform Namespace processing. - parser->setFeature (XMLUni::fgDOMNamespaces, true); - - // Perform Validation - parser->setFeature (XMLUni::fgDOMValidation, true); - - // Do not include ignorable whitespace in the DOM tree. - parser->setFeature (XMLUni::fgDOMWhitespaceInElementContent, false); - - // Enable the parser's schema support. - parser->setFeature (XMLUni::fgXercesSchema, true); - - // Enable full schema constraint checking, including checking which - // may be time-consuming or memory intensive. Currently, particle - // unique attribution constraint checking and particle derivation - // restriction checking are controlled by this option. - parser->setFeature (XMLUni::fgXercesSchemaFullChecking, true); - - // The parser will treat validation error as fatal and will exit. - parser->setFeature (XMLUni::fgXercesValidationErrorAsFatal, true); - - - DOMDocument* doc = parser->parseURI (url); - //auto_ptr<DOMDocument> cleanup_doc (doc); - - return doc; -} - -DOMBuilder* -CIAO::Config_Handler::Utils::create_parser () -{ - xercesc::XMLPlatformUtils::Initialize(); - static const XMLCh gLS[] = { xercesc::chLatin_L, - xercesc::chLatin_S, - xercesc::chNull }; - - DOMImplementation* impl - = DOMImplementationRegistry::getDOMImplementation(gLS); - //auto_ptr<DOMImplementation> cleanup_impl (impl); - - DOMBuilder* parser = - ((DOMImplementationLS*)impl)-> - createDOMBuilder(DOMImplementationLS::MODE_SYNCHRONOUS, 0); - //auto_ptr<DOMBuilder> cleanup_parser (parser); - - // Discard comment nodes in the document - parser->setFeature (XMLUni::fgDOMComments, false); - - // Disable datatype normalization. The XML 1.0 attribute value - // normalization always occurs though. - parser->setFeature (XMLUni::fgDOMDatatypeNormalization, true); - - // Do not create EntityReference nodes in the DOM tree. No - // EntityReference nodes will be created, only the nodes - // corresponding to their fully expanded sustitution text will be - // created. - parser->setFeature (XMLUni::fgDOMEntities, false); - - // Perform Namespace processing. - parser->setFeature (XMLUni::fgDOMNamespaces, true); - - // Perform Validation - parser->setFeature (XMLUni::fgDOMValidation, true); - - // Do not include ignorable whitespace in the DOM tree. - parser->setFeature (XMLUni::fgDOMWhitespaceInElementContent, false); - - // Enable the parser's schema support. - parser->setFeature (XMLUni::fgXercesSchema, true); - - // Enable full schema constraint checking, including checking which - // may be time-consuming or memory intensive. Currently, particle - // unique attribution constraint checking and particle derivation - // restriction checking are controlled by this option. - parser->setFeature (XMLUni::fgXercesSchemaFullChecking, true); - - // The parser will treat validation error as fatal and will exit. - parser->setFeature (XMLUni::fgXercesValidationErrorAsFatal, true); - - - //DOMDocument* doc = parser->parseURI (url); - //auto_ptr<DOMDocument> cleanup_doc (doc); - - return parser; -} - -DOMNodeIterator * -CIAO::Config_Handler::Utils::parse_href_tag (XMLURL url, DOMDocument * doc) -{ - char * document_path = 0; - if (url.isRelative ()) - { - char * doc_path = XMLString::transcode (doc->getDocumentURI ()); - XMLCh * temp = XMLString::transcode (doc_path); - url.makeRelativeTo (temp); - document_path = XMLString::transcode (url.getURLText ()); - - // Release allocated memory - XMLString::release (&doc_path); - XMLString::release (&temp); - } - else - { - document_path = XMLString::transcode (url.getURLText ()); - - } - - DOMDocument* href_doc = - CIAO::Config_Handler::Utils::create_document (document_path); - //auto_ptr<DOMDocument> cleanup_doc (href_doc); - - DOMDocumentTraversal* traverse = href_doc; - DOMNode* root = (href_doc->getDocumentElement ()); - unsigned long filter = DOMNodeFilter::SHOW_ELEMENT | - DOMNodeFilter::SHOW_TEXT; - - // release allocated memory - XMLString::release (&document_path); - - return traverse->createNodeIterator (root, - filter, - 0, - true); -} |