コード例 #1
0
ファイル: plug_in.cpp プロジェクト: jrdodson/opennn
void PlugIn::from_XML(const tinyxml2::XMLDocument& document) {
  // Independent variables number
  {
    const tinyxml2::XMLElement* element =
        document.FirstChildElement("IndependentVariablesNumber");

    if (element) {
      const char* text = element->GetText();

      if (text) {
        try {
          set_independent_variables_number(atoi(text));
        }
        catch (const std::logic_error & e) {
          std::cout << e.what() << std::endl;
        }
      }
    }
  }

  // Dependent variables number
  {
    const tinyxml2::XMLElement* element =
        document.FirstChildElement("DependentVariablesNumber");

    if (element) {
      const char* text = element->GetText();

      if (text) {
        try {
          set_dependent_variables_number(atoi(text));
        }
        catch (const std::logic_error & e) {
          std::cout << e.what() << std::endl;
        }
      }
    }
  }

  // Input method
  {
    const tinyxml2::XMLElement* input_method_element =
        document.FirstChildElement("InputMethod");

    if (input_method_element) {
      const char* input_method_text = input_method_element->GetText();

      if (input_method_text) {
        try {
          set_input_method(input_method_text);
        }
        catch (const std::logic_error & e) {
          std::cout << e.what() << std::endl;
        }
      }
    }
  }

  // Template file_name
  {
    const tinyxml2::XMLElement* template_file_name_element =
        document.FirstChildElement("TemplateFileName");

    if (template_file_name_element) {
      const char* template_file_name_text =
          template_file_name_element->GetText();

      if (template_file_name_text) {
        try {
          set_template_file_name(template_file_name_text);
        }
        catch (const std::logic_error & e) {
          std::cout << e.what() << std::endl;
        }
      }
    }
  }

  // Input file_name
  {
    const tinyxml2::XMLElement* input_file_name_element =
        document.FirstChildElement("InputFileName");

    if (input_file_name_element) {
      const char* input_file_name_text = input_file_name_element->GetText();

      if (input_file_name_text) {
        try {
          set_input_file_name(input_file_name_text);
        }
        catch (const std::logic_error & e) {
          std::cout << e.what() << std::endl;
        }
      }
    }
  }

  // Batch file_name
  {
    const tinyxml2::XMLElement* script_file_name_element =
        document.FirstChildElement("BatchFileName");

    if (script_file_name_element) {
      const char* script_file_name_text = script_file_name_element->GetText();

      if (script_file_name_text) {
        try {
          set_script_file_name(script_file_name_text);
        }
        catch (const std::logic_error & e) {
          std::cout << e.what() << std::endl;
        }
      }
    }
  }

  // Output file_name
  {
    const tinyxml2::XMLElement* output_file_name_element =
        document.FirstChildElement("OutputFileName");

    if (output_file_name_element) {
      const char* output_file_name_text = output_file_name_element->GetText();

      if (output_file_name_text) {
        try {
          set_output_file_name(output_file_name_text);
        }
        catch (const std::logic_error & e) {
          std::cout << e.what() << std::endl;
        }
      }
    }
  }
  /*
    // Input flags
    {
       tinyxml2::XMLElement* input_flags_element =
  document->FirstChildElement("InputFlags");
  
       if(input_flags_element)
       {
          const char* input_flags_text = input_flags_element->GetText();
  
          if(input_flags_text)
          {
             Vector<std::string> new_input_flags;
             new_input_flags.parse(input_flags_text);
  
             try
             {
                set_input_flags(new_input_flags);
             }
             catch(const std::logic_error& e)
             {
                std::cout << e.what() << std::endl;
             }
          }
       }
    }
  */
  // Display
  {
    const tinyxml2::XMLElement* display_element =
        document.FirstChildElement("Display");

    if (display_element) {
      const char* display_text = display_element->GetText();

      if (display_text) {
        try {
          std::string display_string(display_text);

          set_display(display_string != "0");
        }
        catch (const std::logic_error & e) {
          std::cout << e.what() << std::endl;
        }
      }
    }
  }
}
コード例 #2
0
void MathematicalModel::from_XML(TiXmlElement* mathematical_model_element)  
{
   std::ostringstream buffer;

   if(mathematical_model_element != NULL)
   {
      // Control sentence 
      {
         const char* text = mathematical_model_element->GetText();

         if(text)
         { 
            const std::string string(text);

            if(string != "MathematicalModel")
            {
               buffer << "OpenNN Exception: MathematicalModel class.\n" 
                      << "void from_XML(TiXmlElement*) method.\n"
                      << "Unkown root element: " << string << ".\n";

	           throw std::logic_error(buffer.str());
            }
         }
         else
         {
            buffer << "OpenNN Exception: MathematicalModel class.\n" 
                   << "void from_XML(TiXmlElement*) method.\n"
                   << "Unkown root element.\n";       

            throw std::logic_error(buffer.str());
         }
      }

      // Independent variables number
      {
         TiXmlElement* element = mathematical_model_element->FirstChildElement("IndependentVariablesNumber");

         if(element)
         {
            const char* text = element->GetText();     

            if(text)
            {
               try
               {
                  set_independent_variables_number(atoi(text));
               }
               catch(std::exception& e)
               {
                  std::cout << e.what() << std::endl;		 
               }
            }
         }
      }

      // Dependent variables number
      {
         TiXmlElement* element = mathematical_model_element->FirstChildElement("DependentVariablesNumber");

         if(element)
         {
            const char* text = element->GetText();     

            if(text)
            {
               try
               {
                  set_dependent_variables_number(atoi(text));
               }
               catch(std::exception& e)
               {
                  std::cout << e.what() << std::endl;		 
               }
            }
         }
      }

      // Display 
      {
         TiXmlElement* element = mathematical_model_element->FirstChildElement("Display");

         if(element)
         {
            const char* text = element->GetText();     

            if(text)
            {
               try
               {
                  const std::string string(text);

                  set_display(string != "0");
               }
               catch(std::exception& e)
               {
                  std::cout << e.what() << std::endl;		 
               }
            }
         }
      }
   }
}