local_flags.cpp 803 B

1234567891011121314151617181920212223242526272829303132
  1. #include "local_flags.h"
  2. #include <util/stream/str.h>
  3. #include <util/string/printf.h>
  4. using namespace NBus;
  5. using namespace NBus::NPrivate;
  6. TString NBus::NPrivate::LocalFlagSetToString(ui32 flags0) {
  7. if (flags0 == 0) {
  8. return "0";
  9. }
  10. ui32 flags = flags0;
  11. TStringStream ss;
  12. #define P(name, value, ...) \
  13. do \
  14. if (flags & value) { \
  15. if (!ss.Str().empty()) { \
  16. ss << "|"; \
  17. } \
  18. ss << #name; \
  19. flags &= ~name; \
  20. } \
  21. while (false);
  22. MESSAGE_LOCAL_FLAGS_MAP(P)
  23. if (flags != 0) {
  24. return Sprintf("0x%x", unsigned(flags0));
  25. }
  26. return ss.Str();
  27. }