#ifndef DATE_TIME_TIME_ZONE_NAMES_HPP__ #define DATE_TIME_TIME_ZONE_NAMES_HPP__ /* Copyright (c) 2002-2003,2005 CrystalClear Software, Inc. * Use, modification and distribution is subject to the * Boost Software License, Version 1.0. (See accompanying * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) * Author: Jeff Garland * $Date: 2008-02-27 12:00:24 -0800 (Wed, 27 Feb 2008) $ */ #include namespace boost { namespace date_time { template struct default_zone_names { public: typedef CharT char_type; static const char_type standard_name[9]; static const char_type standard_abbrev[11]; static const char_type non_dst_identifier[7]; }; template const typename default_zone_names::char_type default_zone_names::standard_name[9] = {'s','t','d','_','n','a','m','e'}; template const typename default_zone_names::char_type default_zone_names::standard_abbrev[11] = {'s','t','d','_','a','b','b','r','e','v'}; template const typename default_zone_names::char_type default_zone_names::non_dst_identifier[7] = {'n','o','-','d','s','t'}; //! Base type that holds various string names for timezone output. /*! Class that holds various types of strings used for timezones. * For example, for the western United States there is the full * name: Pacific Standard Time and the abbreviated name: PST. * During daylight savings there are additional names: * Pacific Daylight Time and PDT. *@parm CharT Allows class to support different character types */ template class time_zone_names_base { public: typedef std::basic_string string_type; time_zone_names_base() : std_zone_name_(default_zone_names::standard_name), std_zone_abbrev_(default_zone_names::standard_abbrev), dst_zone_name_(default_zone_names::non_dst_identifier), dst_zone_abbrev_(default_zone_names::non_dst_identifier) {} time_zone_names_base(const string_type& std_zone_name_str, const string_type& std_zone_abbrev_str, const string_type& dst_zone_name_str, const string_type& dst_zone_abbrev_str) : std_zone_name_(std_zone_name_str), std_zone_abbrev_(std_zone_abbrev_str), dst_zone_name_(dst_zone_name_str), dst_zone_abbrev_(dst_zone_abbrev_str) {} string_type dst_zone_abbrev() const { return dst_zone_abbrev_; } string_type std_zone_abbrev() const { return std_zone_abbrev_; } string_type dst_zone_name() const { return dst_zone_name_; } string_type std_zone_name() const { return std_zone_name_; } private: string_type std_zone_name_; string_type std_zone_abbrev_; string_type dst_zone_name_; string_type dst_zone_abbrev_; }; //! Specialization of timezone names for standard char. //typedef time_zone_names_base time_zone_names; } } //namespace #endif