time_zone_libc.h
Go to the documentation of this file.
00001 // Copyright 2016 Google Inc. All Rights Reserved.
00002 //
00003 // Licensed under the Apache License, Version 2.0 (the "License");
00004 // you may not use this file except in compliance with the License.
00005 // You may obtain a copy of the License at
00006 //
00007 //   https://www.apache.org/licenses/LICENSE-2.0
00008 //
00009 //   Unless required by applicable law or agreed to in writing, software
00010 //   distributed under the License is distributed on an "AS IS" BASIS,
00011 //   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00012 //   See the License for the specific language governing permissions and
00013 //   limitations under the License.
00014 
00015 #ifndef ABSL_TIME_INTERNAL_CCTZ_TIME_ZONE_LIBC_H_
00016 #define ABSL_TIME_INTERNAL_CCTZ_TIME_ZONE_LIBC_H_
00017 
00018 #include <string>
00019 
00020 #include "time_zone_if.h"
00021 
00022 namespace absl {
00023 namespace time_internal {
00024 namespace cctz {
00025 
00026 // A time zone backed by gmtime_r(3), localtime_r(3), and mktime(3),
00027 // and which therefore only supports UTC and the local time zone.
00028 // TODO: Add support for fixed offsets from UTC.
00029 class TimeZoneLibC : public TimeZoneIf {
00030  public:
00031   explicit TimeZoneLibC(const std::string& name);
00032 
00033   // TimeZoneIf implementations.
00034   time_zone::absolute_lookup BreakTime(
00035       const time_point<seconds>& tp) const override;
00036   time_zone::civil_lookup MakeTime(
00037       const civil_second& cs) const override;
00038   bool NextTransition(const time_point<seconds>& tp,
00039                       time_zone::civil_transition* trans) const override;
00040   bool PrevTransition(const time_point<seconds>& tp,
00041                       time_zone::civil_transition* trans) const override;
00042   std::string Version() const override;
00043   std::string Description() const override;
00044 
00045  private:
00046   const bool local_;  // localtime or UTC
00047 };
00048 
00049 }  // namespace cctz
00050 }  // namespace time_internal
00051 }  // namespace absl
00052 
00053 #endif  // ABSL_TIME_INTERNAL_CCTZ_TIME_ZONE_LIBC_H_


abseil_cpp
Author(s):
autogenerated on Wed Jun 19 2019 19:42:15