⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simple-test.cc

📁 MICO2.3.13 corba 环境平台
💻 CC
📖 第 1 页 / 共 4 页
字号:
/* *  Test of COSS Relationship Service for MICO *  Copyright (C) 1998-99 Karel Gardas * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * *  Send comments and/or bug reports to: *                 mico@informatik.uni-frankfurt.de *  or to my private e-mail: *                 gardask@alpha.inf.upol.cz */#include <CORBA.h>#include <time.h>#include <string.h>#include <coss/CosRelationships.h>#include <coss/CosGraphs.h>#include <coss/CosContainment.h>#include <coss/CosReference.h>#include <coss/CosGraphsExtension.h>#include "Documents.h"#include "Test.h"using namespace std;int main( int argc, char *argv[] ){  //ORB initialization  CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, "mico-local-orb");  cout << "Runing all tests\n" << flush;  CORBA::Boolean exception = FALSE;  CORBA::Boolean exception2 = FALSE;  CORBA::Boolean exception3 = FALSE;  CORBA::Boolean state_good = TRUE;  state_good = TRUE;  // containment  cout << "Binding to ContainsRoleFactory ..." << flush;  CORBA::ORB::ObjectTag_var     tag2 = CORBA::ORB::string_to_tag ("ContainsRole_impl");  CORBA::Object_var   obj10 = orb->bind ("IDL:omg.org/CosRelationships/RoleFactory:1.0", 		     tag2.in());  assert (!CORBA::is_nil (obj10));  CosRelationships::RoleFactory_var contains_factory;   if (contains_factory = CosRelationships::RoleFactory::_narrow (obj10))    cout << "done.\n" << flush;  else    cout << "ERROR!\n" << flush;  cout << "Binding to ContainedInRoleFactory ..." << flush;  CORBA::ORB::ObjectTag_var     tag3 = CORBA::ORB::string_to_tag ("ContainedInRole_impl");  CORBA::Object_var     obj11 = orb->bind ("IDL:omg.org/CosRelationships/RoleFactory:1.0",                        tag3.in());  assert (!CORBA::is_nil (obj11));  CosRelationships::RoleFactory_var containedin_factory;   if (containedin_factory = CosRelationships::RoleFactory::_narrow (obj11))    cout << "done.\n" << flush;  else    cout << "ERROR!\n" << flush;    cout << "Binding to ContainmentFactory ..." << flush;  CORBA::ORB::ObjectTag_var     tag11 = CORBA::ORB::string_to_tag ("Containment_impl");  CORBA::Object_var     obj30 = orb->bind ("IDL:omg.org/CosRelationships/RelationshipFactory:1.0",                       tag11.in());  assert (!CORBA::is_nil (obj30));  CosRelationships::RelationshipFactory_var containment_factory;  if (containment_factory = CosRelationships::RelationshipFactory::_narrow       (obj30))    cout << "done.\n" << flush;  else    cout << "ERROR!\n" << flush;     // reference  cout << "Binding to ReferencesRoleFactory ..." << flush;  //CORBA::ORB::ObjectTag_var   tag2 = CORBA::ORB::string_to_tag ("ReferencesRole_impl");  //CORBA::Object_var  obj10 = orb->bind ("IDL:omg.org/CosRelationships/RoleFactory:1.0", 		     tag2.in());  assert (!CORBA::is_nil (obj10));  CosRelationships::RoleFactory_var references_factory;   if (references_factory = CosRelationships::RoleFactory::_narrow (obj10))    cout << "done.\n" << flush;  else    cout << "ERROR!\n" << flush;  cout << "Binding to ReferencedByRoleFactory ..." << flush;  //CORBA::ORB::ObjectTag_var   tag3 = CORBA::ORB::string_to_tag ("ReferencedByRole_impl");  //CORBA::Object_var   obj11 = orb->bind ("IDL:omg.org/CosRelationships/RoleFactory:1.0", 		     tag3.in());  assert (!CORBA::is_nil (obj11));  CosRelationships::RoleFactory_var referencedby_factory;   if (referencedby_factory = CosRelationships::RoleFactory::_narrow (obj11))    cout << "done.\n" << flush;  else    cout << "ERROR!\n" << flush;    cout << "Binding to ReferenceFactory ..." << flush;  //CORBA::ORB::ObjectTag_var   tag11 = CORBA::ORB::string_to_tag ("Reference_impl");  //CORBA::Object_var   obj30 = orb->bind ("IDL:omg.org/CosRelationships/RelationshipFactory:1.0", 		     tag11.in());  assert (!CORBA::is_nil (obj30));  CosRelationships::RelationshipFactory_var reference_factory;  if (reference_factory = CosRelationships::RelationshipFactory::_narrow      (obj30))    cout << "done.\n" << flush;  else    cout << "ERROR!\n" << flush;    // node factory  cout << "Binding to NodeFactory ..." << flush;  //CORBA::ORB::ObjectTag_var   tag11 = CORBA::ORB::string_to_tag ("Node_impl");  //CORBA::Object_var   obj30 = orb->bind ("IDL:omg.org/CosGraphs/NodeFactory:1.0", 		     tag11.in());  assert (!CORBA::is_nil (obj30));  CosGraphs::NodeFactory_var node_factory;  if (node_factory = CosGraphs::NodeFactory::_narrow (obj30))    cout << "done.\n" << flush;  else    cout << "ERROR!\n" << flush;  // figure and text factory  cout << "Binding to TextFactory ..." << flush;  //CORBA::Object_var   obj30 = orb->bind ("IDL:Documents/TextFactory:1.0");  assert (!CORBA::is_nil (obj30));  Documents::TextFactory_var text_factory;  if (text_factory = Documents::TextFactory::_narrow (obj30))    cout << "done.\n" << flush;  else    cout << "ERROR!\n" << flush;  cout << "Binding to FigureFactory ..." << flush;  obj30 = orb->bind ("IDL:Documents/FigureFactory:1.0");  assert (!CORBA::is_nil (obj30));  Documents::FigureFactory_var figure_factory;  if (figure_factory = Documents::FigureFactory::_narrow (obj30))    cout << "done.\n" << flush;  else    cout << "ERROR!\n" << flush;    // binding to factories which are need for tests  cout << "Binding to BaseRoleFactory ..." << flush;  //CORBA::ORB::ObjectTag_var   tag2 = CORBA::ORB::string_to_tag ("BaseRole_impl");  //CORBA::Object_var   obj10 = orb->bind ("IDL:omg.org/CosRelationships/RoleFactory:1.0", 		     tag2.in());  assert (!CORBA::is_nil (obj10));  CosRelationships::RoleFactory_var base_factory;   if (base_factory = CosRelationships::RoleFactory::_narrow (obj10))    cout << "done.\n" << flush;  else    cout << "ERROR!\n" << flush;  cout << "Binding to DerivedRoleFactory 1..." << flush;  //CORBA::ORB::ObjectTag_var   tag3 = CORBA::ORB::string_to_tag ("DerivedRole1_impl");  //CORBA::Object_var   obj11 = orb->bind ("IDL:omg.org/CosRelationships/RoleFactory:1.0", 		     tag3.in());  assert (!CORBA::is_nil (obj11));  CosRelationships::RoleFactory_var derived_factory1;   if (derived_factory1 = CosRelationships::RoleFactory::_narrow (obj11))    cout << "done.\n" << flush;  else    cout << "ERROR!\n" << flush;    cout << "Binding to DerivedRoleFactory 2..." << flush;  //CORBA::ORB::ObjectTag_var   tag3 = CORBA::ORB::string_to_tag ("DerivedRole2_impl");  //CORBA::Object_var   obj11 = orb->bind ("IDL:omg.org/CosRelationships/RoleFactory:1.0", 		     tag3.in());  assert (!CORBA::is_nil (obj11));  CosRelationships::RoleFactory_var derived_factory2;   if (derived_factory2 = CosRelationships::RoleFactory::_narrow (obj11))    cout << "done.\n" << flush;  else    cout << "ERROR!\n" << flush;    cout << "Binding to TestRelationshipFactory ..." << flush;  //CORBA::ORB::ObjectTag_var   tag11 = CORBA::ORB::string_to_tag ("TestRelationship_impl");  //CORBA::Object_var   obj30 = orb->bind ("IDL:omg.org/CosRelationships/RelationshipFactory:1.0",		     tag11.in());  assert (!CORBA::is_nil (obj30));  CosRelationships::RelationshipFactory_var test_relationship_factory;  if (test_relationship_factory = CosRelationships::RelationshipFactory::      _narrow (obj30))    cout << "done.\n" << flush;  else    cout << "ERROR!\n" << flush;     cout << "Binding to TraversalFactory ..." << flush;  CORBA::Object_var obj3 = orb->bind ("IDL:omg.org/CosGraphs/TraversalFactory:1.0");  assert (!CORBA::is_nil (obj3));  CosGraphs::TraversalFactory_var traversal_factory;  if (traversal_factory = CosGraphs::TraversalFactory::_narrow (obj3))    cout << "done.\n" << flush;  else    cout << "ERROR!\n" << flush;  cout << "Binding to GenericCriteriaFactory ..." << flush;  obj3 = orb->bind     ("IDL:gnu.org/CosGraphsExtension/GenericCriteriaFactory:1.0");  assert (!CORBA::is_nil (obj3));  CosGraphsExtension::GenericCriteriaFactory_var criteria_factory;  if (criteria_factory = CosGraphsExtension::GenericCriteriaFactory::_narrow       (obj3))    cout << "done.\n" << flush;  else    cout << "ERROR!\n" << flush;  cout << "Checking first level\n";  cout << "Checking RoleFactory::role_type ()  ..." << flush;  //CORBA::InterfaceDef_ptr interface = owner_factory->role_type ();  CORBA::InterfaceDef_ptr interface = contains_factory->role_type ();  if (!CORBA::is_nil (interface)) {    //interface->destroy ();    cout << "ok.\n" << flush;  }  else    cout << "error.\n" << flush;  cout << "Checking RelationshipFactory::relationship_type ()  ..." << flush;  //CORBA::InterfaceDef_ptr interface2 = ownership_factory->relationship_type ();  CORBA::InterfaceDef_ptr interface2 = containment_factory->relationship_type ();  if (!CORBA::is_nil (interface2)) {    //interface2->destroy ();    cout << "ok.\n" << flush;  }  else    cout << "error.\n" << flush;  //sleep (1);  cout << "Checking RoleFactory::create_role ()  ..." << flush;  CORBA::Boolean right_role = TRUE;  CosContainment::ContainsRole_var role1;  CosContainment::ContainedInRole_var role2;  CosContainment::Relationship_var relship1;  Documents::Figure_var fig1;  Documents::Figure_var fig2;  CosGraphs::Node_var node1;  CosGraphs::Node_var node2;#ifdef HAVE_EXCEPTIONS  try {#endif    fig1 = Documents::Figure::_narrow (figure_factory->create ("fig1.png"));    node1 = CosGraphs::Node::_duplicate (node_factory->create_node (fig1));    role1 = CosContainment::ContainsRole::_narrow       (contains_factory->create_role (node1));#ifdef HAVE_EXCEPTIONS  }    catch (CosRelationships::RoleFactory::RelatedObjectTypeError_catch &ex1)    {      cout << "RelatedObjectTypeError!\n" << flush;      right_role = FALSE;    }#endif  if (!CORBA::is_nil (role1)) {    cout << "ok.\n" << flush;  }  else    cout << "failed.\n";  cout << "Checking Role::related_object ()  ..." << flush;  CosGraphs::Node_var tmp_node = CosGraphs::Node::_narrow (role1->related_object ());  if (!CORBA::is_nil (tmp_node))    cout << "ok.\n" << flush;  else {    cout << "failed.\n" << flush;  }  exception = FALSE;  cout << "Checking Role::destroy ()  ..." << flush;  role1->destroy ();#ifdef HAVE_EXCEPTIONS  try {#endif    CORBA::Object_var x = role1->related_object ();#ifdef HAVE_EXCEPTIONS  }  catch (CORBA::SystemException_catch &ex) {    exception = TRUE;  }#endif  if (exception)    cout << "ok.\n" << flush;  else {    cout << "failed.\n" << flush;  }  exception = FALSE;  cout << "Checking RoleFactory::RelatedObjectTypeError exception  ..."        << flush;#ifdef HAVE_EXCEPTIONS  try {#endif    role1 = CosContainment::ContainsRole::_narrow       (contains_factory->create_role        (Documents::Figure::_duplicate (fig1)));#ifdef HAVE_EXCEPTIONS  } catch (CosRelationships::RoleFactory::RelatedObjectTypeError_catch &ex1) {    exception = TRUE;  }#endif  if (exception)    cout << "ok.\n" << flush;  else {    cout << "failed.\n" << flush;  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -