ctkQtMobilityServiceActivator.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. /*
  2. * ctkQtMobilityServiceActivator.cxx
  3. *
  4. * Created on: Mar 29, 2010
  5. * Author: zelzer
  6. */
  7. #include "ctkQtMobilityServiceActivator_p.h"
  8. #include "ctkQtMobilityServiceRuntime_p.h"
  9. #include <ctkServiceTracker.h>
  10. #include <ctkServiceException.h>
  11. #include <service/log/ctkLogService.h>
  12. #include <QtPlugin>
  13. ctkQtMobilityServiceActivator::LogTracker* ctkQtMobilityServiceActivator::logTracker = 0;
  14. void ctkQtMobilityServiceActivator::start(ctkPluginContext* context)
  15. {
  16. logTracker = new LogTracker(context);
  17. logTracker->open();
  18. mobsr = new ctkQtMobilityServiceRuntime(context);
  19. mobsr->start();
  20. }
  21. void ctkQtMobilityServiceActivator::stop(ctkPluginContext* context)
  22. {
  23. Q_UNUSED(context)
  24. if (mobsr)
  25. {
  26. mobsr->stop();
  27. delete mobsr;
  28. mobsr = 0;
  29. }
  30. if (logTracker)
  31. {
  32. logTracker->close();
  33. delete logTracker;
  34. logTracker = 0;
  35. }
  36. }
  37. ctkLogService* ctkQtMobilityServiceActivator::getLogService()
  38. {
  39. if (logTracker == 0)
  40. {
  41. return 0;
  42. }
  43. return logTracker->getService();
  44. }
  45. void ctkQtMobilityServiceActivator::logError(ctkPluginContext* pc, const QString& msg, std::exception* e)
  46. {
  47. logPluginContext(pc, ctkLogService::LOG_ERROR, msg, e);
  48. }
  49. void ctkQtMobilityServiceActivator::logWarning(ctkPluginContext* pc, const QString& msg, std::exception* e)
  50. {
  51. logPluginContext(pc, ctkLogService::LOG_WARNING, msg, e);
  52. }
  53. void ctkQtMobilityServiceActivator::logInfo(ctkPluginContext* pc, const QString& msg, std::exception* e)
  54. {
  55. logPluginContext(pc, ctkLogService::LOG_INFO, msg, e);
  56. }
  57. void ctkQtMobilityServiceActivator::logPluginContext(ctkPluginContext* pc, int level, const QString& msg, const std::exception* e)
  58. {
  59. try
  60. {
  61. ctkServiceReference sr = pc->getServiceReference("ctkLogService");
  62. ctkLogService* log = qobject_cast<ctkLogService*>(pc->getService(sr));
  63. if (log)
  64. {
  65. log->log(level, msg, e);
  66. pc->ungetService(sr);
  67. }
  68. }
  69. catch (const ctkServiceException&)
  70. { }
  71. }
  72. Q_EXPORT_PLUGIN2(org_commontk_qtmobility_service, ctkQtMobilityServiceActivator)