//---------------------------------------------------------------------------------------
// Information - All
map<string,boost::any> CArtAlgorithm::getInformation() 
{
	map<string, boost::any> res;
	res["RayOrder"] = getInformation("RayOrder");
	res["Lambda"] = getInformation("Lambda");
	return mergeMap<string,boost::any>(CReconstructionAlgorithm2D::getInformation(), res);
};
//---------------------------------------------------------------------------------------
// Get Information - all
map<string,boost::any> CForwardProjectionAlgorithm::getInformation() 
{
	map<string, boost::any> result;
	result["ProjectorId"] = getInformation("ProjectorId");
	result["ProjectionDataId"] = getInformation("ProjectionDataId");
	result["VolumeDataId"] = getInformation("VolumeDataId");
	return mergeMap<string,boost::any>(CAlgorithm::getInformation(), result);
};
void IMFlockInformationWidget::onClickOKButton()
{
    if (!m_isReadOnly)
    {
        getInformation();
        m_mainWidget->changeFlockInformation(m_flockInf);
    }
    setReadOnly(!m_isReadOnly, true);
}
//---------------------------------------------------------------------------------------
// Information - All
map<string,boost::any> CReconstructionAlgorithm2D::getInformation() 
{
	map<string, boost::any> res;
	res["ProjectorId"] = getInformation("ProjectorId");
	res["ProjectionDataId"] = getInformation("ProjectionDataId");
	res["ReconstructionDataId"] = getInformation("ReconstructionDataId");
	res["UseMinConstraint"] = getInformation("UseMinConstraint");
	res["MinConstraintValue"] = getInformation("MinConstraintValue");
	res["UseMaxConstraint"] = getInformation("UseMaxConstraint");
	res["MaxConstraintValue"] = getInformation("MaxConstraintValue");
	res["ReconstructionMaskId"] = getInformation("ReconstructionMaskId");
	return mergeMap<string,boost::any>(CAlgorithm::getInformation(), res);
};
Beispiel #5
0
/* a function will change esp when overwrite ebp*/
void openShop(void)
{
	void getInformation(void);


	puts("So let's open a shop to sale sword");
	puts("Please enter a some information\n");

	//Here exploit 
	getInformation();

	puts("\nSo open shop success\nbut my memory is not good\n");
}
//---------------------------------------------------------------------------------------
// Information - All
map<string,boost::any> CCudaForwardProjectionAlgorithm3D::getInformation()
{
	map<string,boost::any> res;
	res["ProjectionGeometry"] = getInformation("ProjectionGeometry");
	res["VolumeGeometry"] = getInformation("VolumeGeometry");
	res["ProjectionDataId"] = getInformation("ProjectionDataId");
	res["VolumeDataId"] = getInformation("VolumeDataId");
	res["GPUindex"] = getInformation("GPUindex");
	res["GPUindex"] = getInformation("GPUindex");
	res["DetectorSuperSampling"] = getInformation("DetectorSuperSampling");
	return mergeMap<string,boost::any>(CAlgorithm::getInformation(), res);
}
Beispiel #7
0
/*
 * Respond to the documentSelected signal from the appSelector, by displaying
 * information about the selected application.
 */
