LogHandlerConfig.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. * Copyright 2017-present Facebook, Inc.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #include <folly/logging/LogHandlerConfig.h>
  17. #include <folly/lang/SafeAssert.h>
  18. using std::string;
  19. namespace folly {
  20. LogHandlerConfig::LogHandlerConfig() {}
  21. LogHandlerConfig::LogHandlerConfig(StringPiece t) : type{t.str()} {}
  22. LogHandlerConfig::LogHandlerConfig(Optional<StringPiece> t)
  23. : type{t.hasValue() ? Optional<string>{t->str()} : Optional<string>{}} {}
  24. LogHandlerConfig::LogHandlerConfig(StringPiece t, Options opts)
  25. : type{t.str()}, options{std::move(opts)} {}
  26. LogHandlerConfig::LogHandlerConfig(Optional<StringPiece> t, Options opts)
  27. : type{t.hasValue() ? Optional<string>{t->str()} : Optional<string>{}},
  28. options{std::move(opts)} {}
  29. void LogHandlerConfig::update(const LogHandlerConfig& other) {
  30. FOLLY_SAFE_DCHECK(
  31. !other.type.hasValue(), "LogHandlerConfig type cannot be updated");
  32. for (const auto& option : other.options) {
  33. options[option.first] = option.second;
  34. }
  35. }
  36. bool LogHandlerConfig::operator==(const LogHandlerConfig& other) const {
  37. return type == other.type && options == other.options;
  38. }
  39. bool LogHandlerConfig::operator!=(const LogHandlerConfig& other) const {
  40. return !(*this == other);
  41. }
  42. } // namespace folly