int register_factories (CORBA::ORB_ptr orb) { CORBA::Object_var compression_manager_obj = orb->resolve_initial_references("CompressionManager"); compression_manager = ::Compression::CompressionManager::_narrow ( compression_manager_obj.in ()); if (CORBA::is_nil(compression_manager.in ())) ACE_ERROR_RETURN ((LM_ERROR, " (%P|%t) Panic: nil compression manager\n"), 1); //register Zlib compressor ::Compression::CompressorFactory_ptr compressor_factory; ACE_NEW_RETURN (compressor_factory, TAO::Zlib_CompressorFactory (), 1); ::Compression::CompressorFactory_var compr_fact = compressor_factory; compression_manager->register_factory(compr_fact.in ()); // register bzip2 compressor ACE_NEW_RETURN (compressor_factory, TAO::Bzip2_CompressorFactory (), 1); compr_fact = compressor_factory; compression_manager->register_factory(compr_fact.in ()); // register test compressor ACE_NEW_RETURN (compressor_factory, TAO::Test_CompressorFactory (), 1); compr_fact = compressor_factory; compression_manager->register_factory(compr_fact.in ()); return 0; }
int ACE_TMAIN(int argc, ACE_TCHAR *argv[]) { int retval = 0; try { CORBA::ORB_var orb = CORBA::ORB_init (argc, argv); CORBA::Object_var compression_manager = orb->resolve_initial_references("CompressionManager"); Compression::CompressionManager_var manager = Compression::CompressionManager::_narrow (compression_manager.in ()); if (CORBA::is_nil(manager.in ())) ACE_ERROR_RETURN ((LM_ERROR, " (%P|%t) Panic: nil compression manager\n"), 1); Compression::CompressorFactory_ptr compressor_factory; ACE_NEW_RETURN (compressor_factory, TAO::Bzip2_CompressorFactory (), 1); Compression::CompressorFactory_var compr_fact = compressor_factory; manager->register_factory(compr_fact.in ()); if (!test_duplicate_compression_factory (manager.in (), compr_fact.in ())) retval = 1; if (!test_register_nil_compression_factory (manager.in ())) retval = 1; if (!test_compression (1024, manager.in ())) retval = 1; if (!test_compression (5, manager.in ())) retval = 1; if (!test_invalid_compression_factory (manager.in ())) retval = 1; orb->destroy (); } catch (const CORBA::Exception& ex) { ex._tao_print_exception ("Exception caught:"); retval = 1; } return retval; }
int check_results (CORBA::ORB_ptr orb) { #if defined TAO_HAS_ZIOP && TAO_HAS_ZIOP == 1 switch (test) { case 1: try { // should throw an exception ::Compression::Compressor_var compressor ( compression_manager->get_compressor ( ::Compression::COMPRESSORID_LZO, LEAST_COMPRESSION_LEVEL )); ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("ERROR : check_results, ") ACE_TEXT ("no exception thrown when applying for ") ACE_TEXT ("LZO Compressor\n")), 1); } catch (::Compression::UnknownCompressorId) { ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("check_results, expected exception caught, ") ACE_TEXT ("(unknown factory)\n"))); Test::Hello_var hello = prepare_tests (orb, false); test = -1; return start_tests (hello.in (), orb); } break; case 4: case -1: { ::Compression::Compressor_var compressor ( compression_manager->get_compressor ( ::Compression::COMPRESSORID_ZLIB, LEAST_COMPRESSION_LEVEL )); if (!CORBA::is_nil (compressor)) { if (compressor->compressed_bytes () == 0) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("ERROR : check_results, no compression used ") ACE_TEXT ("during test 1a\n")), 1); else return 0; } else { ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("ERROR : check_results, zlib compressor not found ") ACE_TEXT ("during test 1a\n")), 1); } } break; case 2: return 0; break; case 3: { // low value policy test. No compression should be used. ::Compression::Compressor_var compressor ( compression_manager->get_compressor ( ::Compression::COMPRESSORID_ZLIB, LEAST_COMPRESSION_LEVEL )); if (!CORBA::is_nil (compressor)) { if (compressor->compressed_bytes () != 0) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("ERROR : check_results, compression used ") ACE_TEXT ("during test %d\n"), test), 1); else return 0; } else { ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("ERROR : check_results, zlib compressor not found ") ACE_TEXT ("during test %d\n"), test), 1); } } break; default: ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("ERROR : check_results, unknown test ID\n")), 1); } ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("ERROR : check_results, unexpected\n")), 1); #else ACE_UNUSED_ARG (orb); return 0; #endif }