void AppViewer::documentSelected( const QContent &appContent )
{
    appSelector->hide();
    if ( appContent.isValid() )
    {
        textArea->setHtml( getInformation( appContent ));
    }
    else
    {
        textArea->setHtml(
                tr( "<font color=\"#CC0000\">Could not find information about %1</font>" )
                .arg( appContent.name() ));
        qWarning() << "Application " << appContent.file() << " not found";
    }
}
Beispiel #8
0
void ConnectivityManager::mappingFinished(const string& p_mapper)
{
	if (!ClientManager::isBeforeShutdown())
	{
		if (BOOLSETTING(AUTO_DETECT_CONNECTION))
		{
			if (p_mapper.empty())
			{
				//StrongDC++: don't disconnect when mapping fails else DHT and active mode in favorite hubs won't work
				//disconnect();
				SET_SETTING(INCOMING_CONNECTIONS, SettingsManager::INCOMING_FIREWALL_PASSIVE);
				SET_SETTING(ALLOW_NAT_TRAVERSAL, true);
				log(STRING(AUTOMATIC_SETUP_ACTIV_MODE_FAILED));
			}
#ifdef FLYLINKDC_BETA
			else
			{
				if (!MappingManager::getExternaIP().empty() && Util::isPrivateIp(MappingManager::getExternaIP()))
				{
					SET_SETTING(INCOMING_CONNECTIONS, SettingsManager::INCOMING_FIREWALL_PASSIVE);
					SET_SETTING(ALLOW_NAT_TRAVERSAL, true);
					const string l_error = "Auto passive mode: Private IP = " + MappingManager::getExternaIP();
					log(l_error);
					CFlyServerJSON::pushError(29, l_error);
				}
			}
#endif
			// FLYLINKDC_USE_DEAD_CODE fly_fire1(ConnectivityManagerListener::Finished());
		}
		log(getInformation());
		SET_SETTING(MAPPER, p_mapper);
		if (!p_mapper.empty())
		{
			test_all_ports();
		}
	}
	g_is_running = false;
}
TEST(TBKnowledgeBase, twoBots)
{
  auto leonardo = std::make_shared<ice::TBKnowledgeBase>("Leonardo");
  auto raphael = std::make_shared<ice::TBKnowledgeBase>("Raphael");

  leonardo->init();
  raphael->init();

  ASSERT_TRUE((leonardo->positionLandmarks ? true : false));
  ASSERT_TRUE((raphael->positionLandmarks ? true : false));

  leonardo->start();
  raphael->start();

  auto streamStore = leonardo->getKnowlegeBase()->streamStore;
  auto setStore = leonardo->getKnowlegeBase()->setStore;
  auto factory = leonardo->getGContainerFactory();

  // wait some time to enable the engines to find each other
  std::this_thread::sleep_for(std::chrono::milliseconds {8000});

  // test processing
  ASSERT_TRUE((leonardo->positionOwn ? true : false));
  ASSERT_TRUE((leonardo->positionRobots ? true : false));
  ASSERT_TRUE((leonardo->positionVictims ? true : false));
  ASSERT_TRUE((leonardo->positionLandmarks ? true : false));
  ASSERT_TRUE((leonardo->dangerZones ? true : false));
  ASSERT_TRUE((raphael->positionOwn ? true : false));
  ASSERT_TRUE((raphael->positionRobots ? true : false));
  ASSERT_TRUE((raphael->positionVictims ? true : false));
  ASSERT_TRUE((raphael->positionLandmarks ? true : false));
  ASSERT_TRUE((raphael->dangerZones ? true : false));


  std::cout << std::endl << "---------------------------------------------------------------" << std::endl;


  // get sets and streams
  //own pos
  auto specPosLeonardo = ice::InformationSpecification("http://vs.uni-kassel.de/TurtleBot#Leonardo",
                                               "http://vs.uni-kassel.de/TurtleBot#TurtleBot",
                                               "http://vs.uni-kassel.de/Ice#Position",
                                               "http://vs.uni-kassel.de/TurtleBot#PositionOrientation3D");
  auto posLeornardo = streamStore->getStream<ice::PositionOrientation3D>(&specPosLeonardo,
                                                                         "http://vs.uni-kassel.de/TurtleBot#LocalizeLeonardo",
                                                                         "http://vs.uni-kassel.de/TurtleBot#Leonardo");
  ASSERT_TRUE((posLeornardo ? true : false));

  auto specPosLeonardo2 = ice::InformationSpecification("http://vs.uni-kassel.de/TurtleBot#Leonardo",
                                               "http://vs.uni-kassel.de/TurtleBot#TurtleBot",
                                               "http://vs.uni-kassel.de/Ice#Position",
                                               "http://vs.uni-kassel.de/Ice#CoordinatePositionRep");
  auto posLeornardo2 = streamStore->getStream<ice::Pos3D>(&specPosLeonardo2);
  ASSERT_TRUE((posLeornardo2 ? true : false));

  auto specPosLeonardo3 = ice::InformationSpecification("http://vs.uni-kassel.de/TurtleBot#Leonardo",
                                               "http://vs.uni-kassel.de/TurtleBot#TurtleBot",
                                               "http://vs.uni-kassel.de/Ice#Position",
                                               "http://vs.uni-kassel.de/TurtleBot#RelativeToLandmark");
  auto posLeornardo3 = streamStore->getStream<ice::RTLandmark>(&specPosLeonardo3);
  ASSERT_TRUE((posLeornardo3 ? true : false));

  auto specPosRaphael = ice::InformationSpecification("http://vs.uni-kassel.de/TurtleBot#Raphael",
                                                      "http://vs.uni-kassel.de/TurtleBot#TurtleBot",
                                                      "http://vs.uni-kassel.de/Ice#Position",
                                                      "http://vs.uni-kassel.de/TurtleBot#PositionOrientation3D");
  auto posRaphael = raphael->getKnowlegeBase()->streamStore->getStream<ice::PositionOrientation3D>(&specPosRaphael);
  ASSERT_TRUE((posRaphael ? true : false));

  // landmarks
  auto landmarksSpec = ice::InformationSpecification("",
                                               "http://vs.uni-kassel.de/TurtleBot#Landmark",
                                               "http://vs.uni-kassel.de/Ice#Position",
                                               "http://vs.uni-kassel.de/TurtleBot#PositionOrientation3D");
  auto landmarks = setStore->getSet<ice::PositionOrientation3D>(&landmarksSpec,
                                                                         "http://vs.uni-kassel.de/TurtleBot#DetectLandmarks",
                                                                         "http://vs.uni-kassel.de/TurtleBot#Leonardo");
  ASSERT_TRUE((landmarks ? true : false));

  // victims
  auto victimsSpec = ice::InformationSpecification("",
                                               "http://vs.uni-kassel.de/TurtleBot#Victim",
                                               "http://vs.uni-kassel.de/Ice#Position",
                                               "http://vs.uni-kassel.de/Ice#CoordinatePositionRep");
  auto victims = setStore->getSet<ice::Pos3D>(&victimsSpec);
  ASSERT_TRUE((victims ? true : false));

  // contaminated areas
  auto radioactiveAreasSpec = ice::InformationSpecification("",
                                               "http://vs.uni-kassel.de/TurtleBot#RadioactiveArea",
                                               "http://vs.uni-kassel.de/TurtleBot#Area",
                                               "http://vs.uni-kassel.de/TurtleBot#ContaminatedArea");
  auto radioactiveAreas = raphael->getKnowlegeBase()->setStore->getSet<ice::GContainer>(&radioactiveAreasSpec);
  ASSERT_TRUE((radioactiveAreas ? true : false));

  // create landmarks
  auto landmark1 = factory->makeInstance<ice::PositionOrientation3D>("http://vs.uni-kassel.de/TurtleBot#PositionOrientation3D");
  auto landmark2 = factory->makeInstance<ice::PositionOrientation3D>("http://vs.uni-kassel.de/TurtleBot#PositionOrientation3D");

  landmark1->alpha = M_PI;
  landmark1->x = 100;
  landmark1->y = 100;
  landmark1->z = 0;

  landmark2->alpha = M_PI / 2.0;
  landmark2->x = 1000;
  landmark2->y = 1000;
  landmark2->z = 0;

  landmarks->add("Landmark1", landmark1);
  landmarks->add("Landmark2", landmark2);
  raphael->positionLandmarks->add("Landmark1", landmark1);
  raphael->positionLandmarks->add("Landmark2", landmark2);

  // generate position
  auto element = factory->makeInstance<ice::PositionOrientation3D>("http://vs.uni-kassel.de/TurtleBot#PositionOrientation3D");

  element->alpha = 0;
  element->x = 100;
  element->y = 200;
  element->z = 0;

  posLeornardo->add(element);

  auto element2 = factory->makeInstance<ice::PositionOrientation3D>("http://vs.uni-kassel.de/TurtleBot#PositionOrientation3D");

  element2->alpha = 0;
  element2->x = 200;
  element2->y = 300;
  element2->z = 0;

  posRaphael->add(element2);

  // generate victim
  auto victim = factory->makeInstance<ice::Pos3D>("http://vs.uni-kassel.de/Ice#CoordinatePositionRep");

  victim->x = 1500;
  victim->y = 1200;
  victim->z = 0;

  victims->add("victim1", victim);


  // generate radioactive area
  auto representation = raphael->getGContainerFactory()->getRepresentation("http://vs.uni-kassel.de/TurtleBot#ContaminatedArea");
  ASSERT_TRUE((representation ? true : false));

  auto pathX = representation->accessPath(POS_X);
  auto pathY = representation->accessPath(POS_Y);
  auto pathZ = representation->accessPath(POS_Z);
  auto pathLandmark = representation->accessPath(POS_LANDMARK);
  auto pathRadius = representation->accessPath(SUR_RADIUS);

  ASSERT_TRUE((pathX ? true : false));
  ASSERT_TRUE((pathY ? true : false));
  ASSERT_TRUE((pathZ ? true : false));
  ASSERT_TRUE((pathLandmark ? true : false));
  ASSERT_TRUE((pathRadius ? true : false));

  auto area = raphael->getGContainerFactory()->makeInstance(representation);

  double x = 10;
  double y = 15;
  double z = 20;
  double r = 25;
  std::string landmark = "Landmark1";

  area->set(pathX, &x);
  area->set(pathY, &y);
  area->set(pathZ, &z);
  area->set(pathLandmark, &landmark);
  area->set(pathRadius, &r);

  radioactiveAreas->add("area", area);

  // wait for processing
  std::this_thread::sleep_for(std::chrono::milliseconds {100});

  // check
  ASSERT_EQ(1, posLeornardo->getSize());
  ASSERT_EQ(1, posLeornardo2->getSize());
  ASSERT_EQ(1, posLeornardo3->getSize());
  ASSERT_EQ(1, leonardo->positionOwn->getSize());
  ASSERT_EQ(3, leonardo->positionLandmarks->getSize());
  ASSERT_EQ(2, leonardo->positionRobots->getSize());
  ASSERT_EQ(1, leonardo->positionVictims->getSize());
  ASSERT_EQ(1, leonardo->dangerZones->getSize());
  ASSERT_EQ(3, raphael->positionLandmarks->getSize());
  ASSERT_EQ(1, raphael->positionVictims->getSize());

  // check own pos
  auto pos = leonardo->positionOwn->getLast();

  ASSERT_TRUE((pos ? true : false));
  EXPECT_EQ(element->alpha, pos->getInformation()->alpha);
  EXPECT_EQ(element->x, pos->getInformation()->x);
  EXPECT_EQ(element->y, pos->getInformation()->y);
  EXPECT_EQ(element->z, pos->getInformation()->z);

  // check pos raphael
  auto pos2 = leonardo->positionRobots->get("http://vs.uni-kassel.de/TurtleBot#Raphael");

  ASSERT_TRUE((pos2 ? true : false));

  // check pos in set
  auto posSet = leonardo->positionRobots->get("http://vs.uni-kassel.de/TurtleBot#Leonardo");

  ASSERT_TRUE((posSet ? true : false));
  EXPECT_EQ("Landmark1", posSet->getInformation()->landmark);
  EXPECT_NEAR(0.0, posSet->getInformation()->x, 0.00000001);
  EXPECT_NEAR(-100.0, posSet->getInformation()->y, 0.00000001);
  EXPECT_NEAR(0.0, posSet->getInformation()->z, 0.00000001);

//  posSet = raphael->positionRobots->get("http://vs.uni-kassel.de/TurtleBot#Leonardo");
//
//  ASSERT_TRUE((posSet ? true : false));
//  EXPECT_EQ("Landmark1", posSet->getInformation()->landmark);
//  EXPECT_NEAR(0.0, posSet->getInformation()->x, 0.00000001);
//  EXPECT_NEAR(-100.0, posSet->getInformation()->y, 0.00000001);
//  EXPECT_NEAR(0.0, posSet->getInformation()->z, 0.00000001);

  // check victim
  auto posVictim = leonardo->positionVictims->get("victim1");

  ASSERT_TRUE((posVictim ? true : false));
  EXPECT_EQ("Landmark2", posVictim->getInformation()->landmark);
  EXPECT_NEAR(-200.0, posVictim->getInformation()->x, 0.00000001);
  EXPECT_NEAR(500.0, posVictim->getInformation()->y, 0.00000001);
  EXPECT_NEAR(0.0, posVictim->getInformation()->z, 0.00000001);

  posVictim = raphael->positionVictims->get("victim1");

  ASSERT_TRUE((posVictim ? true : false));
  EXPECT_EQ("Landmark2", posVictim->getInformation()->landmark);
  EXPECT_NEAR(-200.0, posVictim->getInformation()->x, 0.00000001);
  EXPECT_NEAR(500.0, posVictim->getInformation()->y, 0.00000001);
  EXPECT_NEAR(0.0, posVictim->getInformation()->z, 0.00000001);

  auto dangerZone = leonardo->dangerZones->get("area");

  ASSERT_TRUE((dangerZone ? true : false));
  EXPECT_EQ("Landmark1", dangerZone->getInformation()->getValue<std::string>(pathLandmark));
  EXPECT_EQ(x, dangerZone->getInformation()->getValue<double>(pathX));
  EXPECT_EQ(y, dangerZone->getInformation()->getValue<double>(pathY));
  EXPECT_EQ(z, dangerZone->getInformation()->getValue<double>(pathZ));
  EXPECT_EQ(r, dangerZone->getInformation()->getValue<double>(pathRadius));

  leonardo->cleanUp();
  leonardo.reset();
  raphael->cleanUp();
  raphael.reset();
}
TEST(TBKnowledgeBase, leonardo)
{
  auto leonardo = std::make_shared<ice::TBKnowledgeBase>("Leonardo");

  leonardo->init();

  ASSERT_TRUE((leonardo->positionLandmarks ? true : false));

  leonardo->start();

  auto streamStore = leonardo->getKnowlegeBase()->streamStore;
  auto setStore = leonardo->getKnowlegeBase()->setStore;
  auto factory = leonardo->getGContainerFactory();

  // wait some time to enable the engines to find each other
  std::this_thread::sleep_for(std::chrono::milliseconds {100});

  // test processing
  ASSERT_TRUE((leonardo->positionOwn ? true : false));
  ASSERT_TRUE((leonardo->positionRobots ? true : false));
  ASSERT_TRUE((leonardo->positionVictims ? true : false));
  ASSERT_TRUE((leonardo->positionLandmarks ? true : false));


  std::cout << std::endl << "---------------------------------------------------------------" << std::endl;


  // get sets and streams
  //own pos
  auto specPosLeonardo = ice::InformationSpecification("http://vs.uni-kassel.de/TurtleBot#Leonardo",
                                               "http://vs.uni-kassel.de/TurtleBot#TurtleBot",
                                               "http://vs.uni-kassel.de/Ice#Position",
                                               "http://vs.uni-kassel.de/TurtleBot#PositionOrientation3D");
  auto posLeornardo = streamStore->getStream<ice::PositionOrientation3D>(&specPosLeonardo,
                                                                         "http://vs.uni-kassel.de/TurtleBot#LocalizeLeonardo",
                                                                         "http://vs.uni-kassel.de/TurtleBot#Leonardo");
  ASSERT_TRUE((posLeornardo ? true : false));

  auto specPosLeonardo2 = ice::InformationSpecification("http://vs.uni-kassel.de/TurtleBot#Leonardo",
                                               "http://vs.uni-kassel.de/TurtleBot#TurtleBot",
                                               "http://vs.uni-kassel.de/Ice#Position",
                                               "http://vs.uni-kassel.de/Ice#CoordinatePositionRep");
  auto posLeornardo2 = streamStore->getStream<ice::Pos3D>(&specPosLeonardo2);
  ASSERT_TRUE((posLeornardo2 ? true : false));

  auto specPosLeonardo3 = ice::InformationSpecification("http://vs.uni-kassel.de/TurtleBot#Leonardo",
                                               "http://vs.uni-kassel.de/TurtleBot#TurtleBot",
                                               "http://vs.uni-kassel.de/Ice#Position",
                                               "http://vs.uni-kassel.de/TurtleBot#RelativeToLandmark");
  auto posLeornardo3 = streamStore->getStream<ice::RTLandmark>(&specPosLeonardo3);
  ASSERT_TRUE((posLeornardo3 ? true : false));

  // landmarks
  auto landmarksSpec = ice::InformationSpecification("",
                                               "http://vs.uni-kassel.de/TurtleBot#Landmark",
                                               "http://vs.uni-kassel.de/Ice#Position",
                                               "http://vs.uni-kassel.de/TurtleBot#PositionOrientation3D");
  auto landmarks = setStore->getSet<ice::PositionOrientation3D>(&landmarksSpec,
                                                                         "http://vs.uni-kassel.de/TurtleBot#DetectLandmarks",
                                                                         "http://vs.uni-kassel.de/TurtleBot#Leonardo");
  ASSERT_TRUE((landmarks ? true : false));

  // victims
  auto victimsSpec = ice::InformationSpecification("",
                                               "http://vs.uni-kassel.de/TurtleBot#Victim",
                                               "http://vs.uni-kassel.de/Ice#Position",
                                               "http://vs.uni-kassel.de/Ice#CoordinatePositionRep");
  auto victims = setStore->getSet<ice::Pos3D>(&victimsSpec);
  ASSERT_TRUE((victims ? true : false));

  // create landmarks
  auto landmark1 = factory->makeInstance<ice::PositionOrientation3D>("http://vs.uni-kassel.de/TurtleBot#PositionOrientation3D");
  auto landmark2 = factory->makeInstance<ice::PositionOrientation3D>("http://vs.uni-kassel.de/TurtleBot#PositionOrientation3D");

  landmark1->alpha = M_PI;
  landmark1->x = 100;
  landmark1->y = 100;
  landmark1->z = 0;

  landmark2->alpha = M_PI / 2.0;
  landmark2->x = 1000;
  landmark2->y = 1000;
  landmark2->z = 0;

  landmarks->add("Landmark1", landmark1);
  landmarks->add("Landmark2", landmark2);

  // generate position
  auto element = factory->makeInstance<ice::PositionOrientation3D>("http://vs.uni-kassel.de/TurtleBot#PositionOrientation3D");

  element->alpha = 0;
  element->x = 100;
  element->y = 200;
  element->z = 0;

  posLeornardo->add(element);

  // generate victim
  auto victim = factory->makeInstance<ice::Pos3D>("http://vs.uni-kassel.de/Ice#CoordinatePositionRep");

  victim->x = 1500;
  victim->y = 1200;
  victim->z = 0;

  victims->add("victim1", victim);

  // wait for processing
  std::this_thread::sleep_for(std::chrono::milliseconds {100});

  // check
  ASSERT_EQ(1, posLeornardo->getSize());
  ASSERT_EQ(1, posLeornardo2->getSize());
  ASSERT_EQ(1, posLeornardo3->getSize());
  ASSERT_EQ(1, leonardo->positionOwn->getSize());
  ASSERT_EQ(3, leonardo->positionLandmarks->getSize());
  ASSERT_EQ(1, leonardo->positionRobots->getSize());

  // check own pos
  auto pos = leonardo->positionOwn->getLast();

  ASSERT_TRUE((pos ? true : false));
  EXPECT_EQ(element->alpha, pos->getInformation()->alpha);
  EXPECT_EQ(element->x, pos->getInformation()->x);
  EXPECT_EQ(element->y, pos->getInformation()->y);
  EXPECT_EQ(element->z, pos->getInformation()->z);

  // check pos in set
  auto posSet = leonardo->positionRobots->get("http://vs.uni-kassel.de/TurtleBot#Leonardo");

  ASSERT_TRUE((posSet ? true : false));
  EXPECT_EQ("Landmark1", posSet->getInformation()->landmark);
  EXPECT_NEAR(0.0, posSet->getInformation()->x, 0.00000001);
  EXPECT_NEAR(-100.0, posSet->getInformation()->y, 0.00000001);
  EXPECT_NEAR(0.0, posSet->getInformation()->z, 0.00000001);

  // check victim
  auto posVictim = leonardo->positionVictims->get("victim1");

  ASSERT_TRUE((posVictim ? true : false));
  EXPECT_EQ("Landmark2", posVictim->getInformation()->landmark);
  EXPECT_NEAR(-200.0, posVictim->getInformation()->x, 0.00000001);
  EXPECT_NEAR(500.0, posVictim->getInformation()->y, 0.00000001);
  EXPECT_NEAR(0.0, posVictim->getInformation()->z, 0.00000001);

  leonardo->cleanUp();
  leonardo.reset();
}
GtkWidget * AP_UnixDialog_GenericProgress::_constructWindow(void)
{
	GtkWidget* window;
	//const XAP_StringSet * pSS = XAP_App::getApp()->getStringSet();
	
	GtkBuilder* builder = newDialogBuilder("ap_UnixDialog_GenericProgress.ui");
	
	// Update our member variables with the important widgets that 
	// might need to be queried or altered later
	window = GTK_WIDGET(gtk_builder_get_object(builder, "ap_UnixDialog_GenericProgress"));
	m_wCancel = GTK_WIDGET(gtk_builder_get_object(builder, "btCancel"));
	m_wProgress = GTK_WIDGET(gtk_builder_get_object(builder, "pbProgress"));

	// set the dialog title
	abiDialogSetTitle(window, "%s", getTitle().utf8_str());
	
	// set the informative label
	gtk_label_set_text(GTK_LABEL(GTK_WIDGET(gtk_builder_get_object(builder, "lbInformation"))), getInformation().utf8_str());
	//gtk_label_set_text(GTK_LABEL(GTK_WIDGET(gtk_builder_get_object(builder, "lbLabel"))), getLabel().utf8_str());

	g_object_unref(G_OBJECT(builder));
	return window;
}
//---------------------------------------------------------------------------------------
// Information - All
map<string,boost::any> CCudaReconstructionAlgorithm2D::getInformation()
{
	// TODO: Verify and clean up

	map<string,boost::any> res;
	res["ProjectionGeometry"] = getInformation("ProjectionGeometry");
	res["ReconstructionGeometry"] = getInformation("ReconstructionGeometry");
	res["ProjectionDataId"] = getInformation("ProjectionDataId");
	res["ReconstructionDataId"] = getInformation("ReconstructionDataId");
	res["ReconstructionMaskId"] = getInformation("ReconstructionMaskId");
	res["GPUindex"] = getInformation("GPUindex");
	res["DetectorSuperSampling"] = getInformation("DetectorSuperSampling");
	res["PixelSuperSampling"] = getInformation("PixelSuperSampling");
	res["UseMinConstraint"] = getInformation("UseMinConstraint");
	res["MinConstraintValue"] = getInformation("MinConstraintValue");
	res["UseMaxConstraint"] = getInformation("UseMaxConstraint");
	res["MaxConstraintValue"] = getInformation("MaxConstraintValue");
	return mergeMap<string,boost::any>(CReconstructionAlgorithm2D::getInformation(), res);
}
//---------------------------------------------------------------------------------------
// Information - All
map<string,boost::any> CAlgorithm::getInformation() 
{
	map<string, boost::any> result;
	result["Initialized"] = getInformation("Initialized");
	return result;
};
bool CYPluginApiImplementation::recipientFieldExists(const std::string& fieldName) const
{
    return m_recipientRequester->fieldExists(fieldName, getInformation()->getType());
}