Beispiel #1
0
US_USE_NAMESPACE

void resourceExample()
{
  //! [1]
  // Get this module's Module object
  Module* module = GetModuleContext()->GetModule();

  ModuleResource resource = module->GetResource("config.properties");
  if (resource.IsValid())
  {
    // Create a ModuleResourceStream object
    ModuleResourceStream resourceStream(resource);

    // Read the contents line by line
    std::string line;
    while (std::getline(resourceStream, line))
    {
      // Process the content
      std::cout << line << std::endl;
    }
  }
  else
  {
    // Error handling
  }
  //! [1]
}
bool mitk::StateMachineFactory::LoadStandardBehavior()
{
  Module* module = ModuleRegistry::GetModule("Mitk");
  ModuleResource resource = module->GetResource("Interactions/Legacy/StateMachine.xml");
  if (!resource.IsValid())
  {
    mitkThrow()<< ("Resource not valid. State machine pattern not found:Interactions/Legacy/StateMachine.xml" );
  }
  mitk::ModuleResourceStream stream(resource);
  std::string patternString((std::istreambuf_iterator<char>(stream)), std::istreambuf_iterator<char>());
  return this->LoadBehaviorString(patternString);
}
int usModuleResourceTest(int /*argc*/, char* /*argv*/[])
{
  US_TEST_BEGIN("ModuleResourceTest");

  ModuleContext* mc = GetModuleContext();
  assert(mc);

#ifdef US_BUILD_SHARED_LIBS
  SharedLibrary libR(LIB_PATH, "TestModuleR");
  try
  {
    libR.Load();
  }
  catch (const std::exception& e)
  {
    US_TEST_FAILED_MSG(<< "Load module exception: " << e.what())
  }
#endif

  Module* moduleR = ModuleRegistry::GetModule("TestModuleR");
  US_TEST_CONDITION_REQUIRED(moduleR != nullptr, "Test for existing module TestModuleR")

  US_TEST_CONDITION(moduleR->GetName() == "TestModuleR", "Test module name")

  testInvalidResource(moduleR);

  testResourceFromExecutable(mc->GetModule());

  testResourceTree(moduleR);

  testResourceOperators(moduleR);

  testTextResource(moduleR);
  testTextResourceAsBinary(moduleR);
  testSpecialCharacters(moduleR);

  testBinaryResource(moduleR);

  testCompressedResource(moduleR);

  ModuleResource foo = moduleR->GetResource("foo.txt");
  US_TEST_CONDITION(foo.IsValid() == true, "Valid resource")
#ifdef US_BUILD_SHARED_LIBS
  libR.Unload();
  US_TEST_CONDITION(foo.IsValid() == true, "Still valid resource")
#endif

  testResourcesFrom("TestModuleRL");
  testResourcesFrom("TestModuleRA");

  US_TEST_END()
}