Main Page
Namespaces
Classes
Files
File List
File Members
abseil_cpp
absl
time
internal
cctz
src
time_zone_if.cc
Go to the documentation of this file.
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
absl
{
20
namespace
time_internal {
21
namespace
cctz
{
22
23
std::unique_ptr<TimeZoneIf>
TimeZoneIf::Load
(
const
std::string&
name
) {
24
// Support "libc:localtime" and "libc:*" to access the legacy
25
// localtime and UTC support respectively from the C library.
26
if
(name.compare(0, 5,
"libc:"
) == 0) {
27
return
std::unique_ptr<TimeZoneIf>(
new
TimeZoneLibC
(name.substr(5)));
28
}
29
30
// Otherwise use the "zoneinfo" implementation by default.
31
std::unique_ptr<TimeZoneInfo> tz(
new
TimeZoneInfo
);
32
if
(!tz->Load(name)) tz.reset();
33
return
std::unique_ptr<TimeZoneIf>(tz.release());
34
}
35
36
// Defined out-of-line to avoid emitting a weak vtable in all TUs.
37
TimeZoneIf::~TimeZoneIf
() {}
38
39
}
// namespace cctz
40
}
// namespace time_internal
41
}
// namespace absl
absl::time_internal::cctz
Definition:
internal/cctz/include/cctz/civil_time.h:22
time_zone_libc.h
time_zone_info.h
time_zone_if.h
absl
Definition:
algorithm.h:29
absl::time_internal::cctz::TimeZoneInfo
Definition:
time_zone_info.h:63
absl::time_internal::cctz::TimeZoneIf::~TimeZoneIf
virtual ~TimeZoneIf()
Definition:
time_zone_if.cc:37
name
char name[1]
Definition:
mutex.cc:296
absl::time_internal::cctz::TimeZoneIf::Load
static std::unique_ptr< TimeZoneIf > Load(const std::string &name)
Definition:
time_zone_if.cc:23
absl::time_internal::cctz::TimeZoneLibC
Definition:
time_zone_libc.h:29
abseil_cpp
Author(s):
autogenerated on Wed Jun 19 2019 19:19:58