SystemStateMonitorWidget.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * Copyright (C) 2011-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5  *
6  * ArmarX is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  * ArmarX is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * @package ArmarX::Gui
19  * @author Jan Issac ( jan.issac at gmail dot com)
20  * @date 2012
21  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
22  * GNU General Public License
23  */
24 
26 
28 #include <ArmarXGui/gui-plugins/SystemStateMonitorPlugin/ui_ArmarXManagerRepositoryDialog.h>
30 
32 #include <ArmarXCore/interface/core/ArmarXManagerInterface.h>
34 
35 #include <QStyledItemDelegate>
36 #include <QApplication>
37 #include <QLineEdit>
38 #include <QVector>
39 
40 #include <string>
41 #include <vector>
42 
43 
44 namespace armarx
45 {
46  class PropertyEditingDelegate : public QStyledItemDelegate
47  {
48  public:
49  PropertyEditingDelegate(armarx::ManagerPrxMap* managerPrxMap) : managerPrxMap(managerPrxMap)
50  {
51  }
52 
53  // QAbstractItemDelegate interface
54  QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override
55  {
56  return new QLineEdit(parent);
57  }
58  void setEditorData(QWidget* editor, const QModelIndex& index) const override
59  {
60  QLineEdit* lineEdit = qobject_cast<QLineEdit*>(editor);
61  if (lineEdit)
62  {
63  QString propValue = index.data().toString();
64  propValue.remove(0, propValue.indexOf(":") + 2);
65  QString propName = index.data().toString();
66 
67  propName.truncate(propName.indexOf(":") - 1);
68  lineEdit->setText(propValue);
69  lineEdit->setProperty("propertyName", propName);
70  }
71  }
72  void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const override
73  {
74  QLineEdit* lineEdit = qobject_cast<QLineEdit*>(editor);
75  if (lineEdit)
76  {
77  model->setData(index, lineEdit->property("propertyName").toString() + " : " + lineEdit->text());
78  auto it = managerPrxMap->find(index.parent().parent().parent().data().toString());
79  if (it != managerPrxMap->end())
80  {
81  armarx::ArmarXManagerInterfacePrx prx = it->second;
82  prx->getPropertiesAdmin()->ice_collocationOptimized(false)->setProperties({{
83  lineEdit->property("propertyName").toString().toStdString(),
84  lineEdit->text().toStdString()
85  }
86  });
87  }
88  }
89  }
90  private:
91  armarx::ManagerPrxMap* managerPrxMap;
92  };
93 
94 
95 
96 
97 
99  {
100  setupModel();
101  setupView();
102  qRegisterMetaType<StateUpdateMap>("StateUpdateMap");
103  qRegisterMetaType<ArmarXManagerItem::ManagerDataMap>("ArmarXManagerItem::ManagerDataMap");
104  qRegisterMetaType<ArmarXManagerItem::ManagerData>("ArmarXManagerItem::ManagerData");
105  qRegisterMetaType<ManagerPrxMap>("ManagerPrxMap");
106 
107 
108  filterExpansionTimer.setSingleShot(true);
109  connect(&filterExpansionTimer, SIGNAL(timeout()), this, SLOT(delayedFilterExpansion()));
110  connect(ui.btnProblematicOnly, SIGNAL(toggled(bool)), this, SLOT(on_btnProblematicOnly_toggled(bool)), Qt::UniqueConnection);
111 
112  fillLegendLayout(ui.colorLegendLayout, *monitoredManagerModel);
113  }
114 
115 
117  {
118  // stateUpdateTimer->stop();
119  if (stateUpdateTask)
120  {
121  stateUpdateTask->stop();
122  }
123 
124  delete managerRepositoryModel;
125  delete monitoredManagerModel;
126  // delete stateUpdateTimer;
127  }
128 
130  {
131  managerRepositoryModel = new ArmarXManagerModel();
132  monitoredManagerModel = new ArmarXManagerModel();
133  }
134 
135 
137  {
138  ui.setupUi(getWidget());
139 
140  managerRepositoryDialog = new ArmarXManagerRepositoryDialog(
141  managerRepositoryModel,
142  monitoredManagerModel,
143  getWidget());
144  managerRepositoryDialog->setModal(true);
145  connect(managerRepositoryDialog, SIGNAL(accepted()), this, SLOT(acceptConfig()));
146  connect(managerRepositoryDialog, SIGNAL(requestedManagerScan()), this, SLOT(retrieveOnlineManagers()));
147  ui.monitoredManagersTree->setItemDelegate(new PropertyEditingDelegate(&currentManagerPrxMap));
148  filterModel = new InfixFilterModel(this);
149  filterModel->addCustomFilter([this](QAbstractItemModel * model, int source_row, const QModelIndex & source_parent)
150  {
151  QModelIndex index0 = model->index(source_row, 0, source_parent);
152  if (this->ui.btnProblematicOnly->isChecked())
153  {
154  auto variant = index0.data((int)ArmarXManagerModel::UserDataRoles::ComponentStarted);
155  auto variantDependency = index0.data((int)ArmarXManagerModel::UserDataRoles::ResolvedDependency);
156  if (
157  variant.isValid())
158  {
159  // ARMARX_INFO << "Checking entry: " << index0.data().toString() << " val: " << variant.toBool() << " param: " << hideResolvedComponents;
160  if (variant.toBool())
161  {
162  // ARMARX_INFO << "Resolve: Hiding " << index0.data().toString();
163  return false;
164  }
165  }
166  if (variantDependency.isValid())
167  {
168  if (variantDependency.toBool())
169  {
170  return false;
171  }
172  }
173  if (!variant.isValid() && !variantDependency.isValid())
174  {
175  return false;
176  }
177  // ARMARX_INFO << "Showing entry: " << index0.data().toString() << " state: " <<
178  // (variantDependency.isValid() ? std::to_string(variantDependency.toBool()) : "none")
179  // << " - " << (variant.isValid() ? std::to_string(variant.toBool()) : "none");
180  }
181 
182  return true;
183  });
184  filterModel->setSourceModel(monitoredManagerModel);
185  filterModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
186  ui.monitoredManagersTree->setModel(filterModel);
187 
188  connect(ui.lineEditFilter, SIGNAL(textChanged(QString)), filterModel, SLOT(setFilterFixedString(QString)));
189  connect(ui.lineEditFilter, SIGNAL(textChanged(QString)), this, SLOT(expandFilterSelection(QString)), Qt::QueuedConnection);
190 
191  connect(ui.configureButton, SIGNAL(clicked()), this, SLOT(openManagerRepositoryDialog()));
192 
193  connect(this, SIGNAL(updateManagerStatesSignal(ArmarXManagerItem::ManagerDataMap)), this, SLOT(updateManagerStates(ArmarXManagerItem::ManagerDataMap)));
194 
195  // stateUpdateTimer->start();
196  }
197 
198 
199  void SystemStateMonitorWidget::loadSettings(QSettings* settings)
200  {
201  managerRepositoryModel->populate(
202  settings->value("ManagerRepository").toStringList());
203 
204  monitoredManagerModel->populate(
205  settings->value("MonitoredManagers").toStringList());
206  ui.monitoredManagersTree->expandToDepth(1);
207  }
208 
209 
210  void SystemStateMonitorWidget::saveSettings(QSettings* settings)
211  {
212  settings->setValue("ManagerRepository",
213  managerRepositoryModel->toStringList());
214 
215  settings->setValue("MonitoredManagers",
216  monitoredManagerModel->toStringList());
217  }
218 
219 
220  void SystemStateMonitorWidget::onInitComponent()
221  {
222  monitoredManagerModel->setIceManager(getIceManager());
223  managerRepositoryModel->setIceManager(getIceManager());
224  }
225 
226 
227  void SystemStateMonitorWidget::onConnectComponent()
228  {
229  stateUpdateTask = new PeriodicTask<SystemStateMonitorWidget>(this, &SystemStateMonitorWidget::updateManagerObjectsState, 500, false, "SystemStateMonitorUpdate");
230  stateUpdateTask->setDelayWarningTolerance(5000);
231  stateUpdateTask->start();
232  if (monitoredManagerModel->empty()) // only if fresh connect without preconfig
233  {
234  prefillView();
235  }
236  else
237  {
238  std::unique_lock lock(managerPrxMapMutex);
239  currentManagerPrxMap = monitoredManagerModel->getManagerProxyMap();
240  }
241  }
242 
243  void SystemStateMonitorWidget::onDisconnectComponent()
244  {
245  if (stateUpdateTask)
246  {
247  stateUpdateTask->stop();
248  }
249 
250  }
251 
252  void SystemStateMonitorWidget::onExitComponent()
253  {
254  if (stateUpdateTask)
255  {
256  stateUpdateTask->stop();
257  }
258  }
259 
260 
261  void SystemStateMonitorWidget::updateManagerStates(const ArmarXManagerItem::ManagerDataMap& managerData)
262  {
263  CHECK_QT_THREAD(getWidget());
264 
265  std::unique_lock lock(monitoredManagerModel->getMutex());
266 
267  monitoredManagerModel->updateManagerDetails(managerData);
268  filterModel->invalidate();
269  }
270 
271  bool SystemStateMonitorWidget::retrieveManagerData(ArmarXManagerInterfacePrx prx, ArmarXManagerItem::ManagerData& managerData)
272  {
273  CHECK_NOT_QT_THREAD(getWidget());
274  bool result = false;
275  try
276  {
277  managerData.proxy = prx;
278  prx = prx->ice_timeout(1000);
279  managerData.name = QString::fromStdString(prx->ice_getIdentity().name);
280  managerData.appProperties = prx->getApplicationPropertyInfos();
281  result &= retrieveManagerObjectsState(prx, managerData.objects);
282  try
283  {
284  managerData.connection = prx->ice_collocationOptimized(false)->ice_getConnection();
285  managerData.endpointStr = managerData.connection ? QString::fromStdString(managerData.connection->getEndpoint()->toString()) : "Endpoint: no connection data";
286  }
287 
288  catch (const IceUtil::Exception& ex)
289  {
290  // ARMARX_INFO << deactivateSpam(5, managerData.name.toStdString()) << "Failed to get connection info for " << managerData.name.toStdString();
291  managerData.endpointStr = QString::fromStdString("? (" + std::string(ex.ice_id()) + ")");
292  }
293  managerData.online = true;
294  }
295  catch (...)
296  {
297  managerData.online = false;
298  result = false;
299  }
300  return result;
301  }
302 
303  bool SystemStateMonitorWidget::retrieveManagerObjectsState(ArmarXManagerInterfacePrx prx, ArmarXManagerItem::ObjectMap& objectStates)
304  {
305  CHECK_NOT_QT_THREAD(getWidget());
306  // get proxy if not set
307  // update existence state
308  try
309  {
310  prx->ice_timeout(200)->ice_ping();
311  // item->setOnline(true);
312  }
313  catch (...)
314  {
315  return false;
316  }
317 
318  // actual retrieval
319  Ice::StringSeq objectNames = prx->getManagedObjectNames();
320 
321  for (auto& objectName : objectNames)
322  {
323  ManagedIceObjectItem objEntry;
324  objEntry.name = objectName.c_str();
325  objEntry.state = prx->getObjectState(objectName);
326  objEntry.connectivity = prx->getObjectConnectivity(objectName);
327  objEntry.properties = prx->getObjectPropertyInfos(objectName);
328  try
329  {
330  objEntry.metaInfoMap = prx->getMetaInfo(objectName);
331  }
332  catch (...)
333  {
334  ARMARX_INFO << deactivateSpam(1000, objectName) << "Failed to get meta info for " << objectName;
335  }
336  objectStates[objEntry.name] = (objEntry);
337  }
338 
339  return true;
340  }
341 
342  void SystemStateMonitorWidget::updateManagerObjectsState()
343  {
344 
345  // std::unique_lock lock(monitoredManagerModel->getMutex());
346  // StateUpdateMap stateMap;
347  ArmarXManagerItem::ManagerDataMap managerDataMap;
348  {
349  decltype(currentManagerPrxMap) proxies;
350  {
351  std::unique_lock lock(managerPrxMapMutex);
352  proxies = currentManagerPrxMap;
353  }
354  IceUtil::Time start = IceUtil::Time::now();
355  for (auto it = proxies.begin(); it != proxies.end(); it++)
356  {
358  bool online = retrieveManagerObjectsState(it->second, stateMap);
359  managerDataMap[it->first].online = online;
360  managerDataMap[it->first].name = it->first;
361  managerDataMap[it->first].objects = stateMap;
362  if (online)
363  {
364  managerDataMap[it->first].appProperties = it->second->getApplicationPropertyInfos();
365  }
366  retrieveManagerData(it->second, managerDataMap[it->first]);
367  }
368  ARMARX_DEBUG << "update duration: " << (IceUtil::Time::now() - start).toMilliSecondsDouble();
369  }
370 
371  emit updateManagerStatesSignal(managerDataMap);
372  }
373 
374  void SystemStateMonitorWidget::acceptConfig()
375  {
376  this->managerRepositoryModel->copyFrom(
377  managerRepositoryDialog->getManagerRepositoryModel());
378 
379  this->monitoredManagerModel->copyFrom(
380  managerRepositoryDialog->getMonitoredManagersModel());
381  ui.monitoredManagersTree->expandToDepth(1);
382  std::unique_lock lock(managerPrxMapMutex);
383  currentManagerPrxMap = monitoredManagerModel->getManagerProxyMap();
384  }
385 
386  QStringList SystemStateMonitorWidget::fetchOnlineManagers()
387  {
388  enableMainWidgetAsync(false);
389  auto admin = getIceManager()->getIceGridSession()->getAdmin();
390  ARMARX_INFO << "Getting managers";
391  IceGrid::ObjectInfoSeq objects = admin->getAllObjectInfos("*Manager");
392  ARMARX_INFO << "Got new managers";
393  IceGrid::ObjectInfoSeq::iterator iter = objects.begin();
394  IceGrid::ObjectInfoSeq result;
395 
396  while (iter != objects.end())
397  {
398  Ice::ObjectPrx current = iter->proxy;
399 
400  ArmarXManagerInterfacePrx object;
401 
402  // if objects are hanging we might get connection refused
403  try
404  {
405  object = ArmarXManagerInterfacePrx::checkedCast(current->ice_timeout(60));
406  }
407  catch (...)
408  {
409  ARMARX_INFO << current->ice_getIdentity().name << ": " << GetHandledExceptionString();
410  // remove dead objects
411  admin->removeObject(current->ice_getIdentity());
412  }
413  qApp->processEvents();
414 
415  if (object)
416  {
417  result.push_back(*iter);
418  }
419 
420  ++iter;
421  }
422  ARMARX_INFO << "Iterated through online managers";
423  enableMainWidgetAsync(true);
424 
425  QStringList managers;
426  for (const IceGrid::ObjectInfo& info : result)
427  {
428  managers.append(info.proxy->ice_getIdentity().name.c_str());
429  }
430 
431  return managers;
432  }
433 
434 
435  void SystemStateMonitorWidget::retrieveOnlineManagers()
436  {
437  managerRepositoryDialog->addOnlineManagers(fetchOnlineManagers());
438  }
439 
440 
441  void SystemStateMonitorWidget::openManagerRepositoryDialog()
442  {
443  managerRepositoryDialog->getManagerRepositoryModel()->copyFrom(
444  managerRepositoryModel);
445 
446  managerRepositoryDialog->getMonitoredManagersModel()->copyFrom(
447  monitoredManagerModel);
448 
449  retrieveOnlineManagers();
450 
451  managerRepositoryDialog->show();
452  }
453 
454 
455  void SystemStateMonitorWidget::prefillView()
456  {
457  managerRepositoryModel->clear();
458  monitoredManagerModel->clear();
459 
460  QStringList managers = fetchOnlineManagers();
461  // enableMainWidgetAsync(false);
462  // ARMARX_INFO << "Got managers";
463  // QMetaObject::invokeMethod(this, "addArmarXManagers", Q_ARG(QStringList, managers));
464  addArmarXManagers(managers);
465  QMetaObject::invokeMethod(ui.monitoredManagersTree, "expandToDepth", Q_ARG(int, 0));
466  std::unique_lock lock(managerPrxMapMutex);
467  currentManagerPrxMap = monitoredManagerModel->getManagerProxyMap(managers);
468 
469  }
470 
471 
472  void SystemStateMonitorWidget::addArmarXManagerEntries(ManagerPrxMap managers)
473  {
474  CHECK_QT_THREAD(getWidget());
475 
476  ARMARX_INFO << "Adding managers";
477  for (auto& pair : managers)
478  {
479  ArmarXManagerItem* item = new ArmarXManagerItem(pair.first);
480  item->setManagerProxy(pair.second);
481  monitoredManagerModel->appendRow(item);
482  }
483  ARMARX_INFO << "epanding managers";
484  ui.monitoredManagersTree->expandToDepth(1);
485 
486  }
487 
488  void SystemStateMonitorWidget::addArmarXManagers(QStringList managerNames)
489  {
490  // ARMARX_IMPORTANT << this->rowCount();
491  for (auto& name : managerNames)
492  {
493  try
494  {
496  data.name = name;
497  ARMARX_DEBUG << name.toStdString();
498  auto proxy = getIceManager()->getProxy<ArmarXManagerInterfacePrx>(name.toStdString());
499  retrieveManagerData(proxy, data);
500  QMetaObject::invokeMethod(monitoredManagerModel, "upsertManagerDetails", Q_ARG(ArmarXManagerItem::ManagerData, data));
501  ARMARX_DEBUG << name.toStdString() << " done";
502  }
503  catch (...)
504  {
506  }
507  }
508  }
509 
510  void SystemStateMonitorWidget::expandFilterSelection(QString filterStr)
511  {
512  ARMARX_DEBUG_S << VAROUT(filterStr);
513  if (filterStr.length() == 0)
514  {
515  ui.monitoredManagersTree->collapseAll();
516  // ui.monitoredManagersTree->expandToDepth(1);
517  }
518  else
519  {
520  filterExpansionTimer.start(500);
521  }
522  }
523 
524  void SystemStateMonitorWidget::delayedFilterExpansion()
525  {
526  CHECK_QT_THREAD(getWidget());
527 
528  InfixFilterModel::ExpandFilterResults(ui.monitoredManagersTree);
529  }
530 
531  void armarx::SystemStateMonitorWidget::on_btnProblematicOnly_toggled(bool checked)
532  {
534 
535  // filterModel->setHideResolvedComponents(checked);
536  filterModel->invalidate();
537  InfixFilterModel::ExpandFilterResults(ui.monitoredManagersTree);
538  }
539 
540  void SystemStateMonitorWidget::fillLegendLayout(QHBoxLayout* layout, ArmarXManagerModel& model) const
541  {
542  auto addLegendEntry = [layout, &model](ManagedIceObjectState state, const QString& text)
543  {
544  QLabel* label = new QLabel(text);
545  {
546  QBrush brush = model.getBrush(state);
547  QPalette p = label->palette();
548  p.setColor(label->backgroundRole(), brush.color());
549  label->setPalette(p);
550  label->setAutoFillBackground(true);
551  }
552  {
553  QFont font = label->font();
554  font.setPointSize(10);
555  label->setFont(font);
556  }
557  layout->addWidget(label);
558  };
559 
560  addLegendEntry(armarx::eManagedIceObjectCreated, "Created");
561  addLegendEntry(armarx::eManagedIceObjectInitializing, "Initializing");
562  addLegendEntry(armarx::eManagedIceObjectInitialized, "Initialized");
563  addLegendEntry(armarx::eManagedIceObjectInitializationFailed, "Initialization Failed");
564  addLegendEntry(armarx::eManagedIceObjectStarting, "Connecting");
565  addLegendEntry(armarx::eManagedIceObjectStarted, "Connected");
566  addLegendEntry(armarx::eManagedIceObjectStartingFailed, "Connecting Failed");
567  addLegendEntry(armarx::eManagedIceObjectExiting, "Exiting");
568  addLegendEntry(armarx::eManagedIceObjectExited, "Exited");
569  }
570 
572  {
573  return hideResolvedComponents;
574  }
575 
577  {
579  }
580 }
armarx::ManagedIceObjectItem::name
QString name
Definition: ManagedIceObjectItem.h:47
armarx::PropertyEditingDelegate::setEditorData
void setEditorData(QWidget *editor, const QModelIndex &index) const override
Definition: SystemStateMonitorWidget.cpp:58
armarx::ArmarXManagerItem::ManagerData::appProperties
ObjectPropertyInfos appProperties
Definition: ArmarXManagerItem.h:52
index
uint8_t index
Definition: EtherCATFrame.h:59
armarx::ManagedIceObjectItem::properties
ObjectPropertyInfos properties
Definition: ManagedIceObjectItem.h:50
armarx::PropertyEditingDelegate::setModelData
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
Definition: SystemStateMonitorWidget.cpp:72
armarx::ArmarXManagerModel
Definition: ArmarXManagerModel.h:47
armarx::ArmarXManagerRepositoryDialog
Definition: ArmarXManagerRepositoryDialog.h:46
armarx::ManagedIceObjectItem::state
ManagedIceObjectState state
Definition: ManagedIceObjectItem.h:48
InfixFilterModel.h
armarx::ArmarXManagerItem::ManagerData::proxy
ArmarXManagerInterfacePrx proxy
Definition: ArmarXManagerItem.h:50
armarx::ArmarXManagerItem::ManagerData::online
bool online
Definition: ArmarXManagerItem.h:49
armarx::ManagedIceObjectItem::metaInfoMap
StringVariantBaseMap metaInfoMap
Definition: ManagedIceObjectItem.h:52
armarx::SystemStateMonitorFilterModel::setHideResolvedComponents
void setHideResolvedComponents(bool value)
Definition: SystemStateMonitorWidget.cpp:576
deactivateSpam
SpamFilterDataPtr deactivateSpam(SpamFilterDataPtr const &spamFilter, float deactivationDurationSec, const std::string &identifier, bool deactivate)
Definition: Logging.cpp:72
armarx::GetHandledExceptionString
std::string GetHandledExceptionString()
Definition: Exception.cpp:147
armarx::PropertyEditingDelegate::createEditor
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Definition: SystemStateMonitorWidget.cpp:54
cxxopts::value
std::shared_ptr< Value > value()
Definition: cxxopts.hpp:926
armarx::ArmarXManagerItem::ManagerData::name
QString name
Definition: ArmarXManagerItem.h:48
ARMARX_DEBUG_S
#define ARMARX_DEBUG_S
Definition: Logging.h:198
if
if(!yyvaluep)
Definition: Grammar.cpp:724
armarx::SystemStateMonitorWidget::setupModel
void setupModel()
Model setup.
Definition: SystemStateMonitorWidget.cpp:129
data
uint8_t data[1]
Definition: EtherCATFrame.h:68
ARMARX_DEBUG
#define ARMARX_DEBUG
Definition: Logging.h:177
armarx::InfixFilterModel::ExpandFilterResults
static void ExpandFilterResults(QTreeView *treeView)
Expands the treeview that all items that match the filterstring are expanded and directly visible.
Definition: InfixFilterModel.cpp:63
armarx::SystemStateMonitorWidget::setupView
void setupView()
View setup.
Definition: SystemStateMonitorWidget.cpp:136
armarx::ArmarXManagerItem::ManagerDataMap
std::map< QString, ManagerData > ManagerDataMap
Definition: ArmarXManagerItem.h:56
armarx::SystemStateMonitorWidget::acceptConfig
void acceptConfig()
Accept config changes.
Definition: SystemStateMonitorWidget.cpp:374
IceGridAdmin.h
armarx::armem::Time
armarx::core::time::DateTime Time
Definition: forward_declarations.h:13
armarx::ArmarXManagerItem::ManagerData::objects
ObjectMap objects
Definition: ArmarXManagerItem.h:51
armarx::ArmarXManagerItem::ManagerData::connection
Ice::ConnectionPtr connection
Definition: ArmarXManagerItem.h:53
option
#define option(type, fn)
CoreObjectFactories.h
SystemStateMonitorWidget.h
CHECK_QT_THREAD
#define CHECK_QT_THREAD(qtObject)
Macro to check whether the current function is executed in the thread of the given Qt object.
Definition: QtUtil.h:30
armarx::SystemStateMonitorFilterModel::getHideResolvedComponents
bool getHideResolvedComponents() const
Definition: SystemStateMonitorWidget.cpp:571
ARMARX_INFO
#define ARMARX_INFO
Definition: Logging.h:174
armarx::ArmarXManagerItem::ObjectMap
QMap< QString, ManagedIceObjectItem > ObjectMap
Definition: ArmarXManagerItem.h:44
VAROUT
#define VAROUT(x)
Definition: StringHelpers.h:182
armarx::ManagedIceObjectItem::connectivity
ManagedIceObjectConnectivity connectivity
Definition: ManagedIceObjectItem.h:49
armarx::PropertyEditingDelegate::PropertyEditingDelegate
PropertyEditingDelegate(armarx::ManagerPrxMap *managerPrxMap)
Definition: SystemStateMonitorWidget.cpp:49
QtUtil.h
armarx::ManagerPrxMap
std::map< QString, ArmarXManagerInterfacePrx > ManagerPrxMap
Definition: ArmarXManagerModel.h:46
armarx::viz::toString
const char * toString(InteractionFeedbackType type)
Definition: Interaction.h:27
armarx::PropertyEditingDelegate
Definition: SystemStateMonitorWidget.cpp:46
armarx::SystemStateMonitorFilterModel::hideResolvedComponents
bool hideResolvedComponents
Definition: SystemStateMonitorWidget.h:257
armarx::ArmarXManagerItem::ManagerData
Definition: ArmarXManagerItem.h:46
armarx::InfixFilterModel
This proxy model reimplements the filterAcceptsRow function with a new behavior: All elements that fi...
Definition: InfixFilterModel.h:41
armarx::ArmarXWidgetController::getWidget
virtual QPointer< QWidget > getWidget()
getWidget returns a pointer to the a widget of this controller.
Definition: ArmarXWidgetController.cpp:54
armarx::PeriodicTask
Definition: ArmarXManager.h:70
CHECK_NOT_QT_THREAD
#define CHECK_NOT_QT_THREAD(qtObject)
Definition: QtUtil.h:33
armarx::handleExceptions
void handleExceptions()
Definition: Exception.cpp:141
armarx::SystemStateMonitorWidget::~SystemStateMonitorWidget
~SystemStateMonitorWidget() override
Definition: SystemStateMonitorWidget.cpp:116
armarx::ArmarXManagerItem::ManagerData::endpointStr
QString endpointStr
Definition: ArmarXManagerItem.h:54
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:28
armarx::ManagedIceObjectItem
Definition: ManagedIceObjectItem.h:37
armarx::SystemStateMonitorWidget::retrieveOnlineManagers
void retrieveOnlineManagers()
Retrieves the online managers.
Definition: SystemStateMonitorWidget.cpp:435
armarx::SystemStateMonitorWidget::SystemStateMonitorWidget
SystemStateMonitorWidget()
Definition: SystemStateMonitorWidget.cpp:98