(root)/
glib-2.79.0/
glib/
gtimezone.h
       1  /*
       2   * Copyright © 2010 Codethink Limited
       3   *
       4   * SPDX-License-Identifier: LGPL-2.1-or-later
       5   *
       6   * This library is free software; you can redistribute it and/or
       7   * modify it under the terms of the GNU Lesser General Public
       8   * License as published by the Free Software Foundation; either
       9   * version 2.1 of the License, or (at your option) any later version.
      10   *
      11   * This library is distributed in the hope that it will be useful, but
      12   * WITHOUT ANY WARRANTY; without even the implied warranty of
      13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      14   * Lesser General Public License for more details.
      15   *
      16   * You should have received a copy of the GNU Lesser General Public
      17   * License along with this library; if not, see <http://www.gnu.org/licenses/>.
      18   *
      19   * Author: Ryan Lortie <desrt@desrt.ca>
      20   */
      21  
      22  #ifndef __G_TIME_ZONE_H__
      23  #define __G_TIME_ZONE_H__
      24  
      25  #if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
      26  #error "Only <glib.h> can be included directly."
      27  #endif
      28  
      29  #include <glib/gerror.h>
      30  #include <glib/gtypes.h>
      31  
      32  G_BEGIN_DECLS
      33  
      34  typedef struct _GTimeZone GTimeZone;
      35  
      36  /**
      37   * GTimeType:
      38   * @G_TIME_TYPE_STANDARD: the time is in local standard time
      39   * @G_TIME_TYPE_DAYLIGHT: the time is in local daylight time
      40   * @G_TIME_TYPE_UNIVERSAL: the time is in UTC
      41   *
      42   * Disambiguates a given time in two ways.
      43   *
      44   * First, specifies if the given time is in universal or local time.
      45   *
      46   * Second, if the time is in local time, specifies if it is local
      47   * standard time or local daylight time.  This is important for the case
      48   * where the same local time occurs twice (during daylight savings time
      49   * transitions, for example).
      50   */
      51  typedef enum
      52  {
      53    G_TIME_TYPE_STANDARD,
      54    G_TIME_TYPE_DAYLIGHT,
      55    G_TIME_TYPE_UNIVERSAL
      56  } GTimeType;
      57  
      58  GLIB_DEPRECATED_IN_2_68_FOR (g_time_zone_new_identifier)
      59  GTimeZone *             g_time_zone_new                                 (const gchar *identifier);
      60  GLIB_AVAILABLE_IN_2_68
      61  GTimeZone *             g_time_zone_new_identifier                      (const gchar *identifier);
      62  GLIB_AVAILABLE_IN_ALL
      63  GTimeZone *             g_time_zone_new_utc                             (void);
      64  GLIB_AVAILABLE_IN_ALL
      65  GTimeZone *             g_time_zone_new_local                           (void);
      66  GLIB_AVAILABLE_IN_2_58
      67  GTimeZone *             g_time_zone_new_offset                          (gint32       seconds);
      68  
      69  GLIB_AVAILABLE_IN_ALL
      70  GTimeZone *             g_time_zone_ref                                 (GTimeZone   *tz);
      71  GLIB_AVAILABLE_IN_ALL
      72  void                    g_time_zone_unref                               (GTimeZone   *tz);
      73  
      74  GLIB_AVAILABLE_IN_ALL
      75  gint                    g_time_zone_find_interval                       (GTimeZone   *tz,
      76                                                                           GTimeType    type,
      77                                                                           gint64       time_);
      78  
      79  GLIB_AVAILABLE_IN_ALL
      80  gint                    g_time_zone_adjust_time                         (GTimeZone   *tz,
      81                                                                           GTimeType    type,
      82                                                                           gint64      *time_);
      83  
      84  GLIB_AVAILABLE_IN_ALL
      85  const gchar *           g_time_zone_get_abbreviation                    (GTimeZone   *tz,
      86                                                                           gint         interval);
      87  GLIB_AVAILABLE_IN_ALL
      88  gint32                  g_time_zone_get_offset                          (GTimeZone   *tz,
      89                                                                           gint         interval);
      90  GLIB_AVAILABLE_IN_ALL
      91  gboolean                g_time_zone_is_dst                              (GTimeZone   *tz,
      92                                                                           gint         interval);
      93  GLIB_AVAILABLE_IN_2_58
      94  const gchar *           g_time_zone_get_identifier                      (GTimeZone   *tz);
      95  
      96  G_END_DECLS
      97  
      98  #endif /* __G_TIME_ZONE_H__ */