Coverage Report

Created: 2026-06-10 06:26

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/cctz/src/time_zone_if.cc
Line
Count
Source
1
// Copyright 2016 Google Inc. All Rights Reserved.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//   https://www.apache.org/licenses/LICENSE-2.0
8
//
9
//   Unless required by applicable law or agreed to in writing, software
10
//   distributed under the License is distributed on an "AS IS" BASIS,
11
//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
//   See the License for the specific language governing permissions and
13
//   limitations under the License.
14
15
#include "time_zone_if.h"
16
#include "time_zone_info.h"
17
#include "time_zone_libc.h"
18
19
namespace cctz {
20
21
1
std::unique_ptr<TimeZoneIf> TimeZoneIf::UTC() {
22
1
  return TimeZoneInfo::UTC();
23
1
}
24
25
923
std::unique_ptr<TimeZoneIf> TimeZoneIf::Make(const std::string& name) {
26
  // Support "libc:localtime" and "libc:*" to access the legacy
27
  // localtime and UTC support respectively from the C library.
28
  // NOTE: The "libc:*" zones are internal, test-only interfaces, and
29
  // are subject to change/removal without notice. Do not use them.
30
923
  if (name.compare(0, 5, "libc:") == 0) {
31
188
    return TimeZoneLibC::Make(name.substr(5));
32
188
  }
33
34
  // Otherwise use the "zoneinfo" implementation.
35
735
  return TimeZoneInfo::Make(name);
36
923
}
37
38
// Defined out-of-line to avoid emitting a weak vtable in all TUs.
39
379
TimeZoneIf::~TimeZoneIf() {}
40
41
}  // namespace cctz