clock_skew_minimization_object.cc 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include "clock_skew_minimization_object.h"
  2. #include "barrier_sync_client.h"
  3. #include "barrier_sync_server.h"
  4. #include "simulator.h"
  5. #include "log.h"
  6. #include "config.hpp"
  7. ClockSkewMinimizationObject::Scheme
  8. ClockSkewMinimizationObject::parseScheme(String scheme)
  9. {
  10. if (scheme == "barrier")
  11. return BARRIER;
  12. else
  13. {
  14. config::Error("Unrecognized clock skew minimization scheme: %s", scheme.c_str());
  15. }
  16. }
  17. ClockSkewMinimizationClient*
  18. ClockSkewMinimizationClient::create(Core* core)
  19. {
  20. Scheme scheme = Sim()->getConfig()->getClockSkewMinimizationScheme();
  21. switch (scheme)
  22. {
  23. case BARRIER:
  24. return new BarrierSyncClient(core);
  25. default:
  26. LOG_PRINT_ERROR("Unrecognized scheme: %u", scheme);
  27. return (ClockSkewMinimizationClient*) NULL;
  28. }
  29. }
  30. ClockSkewMinimizationManager*
  31. ClockSkewMinimizationManager::create()
  32. {
  33. Scheme scheme = Sim()->getConfig()->getClockSkewMinimizationScheme();
  34. switch (scheme)
  35. {
  36. case BARRIER:
  37. return (ClockSkewMinimizationManager*) NULL;
  38. default:
  39. LOG_PRINT_ERROR("Unrecognized scheme: %u", scheme);
  40. return (ClockSkewMinimizationManager*) NULL;
  41. }
  42. }
  43. ClockSkewMinimizationServer*
  44. ClockSkewMinimizationServer::create()
  45. {
  46. Scheme scheme = Sim()->getConfig()->getClockSkewMinimizationScheme();
  47. switch (scheme)
  48. {
  49. case BARRIER:
  50. return new BarrierSyncServer();
  51. default:
  52. LOG_PRINT_ERROR("Unrecognized scheme: %u", scheme);
  53. return (ClockSkewMinimizationServer*) NULL;
  54. }
  55. }
  56. SubsecondTime
  57. ClockSkewMinimizationServer::getGlobalTime(bool upper_bound)
  58. {
  59. LOG_PRINT_ERROR("This clock skew minimization server does not support getGlobalTime");
  60. }