aboutsummaryrefslogblamecommitdiffstats
path: root/src/interfaces/timedated/timedated-gen.c
blob: 44e8978943c422f49663f8636848671656dd7ef0 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123









                                                                              
                          
















































































































































                                                                                                  

                             






                                                                                                                                                                               
                                                                                                  


       
                             





                  
                                                                                                  


       
                             





                  
                                                                                                  


       
                             





                  
                                                                                                        
 


                                                                 


      
                                                                                 



                        
                                                                                 






                    
                                                                                                      


       
                             





                  
                                                                                                      


       
                             





                  
                                                                                                            
 

                                                                     


      
                                                                                     



                            
                                                                                     






                        
                                                                                                       


       
                             





                  
                                                                                                       


       
                             





                  
                                                                                                       


       
                             





                  
                                                                                                             
 


                                                                      


      
                                                                                      



                            
                                                                                      






                         
                                                                                                 


       
                             





                  
                                                                                                 


       
                             





                  
                                                                                                       
 

                                                                


      
                                                                                



                       
                                                                                






                   
                                                                                           
 



                                                  


      
                                                                                     











                                        
                                                                                      











                                        



























                                                                                                           











                                        

















































































                                                                                                                   
 






                                                      


      
                                                                              



                                          
                                                                    
         
                                                                        






              
                                      





                                                                                                                                                                     
                                         
 
                                                                                   


   
                                           


                                                                                  
                                                                                               




                                                               
                                                                                      


                                                                             
                                                                           
                                                                       


                                                                                   





                               
                      




                                                                                                                                                          
                           
                                       










                                                                                           



                                                                                                                                                

                                                                            

           
                                                                 


                                                        

                                         
                                           


                                                         


                                                                                                                                                      
                                                                                                                                                                                                                                                                                                                                                                                               





                                                                                           
                                                               







                                                                                 

                                             
                                           

                                                         


                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                   





                                                                                           
                                                                   







                                                                  

                                              
                                           


                                                         


                                                                                                                                                              
                                                                                                                                                                                                                                                                                                                                                                                                    





                                                                                           
                                                                    







                                                                                   

                                        
                                           

                                                         


                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                              





                                                                                           
                                                              








                                                                   
                                 







                                                                                                                                                                                                                                 
                                  







                                                                                                                                                                                                                                 









                                                                                                                                                                                                                                 






                                                                                                                                                                                                                                 


























                                                                                                                                                                                                                                 


   

                                           




                                                                                                                            
                                                                                                                                                                                                                                                      



                                                                                                                                           
                                                             
 
                                                                       


   

                                           







                                                                                                                                      
                                                             






                                                             

                                           






                                                                                                                         
                                                                                 




                                                            

                                            







                                                                                                                            
                                                              
 
                                                                        


   

                                            






                                                                                                                         
                                                                              




                                                             
































                                                                                                                        







                                                                                                                     
                                                        
 
                                                                  


   

                                      






                                                                                                               
                                                                        




                                                       

































































































                                                                                                                                          





                                                                                                                                                                                                      
                                                                                                   
  
                                                                                                     

    




                                   






                                          


                                     







                           


                                                                                                                

                                              
                                                                          



                                                                        

                                          














                                                                     




                                                                  




                                                                                                                                                                                             
                                                                                       



                                                                        




                                        






                                                      


                                     













                           



                                                                  





                                                                                                                                                                                                      
                                                                                                       
  
                                                                                                         

    



                                       






                                          

                                     







                           


                                                                                                                    

                                              
                                                                              



                                                                        

                                              














                                                                     



                                                                  




                                                                                                                                                                                                     
                                                                                           



                                                                        



                                            






                                                      

                                     













                           




                                                                  





                                                                                                                                                                                                      
                                                                                                        
  
                                                                                                          

    




                                        






                                          


                                     







                           


                                                                                                                     

                                              
                                                                               



                                                                        

                                               














                                                                     




                                                                  




                                                                                                                                                                                                     
                                                                                            



                                                                        




                                             






                                                      


                                     













                           



                                                                  





                                                                                                                                                                                                      
                                                                                                  
  
                                                                                                    

    



                                  






                                          

                                     







                           


                                                                                                               

                                              
                                                                         



                                                                        

                                         














                                                                     



                                                                  




                                                                                                                                                                                           
                                                                                      



                                                                        



                                       






                                                      

                                     













                           

                                         






                                                                                                                                                                                                                                                                                                                          

                                       






                                                    

                                             






                                                                                                                                                                                                                                                                                                                                  

                                           






                                                    

                                              






                                                                                                                                                                                                                                                                                                                                  

                                            






                                                    

                                        






                                                                                                                                                                                                                                                                                                                        

                                      








                                                                              
                           
  
                                                                                                                        


   
                                

                                   
                                                

   
                                      



               
                                                                                  

                                                 


                                                                                                                 

     

                                                                                                                 


           
                                                    
 
                                                                      
                                         
                                                                             


           
                                                             





                                         

                                                                  














                                                                                               
                                                             





















                                                                                                   
                                                             





                                         

                                                                  





                                                                                              
                                                                                                                       



                            
                                                      










                                         
                                                                                                                                                                   



                                                 
                                                      















                                                                                                  
                                                                            






                                              
                                                                   


                                             
                                                                      






                                                         
                                                                                                                                                                   






                                                              
                                                                                                                                                                                         






                                                                              
                                                                   
 
                                                                      











                                                                                
                                                                    
 
                                                                      











                                                                                















                                                                              
 
                                                                      










                                                                           












































                                                                                       
           
                                                               

                                                 
                                                                       
     
                                                                                                                    

      
                                                                                                


           
                                                                          




                                         


                                                                       

                                           

                                                                                     
 
                                                             

                                                
                                                                            



           
                                                                     
 






                                                                             


   
                                 










                                                                                                                                                                                                          
                                                                                               
  
                                                                                                      

    
                               







                                     
                                                                                                                                                                                                                                                                       


   

                                                                                                            

                                             
                                                                      
  
                                                                                                                   
   

                                      








                                                                                   
                                     




                
                                      










                                                                                                                                                                                                              
                                                                                        
  
                                                                                                                   
   

                                    







                                     
                                                                                                                                                                                                                               
                  
                                     





                
                                         







                                                                           
                                                                                            

                                                                                                                                                                                                      
                                                                                                       
  
                                                                                                              

    
                                       







                                     
                                                                                                                                                                                                                                                                   


   

                                                                                                                    

                                             
                                                                              
  
                                                                                                                   
   

                                              








                                                                                   
                                     




                
                                              






                                                        
                                                                                                 


                                                           
                                                                                                
  
                                                                                                                   
   

                                            







                                     
                                                                                                                                                                                                                           
                  
                                     







                                                                              
                              
  
                                                                                                                           


   
                                   

                                   
                                                   

   
                                         








                                          
                                                  








                                            
                                                                                  













                                                                                            
                                                      

























                                                                                                                             
                                                                            










                                                                                                                                                                               
                                                   







                                            
                                                                                  




                                   
                                                                                                                                                                         
















                                                                                                              
                                                   








                                            
                                                                                  




                                   
                                                                                                                                                                         


















                                                                                                              
                                                                        
 


                                                    



                           
                                                                                                     
 
                                               


                             
                                                                                                       
 
                                                                        


                 
                                                                                              
 
                                                                                  



                                                              
                                                                           
             
                                                                                           
     
                                                                                                


                                                            
                                                                                                                                                                                                                                                                                                       











                                                                          
                                                                       

           
                                                                                     
 
                                                                                  











                                                                        
                                                 

 
                                                                                     
                                                 


                                                                                                                    

     

                                                                                                                    


           
                                                       
 
                                                                               
          
                         






                                                                                                 
                                                                                


           
                                                                



                                    

                                                                               





                                                                 
                                                      
 
                                                                                  
























































                                                                                                                                
                                                                                                                                                                  
























                                                                                                   
                                                          

                                  
                                                                               





                                                                                                 
                                                                                                                                                                          






                                                                                                
                                                                



                        

                                                                               




                                                                                                  
                                                                                                                                                                           







                                                                     
                                                                        

                                                 
                                                                                
     
                                                                                                                                



                                                                 
                                                  


                                                                



                                                                


                    
                                                                      
 
                                                                               







                                                                
                                                                       
 
                                                                               







                                                                 
                                                                     
 
                                                                               






                                                                 











































                                                                               
           
                                                                                




                                              



                                                                          

 
                                                             

                                                           



                                                                                              

                                                
                                                                               



           
                                                                        
 






                                                                                


   
                                    


                                                                                                                                                            
                                                                                   
   

                                       
 
                                                                                      

 



















































































































































































































































































































































































































































































































































































                                                                                                                                                                                                                                                                                           
/*
 * Generated by gdbus-codegen 2.40.0. DO NOT EDIT.
 *
 * The license of this code is the same as for the source it was derived from.
 */

#ifdef HAVE_CONFIG_H
#  include "config.h"
#endif

#include "timedated-gen.h"

#include <string.h>
#ifdef G_OS_UNIX
#  include <gio/gunixfdlist.h>
#endif

typedef struct
{
  GDBusArgInfo parent_struct;
  gboolean use_gvariant;
} _ExtendedGDBusArgInfo;

typedef struct
{
  GDBusMethodInfo parent_struct;
  const gchar *signal_name;
  gboolean pass_fdlist;
} _ExtendedGDBusMethodInfo;

typedef struct
{
  GDBusSignalInfo parent_struct;
  const gchar *signal_name;
} _ExtendedGDBusSignalInfo;

typedef struct
{
  GDBusPropertyInfo parent_struct;
  const gchar *hyphen_name;
  gboolean use_gvariant;
} _ExtendedGDBusPropertyInfo;

typedef struct
{
  GDBusInterfaceInfo parent_struct;
  const gchar *hyphen_name;
} _ExtendedGDBusInterfaceInfo;

typedef struct
{
  const _ExtendedGDBusPropertyInfo *info;
  guint prop_id;
  GValue orig_value; /* the value before the change */
} ChangedProperty;

static void
_changed_property_free (ChangedProperty *data)
{
  g_value_unset (&data->orig_value);
  g_free (data);
}

static gboolean
_g_strv_equal0 (gchar **a, gchar **b)
{
  gboolean ret = FALSE;
  guint n;
  if (a == NULL && b == NULL)
    {
      ret = TRUE;
      goto out;
    }
  if (a == NULL || b == NULL)
    goto out;
  if (g_strv_length (a) != g_strv_length (b))
    goto out;
  for (n = 0; a[n] != NULL; n++)
    if (g_strcmp0 (a[n], b[n]) != 0)
      goto out;
  ret = TRUE;
out:
  return ret;
}

static gboolean
_g_variant_equal0 (GVariant *a, GVariant *b)
{
  gboolean ret = FALSE;
  if (a == NULL && b == NULL)
    {
      ret = TRUE;
      goto out;
    }
  if (a == NULL || b == NULL)
    goto out;
  ret = g_variant_equal (a, b);
out:
  return ret;
}

G_GNUC_UNUSED static gboolean
_g_value_equal (const GValue *a, const GValue *b)
{
  gboolean ret = FALSE;
  g_assert (G_VALUE_TYPE (a) == G_VALUE_TYPE (b));
  switch (G_VALUE_TYPE (a))
    {
      case G_TYPE_BOOLEAN:
        ret = (g_value_get_boolean (a) == g_value_get_boolean (b));
        break;
      case G_TYPE_UCHAR:
        ret = (g_value_get_uchar (a) == g_value_get_uchar (b));
        break;
      case G_TYPE_INT:
        ret = (g_value_get_int (a) == g_value_get_int (b));
        break;
      case G_TYPE_UINT:
        ret = (g_value_get_uint (a) == g_value_get_uint (b));
        break;
      case G_TYPE_INT64:
        ret = (g_value_get_int64 (a) == g_value_get_int64 (b));
        break;
      case G_TYPE_UINT64:
        ret = (g_value_get_uint64 (a) == g_value_get_uint64 (b));
        break;
      case G_TYPE_DOUBLE:
        {
          /* Avoid -Wfloat-equal warnings by doing a direct bit compare */
          gdouble da = g_value_get_double (a);
          gdouble db = g_value_get_double (b);
          ret = memcmp (&da, &db, sizeof (gdouble)) == 0;
        }
        break;
      case G_TYPE_STRING:
        ret = (g_strcmp0 (g_value_get_string (a), g_value_get_string (b)) == 0);
        break;
      case G_TYPE_VARIANT:
        ret = _g_variant_equal0 (g_value_get_variant (a), g_value_get_variant (b));
        break;
      default:
        if (G_VALUE_TYPE (a) == G_TYPE_STRV)
          ret = _g_strv_equal0 (g_value_get_boxed (a), g_value_get_boxed (b));
        else
          g_critical ("_g_value_equal() does not handle type %s", g_type_name (G_VALUE_TYPE (a)));
        break;
    }
  return ret;
}

/* ------------------------------------------------------------------------
 * Code for interface org.freedesktop.timedate1
 * ------------------------------------------------------------------------
 */

/**
 * SECTION:timedatedTimedate1
 * @title: timedatedTimedate1
 * @short_description: Generated C code for the org.freedesktop.timedate1 D-Bus interface
 *
 * This section contains code for working with the <link linkend="gdbus-interface-org-freedesktop-timedate1.top_of_page">org.freedesktop.timedate1</link> D-Bus interface in C.
 */

/* ---- Introspection data for org.freedesktop.timedate1 ---- */

static const _ExtendedGDBusArgInfo _timedated_timedate1_method_info_set_time_IN_ARG_unnamed_arg0 =
{
  {
    -1,
    (gchar *) "unnamed_arg0",
    (gchar *) "x",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _timedated_timedate1_method_info_set_time_IN_ARG_unnamed_arg1 =
{
  {
    -1,
    (gchar *) "unnamed_arg1",
    (gchar *) "b",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _timedated_timedate1_method_info_set_time_IN_ARG_unnamed_arg2 =
{
  {
    -1,
    (gchar *) "unnamed_arg2",
    (gchar *) "b",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _timedated_timedate1_method_info_set_time_IN_ARG_pointers[] =
{
  &_timedated_timedate1_method_info_set_time_IN_ARG_unnamed_arg0,
  &_timedated_timedate1_method_info_set_time_IN_ARG_unnamed_arg1,
  &_timedated_timedate1_method_info_set_time_IN_ARG_unnamed_arg2,
  NULL
};

static const _ExtendedGDBusMethodInfo _timedated_timedate1_method_info_set_time =
{
  {
    -1,
    (gchar *) "SetTime",
    (GDBusArgInfo **) &_timedated_timedate1_method_info_set_time_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-set-time",
  FALSE
};

static const _ExtendedGDBusArgInfo _timedated_timedate1_method_info_set_timezone_IN_ARG_unnamed_arg0 =
{
  {
    -1,
    (gchar *) "unnamed_arg0",
    (gchar *) "s",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _timedated_timedate1_method_info_set_timezone_IN_ARG_unnamed_arg1 =
{
  {
    -1,
    (gchar *) "unnamed_arg1",
    (gchar *) "b",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _timedated_timedate1_method_info_set_timezone_IN_ARG_pointers[] =
{
  &_timedated_timedate1_method_info_set_timezone_IN_ARG_unnamed_arg0,
  &_timedated_timedate1_method_info_set_timezone_IN_ARG_unnamed_arg1,
  NULL
};

static const _ExtendedGDBusMethodInfo _timedated_timedate1_method_info_set_timezone =
{
  {
    -1,
    (gchar *) "SetTimezone",
    (GDBusArgInfo **) &_timedated_timedate1_method_info_set_timezone_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-set-timezone",
  FALSE
};

static const _ExtendedGDBusArgInfo _timedated_timedate1_method_info_set_local_rtc_IN_ARG_unnamed_arg0 =
{
  {
    -1,
    (gchar *) "unnamed_arg0",
    (gchar *) "b",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _timedated_timedate1_method_info_set_local_rtc_IN_ARG_unnamed_arg1 =
{
  {
    -1,
    (gchar *) "unnamed_arg1",
    (gchar *) "b",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _timedated_timedate1_method_info_set_local_rtc_IN_ARG_unnamed_arg2 =
{
  {
    -1,
    (gchar *) "unnamed_arg2",
    (gchar *) "b",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _timedated_timedate1_method_info_set_local_rtc_IN_ARG_pointers[] =
{
  &_timedated_timedate1_method_info_set_local_rtc_IN_ARG_unnamed_arg0,
  &_timedated_timedate1_method_info_set_local_rtc_IN_ARG_unnamed_arg1,
  &_timedated_timedate1_method_info_set_local_rtc_IN_ARG_unnamed_arg2,
  NULL
};

static const _ExtendedGDBusMethodInfo _timedated_timedate1_method_info_set_local_rtc =
{
  {
    -1,
    (gchar *) "SetLocalRTC",
    (GDBusArgInfo **) &_timedated_timedate1_method_info_set_local_rtc_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-set-local-rtc",
  FALSE
};

static const _ExtendedGDBusArgInfo _timedated_timedate1_method_info_set_ntp_IN_ARG_unnamed_arg0 =
{
  {
    -1,
    (gchar *) "unnamed_arg0",
    (gchar *) "b",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo _timedated_timedate1_method_info_set_ntp_IN_ARG_unnamed_arg1 =
{
  {
    -1,
    (gchar *) "unnamed_arg1",
    (gchar *) "b",
    NULL
  },
  FALSE
};

static const _ExtendedGDBusArgInfo * const _timedated_timedate1_method_info_set_ntp_IN_ARG_pointers[] =
{
  &_timedated_timedate1_method_info_set_ntp_IN_ARG_unnamed_arg0,
  &_timedated_timedate1_method_info_set_ntp_IN_ARG_unnamed_arg1,
  NULL
};

static const _ExtendedGDBusMethodInfo _timedated_timedate1_method_info_set_ntp =
{
  {
    -1,
    (gchar *) "SetNTP",
    (GDBusArgInfo **) &_timedated_timedate1_method_info_set_ntp_IN_ARG_pointers,
    NULL,
    NULL
  },
  "handle-set-ntp",
  FALSE
};

static const _ExtendedGDBusMethodInfo * const _timedated_timedate1_method_info_pointers[] =
{
  &_timedated_timedate1_method_info_set_time,
  &_timedated_timedate1_method_info_set_timezone,
  &_timedated_timedate1_method_info_set_local_rtc,
  &_timedated_timedate1_method_info_set_ntp,
  NULL
};

static const _ExtendedGDBusPropertyInfo _timedated_timedate1_property_info_timezone =
{
  {
    -1,
    (gchar *) "Timezone",
    (gchar *) "s",
    G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
    NULL
  },
  "timezone",
  FALSE
};

static const _ExtendedGDBusPropertyInfo _timedated_timedate1_property_info_local_rtc =
{
  {
    -1,
    (gchar *) "LocalRTC",
    (gchar *) "b",
    G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
    NULL
  },
  "local-rtc",
  FALSE
};

static const GDBusAnnotationInfo _timedated_timedate1_property_can_ntp_annotation_info_0 =
{
  -1,
  (gchar *) "org.freedesktop.DBus.Property.EmitsChangedSignal",
  (gchar *) "false",
  NULL
};

static const GDBusAnnotationInfo * const _timedated_timedate1_property_can_ntp_annotation_info_pointers[] =
{
  &_timedated_timedate1_property_can_ntp_annotation_info_0,
  NULL
};

static const _ExtendedGDBusPropertyInfo _timedated_timedate1_property_info_can_ntp =
{
  {
    -1,
    (gchar *) "CanNTP",
    (gchar *) "b",
    G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
    (GDBusAnnotationInfo **) &_timedated_timedate1_property_can_ntp_annotation_info_pointers
  },
  "can-ntp",
  FALSE
};

static const _ExtendedGDBusPropertyInfo _timedated_timedate1_property_info_ntp =
{
  {
    -1,
    (gchar *) "NTP",
    (gchar *) "b",
    G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
    NULL
  },
  "ntp",
  FALSE
};

static const GDBusAnnotationInfo _timedated_timedate1_property_ntpsynchronized_annotation_info_0 =
{
  -1,
  (gchar *) "org.freedesktop.DBus.Property.EmitsChangedSignal",
  (gchar *) "false",
  NULL
};

static const GDBusAnnotationInfo * const _timedated_timedate1_property_ntpsynchronized_annotation_info_pointers[] =
{
  &_timedated_timedate1_property_ntpsynchronized_annotation_info_0,
  NULL
};

static const _ExtendedGDBusPropertyInfo _timedated_timedate1_property_info_ntpsynchronized =
{
  {
    -1,
    (gchar *) "NTPSynchronized",
    (gchar *) "b",
    G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
    (GDBusAnnotationInfo **) &_timedated_timedate1_property_ntpsynchronized_annotation_info_pointers
  },
  "ntpsynchronized",
  FALSE
};

static const GDBusAnnotationInfo _timedated_timedate1_property_time_usec_annotation_info_0 =
{
  -1,
  (gchar *) "org.freedesktop.DBus.Property.EmitsChangedSignal",
  (gchar *) "false",
  NULL
};

static const GDBusAnnotationInfo * const _timedated_timedate1_property_time_usec_annotation_info_pointers[] =
{
  &_timedated_timedate1_property_time_usec_annotation_info_0,
  NULL
};

static const _ExtendedGDBusPropertyInfo _timedated_timedate1_property_info_time_usec =
{
  {
    -1,
    (gchar *) "TimeUSec",
    (gchar *) "t",
    G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
    (GDBusAnnotationInfo **) &_timedated_timedate1_property_time_usec_annotation_info_pointers
  },
  "time-usec",
  FALSE
};

static const GDBusAnnotationInfo _timedated_timedate1_property_rtctime_usec_annotation_info_0 =
{
  -1,
  (gchar *) "org.freedesktop.DBus.Property.EmitsChangedSignal",
  (gchar *) "false",
  NULL
};

static const GDBusAnnotationInfo * const _timedated_timedate1_property_rtctime_usec_annotation_info_pointers[] =
{
  &_timedated_timedate1_property_rtctime_usec_annotation_info_0,
  NULL
};

static const _ExtendedGDBusPropertyInfo _timedated_timedate1_property_info_rtctime_usec =
{
  {
    -1,
    (gchar *) "RTCTimeUSec",
    (gchar *) "t",
    G_DBUS_PROPERTY_INFO_FLAGS_READABLE,
    (GDBusAnnotationInfo **) &_timedated_timedate1_property_rtctime_usec_annotation_info_pointers
  },
  "rtctime-usec",
  FALSE
};

static const _ExtendedGDBusPropertyInfo * const _timedated_timedate1_property_info_pointers[] =
{
  &_timedated_timedate1_property_info_timezone,
  &_timedated_timedate1_property_info_local_rtc,
  &_timedated_timedate1_property_info_can_ntp,
  &_timedated_timedate1_property_info_ntp,
  &_timedated_timedate1_property_info_ntpsynchronized,
  &_timedated_timedate1_property_info_time_usec,
  &_timedated_timedate1_property_info_rtctime_usec,
  NULL
};

static const _ExtendedGDBusInterfaceInfo _timedated_timedate1_interface_info =
{
  {
    -1,
    (gchar *) "org.freedesktop.timedate1",
    (GDBusMethodInfo **) &_timedated_timedate1_method_info_pointers,
    NULL,
    (GDBusPropertyInfo **) &_timedated_timedate1_property_info_pointers,
    NULL
  },
  "timedate1",
};


/**
 * timedated_timedate1_interface_info:
 *
 * Gets a machine-readable description of the <link linkend="gdbus-interface-org-freedesktop-timedate1.top_of_page">org.freedesktop.timedate1</link> D-Bus interface.
 *
 * Returns: (transfer none): A #GDBusInterfaceInfo. Do not free.
 */
GDBusInterfaceInfo *
timedated_timedate1_interface_info (void)
{
  return (GDBusInterfaceInfo *) &_timedated_timedate1_interface_info.parent_struct;
}

/**
 * timedated_timedate1_override_properties:
 * @klass: The class structure for a #GObject<!-- -->-derived class.
 * @property_id_begin: The property id to assign to the first overridden property.
 *
 * Overrides all #GObject properties in the #timedatedTimedate1 interface for a concrete class.
 * The properties are overridden in the order they are defined.
 *
 * Returns: The last property id.
 */
guint
timedated_timedate1_override_properties (GObjectClass *klass, guint property_id_begin)
{
  g_object_class_override_property (klass, property_id_begin++, "timezone");
  g_object_class_override_property (klass, property_id_begin++, "local-rtc");
  g_object_class_override_property (klass, property_id_begin++, "can-ntp");
  g_object_class_override_property (klass, property_id_begin++, "ntp");
  g_object_class_override_property (klass, property_id_begin++, "ntpsynchronized");
  g_object_class_override_property (klass, property_id_begin++, "time-usec");
  g_object_class_override_property (klass, property_id_begin++, "rtctime-usec");
  return property_id_begin - 1;
}



/**
 * timedatedTimedate1:
 *
 * Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-timedate1.top_of_page">org.freedesktop.timedate1</link>.
 */

/**
 * timedatedTimedate1Iface:
 * @parent_iface: The parent interface.
 * @handle_set_local_rtc: Handler for the #timedatedTimedate1::handle-set-local-rtc signal.
 * @handle_set_ntp: Handler for the #timedatedTimedate1::handle-set-ntp signal.
 * @handle_set_time: Handler for the #timedatedTimedate1::handle-set-time signal.
 * @handle_set_timezone: Handler for the #timedatedTimedate1::handle-set-timezone signal.
 * @get_can_ntp: Getter for the #timedatedTimedate1:can-ntp property.
 * @get_local_rtc: Getter for the #timedatedTimedate1:local-rtc property.
 * @get_ntp: Getter for the #timedatedTimedate1:ntp property.
 * @get_ntpsynchronized: Getter for the #timedatedTimedate1:ntpsynchronized property.
 * @get_rtctime_usec: Getter for the #timedatedTimedate1:rtctime-usec property.
 * @get_time_usec: Getter for the #timedatedTimedate1:time-usec property.
 * @get_timezone: Getter for the #timedatedTimedate1:timezone property.
 *
 * Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-timedate1.top_of_page">org.freedesktop.timedate1</link>.
 */

typedef timedatedTimedate1Iface timedatedTimedate1Interface;
G_DEFINE_INTERFACE (timedatedTimedate1, timedated_timedate1, G_TYPE_OBJECT);

static void
timedated_timedate1_default_init (timedatedTimedate1Iface *iface)
{
  /* GObject signals for incoming D-Bus method calls: */
  /**
   * timedatedTimedate1::handle-set-time:
   * @object: A #timedatedTimedate1.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_unnamed_arg0: Argument passed by remote caller.
   * @arg_unnamed_arg1: Argument passed by remote caller.
   * @arg_unnamed_arg2: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-timedate1.SetTime">SetTime()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call timedated_timedate1_complete_set_time() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-set-time",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (timedatedTimedate1Iface, handle_set_time),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    4,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_INT64, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);

  /**
   * timedatedTimedate1::handle-set-timezone:
   * @object: A #timedatedTimedate1.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_unnamed_arg0: Argument passed by remote caller.
   * @arg_unnamed_arg1: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-timedate1.SetTimezone">SetTimezone()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call timedated_timedate1_complete_set_timezone() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-set-timezone",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (timedatedTimedate1Iface, handle_set_timezone),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    3,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_STRING, G_TYPE_BOOLEAN);

  /**
   * timedatedTimedate1::handle-set-local-rtc:
   * @object: A #timedatedTimedate1.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_unnamed_arg0: Argument passed by remote caller.
   * @arg_unnamed_arg1: Argument passed by remote caller.
   * @arg_unnamed_arg2: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-timedate1.SetLocalRTC">SetLocalRTC()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call timedated_timedate1_complete_set_local_rtc() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-set-local-rtc",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (timedatedTimedate1Iface, handle_set_local_rtc),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    4,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);

  /**
   * timedatedTimedate1::handle-set-ntp:
   * @object: A #timedatedTimedate1.
   * @invocation: A #GDBusMethodInvocation.
   * @arg_unnamed_arg0: Argument passed by remote caller.
   * @arg_unnamed_arg1: Argument passed by remote caller.
   *
   * Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-freedesktop-timedate1.SetNTP">SetNTP()</link> D-Bus method.
   *
   * If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call timedated_timedate1_complete_set_ntp() or e.g. g_dbus_method_invocation_return_error() on it) and no order signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
   *
   * Returns: %TRUE if the invocation was handled, %FALSE to let other signal handlers run.
   */
  g_signal_new ("handle-set-ntp",
    G_TYPE_FROM_INTERFACE (iface),
    G_SIGNAL_RUN_LAST,
    G_STRUCT_OFFSET (timedatedTimedate1Iface, handle_set_ntp),
    g_signal_accumulator_true_handled,
    NULL,
    g_cclosure_marshal_generic,
    G_TYPE_BOOLEAN,
    3,
    G_TYPE_DBUS_METHOD_INVOCATION, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN);

  /* GObject properties for D-Bus properties: */
  /**
   * timedatedTimedate1:timezone:
   *
   * Represents the D-Bus property <link linkend="gdbus-property-org-freedesktop-timedate1.Timezone">"Timezone"</link>.
   *
   * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
   */
  g_object_interface_install_property (iface,
    g_param_spec_string ("timezone", "Timezone", "Timezone", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
  /**
   * timedatedTimedate1:local-rtc:
   *
   * Represents the D-Bus property <link linkend="gdbus-property-org-freedesktop-timedate1.LocalRTC">"LocalRTC"</link>.
   *
   * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
   */
  g_object_interface_install_property (iface,
    g_param_spec_boolean ("local-rtc", "LocalRTC", "LocalRTC", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
  /**
   * timedatedTimedate1:can-ntp:
   *
   * Represents the D-Bus property <link linkend="gdbus-property-org-freedesktop-timedate1.CanNTP">"CanNTP"</link>.
   *
   * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
   */
  g_object_interface_install_property (iface,
    g_param_spec_boolean ("can-ntp", "CanNTP", "CanNTP", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
  /**
   * timedatedTimedate1:ntp:
   *
   * Represents the D-Bus property <link linkend="gdbus-property-org-freedesktop-timedate1.NTP">"NTP"</link>.
   *
   * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
   */
  g_object_interface_install_property (iface,
    g_param_spec_boolean ("ntp", "NTP", "NTP", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
  /**
   * timedatedTimedate1:ntpsynchronized:
   *
   * Represents the D-Bus property <link linkend="gdbus-property-org-freedesktop-timedate1.NTPSynchronized">"NTPSynchronized"</link>.
   *
   * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
   */
  g_object_interface_install_property (iface,
    g_param_spec_boolean ("ntpsynchronized", "NTPSynchronized", "NTPSynchronized", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
  /**
   * timedatedTimedate1:time-usec:
   *
   * Represents the D-Bus property <link linkend="gdbus-property-org-freedesktop-timedate1.TimeUSec">"TimeUSec"</link>.
   *
   * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
   */
  g_object_interface_install_property (iface,
    g_param_spec_uint64 ("time-usec", "TimeUSec", "TimeUSec", 0, G_MAXUINT64, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
  /**
   * timedatedTimedate1:rtctime-usec:
   *
   * Represents the D-Bus property <link linkend="gdbus-property-org-freedesktop-timedate1.RTCTimeUSec">"RTCTimeUSec"</link>.
   *
   * Since the D-Bus property for this #GObject property is readable but not writable, it is meaningful to read from it on both the client- and service-side. It is only meaningful, however, to write to it on the service-side.
   */
  g_object_interface_install_property (iface,
    g_param_spec_uint64 ("rtctime-usec", "RTCTimeUSec", "RTCTimeUSec", 0, G_MAXUINT64, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
}

/**
 * timedated_timedate1_get_timezone: (skip)
 * @object: A #timedatedTimedate1.
 *
 * Gets the value of the <link linkend="gdbus-property-org-freedesktop-timedate1.Timezone">"Timezone"</link> D-Bus property.
 *
 * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
 *
 * <warning>The returned value is only valid until the property changes so on the client-side it is only safe to use this function on the thread where @object was constructed. Use timedated_timedate1_dup_timezone() if on another thread.</warning>
 *
 * Returns: (transfer none): The property value or %NULL if the property is not set. Do not free the returned value, it belongs to @object.
 */
const gchar *
timedated_timedate1_get_timezone (timedatedTimedate1 *object)
{
  return TIMEDATED_TIMEDATE1_GET_IFACE (object)->get_timezone (object);
}

/**
 * timedated_timedate1_dup_timezone: (skip)
 * @object: A #timedatedTimedate1.
 *
 * Gets a copy of the <link linkend="gdbus-property-org-freedesktop-timedate1.Timezone">"Timezone"</link> D-Bus property.
 *
 * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
 *
 * Returns: (transfer full): The property value or %NULL if the property is not set. The returned value should be freed with g_free().
 */
gchar *
timedated_timedate1_dup_timezone (timedatedTimedate1 *object)
{
  gchar *value;
  g_object_get (G_OBJECT (object), "timezone", &value, NULL);
  return value;
}

/**
 * timedated_timedate1_set_timezone: (skip)
 * @object: A #timedatedTimedate1.
 * @value: The value to set.
 *
 * Sets the <link linkend="gdbus-property-org-freedesktop-timedate1.Timezone">"Timezone"</link> D-Bus property to @value.
 *
 * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
 */
void
timedated_timedate1_set_timezone (timedatedTimedate1 *object, const gchar *value)
{
  g_object_set (G_OBJECT (object), "timezone", value, NULL);
}

/**
 * timedated_timedate1_get_local_rtc: (skip)
 * @object: A #timedatedTimedate1.
 *
 * Gets the value of the <link linkend="gdbus-property-org-freedesktop-timedate1.LocalRTC">"LocalRTC"</link> D-Bus property.
 *
 * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
 *
 * Returns: The property value.
 */
gboolean 
timedated_timedate1_get_local_rtc (timedatedTimedate1 *object)
{
  return TIMEDATED_TIMEDATE1_GET_IFACE (object)->get_local_rtc (object);
}

/**
 * timedated_timedate1_set_local_rtc: (skip)
 * @object: A #timedatedTimedate1.
 * @value: The value to set.
 *
 * Sets the <link linkend="gdbus-property-org-freedesktop-timedate1.LocalRTC">"LocalRTC"</link> D-Bus property to @value.
 *
 * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
 */
void
timedated_timedate1_set_local_rtc (timedatedTimedate1 *object, gboolean value)
{
  g_object_set (G_OBJECT (object), "local-rtc", value, NULL);
}

/**
 * timedated_timedate1_get_can_ntp: (skip)
 * @object: A #timedatedTimedate1.
 *
 * Gets the value of the <link linkend="gdbus-property-org-freedesktop-timedate1.CanNTP">"CanNTP"</link> D-Bus property.
 *
 * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
 *
 * Returns: The property value.
 */
gboolean 
timedated_timedate1_get_can_ntp (timedatedTimedate1 *object)
{
  return TIMEDATED_TIMEDATE1_GET_IFACE (object)->get_can_ntp (object);
}

/**
 * timedated_timedate1_set_can_ntp: (skip)
 * @object: A #timedatedTimedate1.
 * @value: The value to set.
 *
 * Sets the <link linkend="gdbus-property-org-freedesktop-timedate1.CanNTP">"CanNTP"</link> D-Bus property to @value.
 *
 * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
 */
void
timedated_timedate1_set_can_ntp (timedatedTimedate1 *object, gboolean value)
{
  g_object_set (G_OBJECT (object), "can-ntp", value, NULL);
}

/**
 * timedated_timedate1_get_ntp: (skip)
 * @object: A #timedatedTimedate1.
 *
 * Gets the value of the <link linkend="gdbus-property-org-freedesktop-timedate1.NTP">"NTP"</link> D-Bus property.
 *
 * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
 *
 * Returns: The property value.
 */
gboolean 
timedated_timedate1_get_ntp (timedatedTimedate1 *object)
{
  return TIMEDATED_TIMEDATE1_GET_IFACE (object)->get_ntp (object);
}

/**
 * timedated_timedate1_set_ntp: (skip)
 * @object: A #timedatedTimedate1.
 * @value: The value to set.
 *
 * Sets the <link linkend="gdbus-property-org-freedesktop-timedate1.NTP">"NTP"</link> D-Bus property to @value.
 *
 * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
 */
void
timedated_timedate1_set_ntp (timedatedTimedate1 *object, gboolean value)
{
  g_object_set (G_OBJECT (object), "ntp", value, NULL);
}

/**
 * timedated_timedate1_get_ntpsynchronized: (skip)
 * @object: A #timedatedTimedate1.
 *
 * Gets the value of the <link linkend="gdbus-property-org-freedesktop-timedate1.NTPSynchronized">"NTPSynchronized"</link> D-Bus property.
 *
 * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
 *
 * Returns: The property value.
 */
gboolean 
timedated_timedate1_get_ntpsynchronized (timedatedTimedate1 *object)
{
  return TIMEDATED_TIMEDATE1_GET_IFACE (object)->get_ntpsynchronized (object);
}

/**
 * timedated_timedate1_set_ntpsynchronized: (skip)
 * @object: A #timedatedTimedate1.
 * @value: The value to set.
 *
 * Sets the <link linkend="gdbus-property-org-freedesktop-timedate1.NTPSynchronized">"NTPSynchronized"</link> D-Bus property to @value.
 *
 * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
 */
void
timedated_timedate1_set_ntpsynchronized (timedatedTimedate1 *object, gboolean value)
{
  g_object_set (G_OBJECT (object), "ntpsynchronized", value, NULL);
}

/**
 * timedated_timedate1_get_time_usec: (skip)
 * @object: A #timedatedTimedate1.
 *
 * Gets the value of the <link linkend="gdbus-property-org-freedesktop-timedate1.TimeUSec">"TimeUSec"</link> D-Bus property.
 *
 * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
 *
 * Returns: The property value.
 */
guint64 
timedated_timedate1_get_time_usec (timedatedTimedate1 *object)
{
  return TIMEDATED_TIMEDATE1_GET_IFACE (object)->get_time_usec (object);
}

/**
 * timedated_timedate1_set_time_usec: (skip)
 * @object: A #timedatedTimedate1.
 * @value: The value to set.
 *
 * Sets the <link linkend="gdbus-property-org-freedesktop-timedate1.TimeUSec">"TimeUSec"</link> D-Bus property to @value.
 *
 * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
 */
void
timedated_timedate1_set_time_usec (timedatedTimedate1 *object, guint64 value)
{
  g_object_set (G_OBJECT (object), "time-usec", value, NULL);
}

/**
 * timedated_timedate1_get_rtctime_usec: (skip)
 * @object: A #timedatedTimedate1.
 *
 * Gets the value of the <link linkend="gdbus-property-org-freedesktop-timedate1.RTCTimeUSec">"RTCTimeUSec"</link> D-Bus property.
 *
 * Since this D-Bus property is readable, it is meaningful to use this function on both the client- and service-side.
 *
 * Returns: The property value.
 */
guint64 
timedated_timedate1_get_rtctime_usec (timedatedTimedate1 *object)
{
  return TIMEDATED_TIMEDATE1_GET_IFACE (object)->get_rtctime_usec (object);
}

/**
 * timedated_timedate1_set_rtctime_usec: (skip)
 * @object: A #timedatedTimedate1.
 * @value: The value to set.
 *
 * Sets the <link linkend="gdbus-property-org-freedesktop-timedate1.RTCTimeUSec">"RTCTimeUSec"</link> D-Bus property to @value.
 *
 * Since this D-Bus property is not writable, it is only meaningful to use this function on the service-side.
 */
void
timedated_timedate1_set_rtctime_usec (timedatedTimedate1 *object, guint64 value)
{
  g_object_set (G_OBJECT (object), "rtctime-usec", value, NULL);
}

/**
 * timedated_timedate1_call_set_time:
 * @proxy: A #timedatedTimedate1Proxy.
 * @arg_unnamed_arg0: Argument to pass with the method invocation.
 * @arg_unnamed_arg1: Argument to pass with the method invocation.
 * @arg_unnamed_arg2: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-timedate1.SetTime">SetTime()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call timedated_timedate1_call_set_time_finish() to get the result of the operation.
 *
 * See timedated_timedate1_call_set_time_sync() for the synchronous, blocking version of this method.
 */
void
timedated_timedate1_call_set_time (
    timedatedTimedate1 *proxy,
    gint64 arg_unnamed_arg0,
    gboolean arg_unnamed_arg1,
    gboolean arg_unnamed_arg2,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "SetTime",
    g_variant_new ("(xbb)",
                   arg_unnamed_arg0,
                   arg_unnamed_arg1,
                   arg_unnamed_arg2),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * timedated_timedate1_call_set_time_finish:
 * @proxy: A #timedatedTimedate1Proxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to timedated_timedate1_call_set_time().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with timedated_timedate1_call_set_time().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
timedated_timedate1_call_set_time_finish (
    timedatedTimedate1 *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * timedated_timedate1_call_set_time_sync:
 * @proxy: A #timedatedTimedate1Proxy.
 * @arg_unnamed_arg0: Argument to pass with the method invocation.
 * @arg_unnamed_arg1: Argument to pass with the method invocation.
 * @arg_unnamed_arg2: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-timedate1.SetTime">SetTime()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See timedated_timedate1_call_set_time() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
timedated_timedate1_call_set_time_sync (
    timedatedTimedate1 *proxy,
    gint64 arg_unnamed_arg0,
    gboolean arg_unnamed_arg1,
    gboolean arg_unnamed_arg2,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "SetTime",
    g_variant_new ("(xbb)",
                   arg_unnamed_arg0,
                   arg_unnamed_arg1,
                   arg_unnamed_arg2),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * timedated_timedate1_call_set_timezone:
 * @proxy: A #timedatedTimedate1Proxy.
 * @arg_unnamed_arg0: Argument to pass with the method invocation.
 * @arg_unnamed_arg1: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-timedate1.SetTimezone">SetTimezone()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call timedated_timedate1_call_set_timezone_finish() to get the result of the operation.
 *
 * See timedated_timedate1_call_set_timezone_sync() for the synchronous, blocking version of this method.
 */
void
timedated_timedate1_call_set_timezone (
    timedatedTimedate1 *proxy,
    const gchar *arg_unnamed_arg0,
    gboolean arg_unnamed_arg1,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "SetTimezone",
    g_variant_new ("(sb)",
                   arg_unnamed_arg0,
                   arg_unnamed_arg1),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * timedated_timedate1_call_set_timezone_finish:
 * @proxy: A #timedatedTimedate1Proxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to timedated_timedate1_call_set_timezone().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with timedated_timedate1_call_set_timezone().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
timedated_timedate1_call_set_timezone_finish (
    timedatedTimedate1 *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * timedated_timedate1_call_set_timezone_sync:
 * @proxy: A #timedatedTimedate1Proxy.
 * @arg_unnamed_arg0: Argument to pass with the method invocation.
 * @arg_unnamed_arg1: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-timedate1.SetTimezone">SetTimezone()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See timedated_timedate1_call_set_timezone() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
timedated_timedate1_call_set_timezone_sync (
    timedatedTimedate1 *proxy,
    const gchar *arg_unnamed_arg0,
    gboolean arg_unnamed_arg1,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "SetTimezone",
    g_variant_new ("(sb)",
                   arg_unnamed_arg0,
                   arg_unnamed_arg1),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * timedated_timedate1_call_set_local_rtc:
 * @proxy: A #timedatedTimedate1Proxy.
 * @arg_unnamed_arg0: Argument to pass with the method invocation.
 * @arg_unnamed_arg1: Argument to pass with the method invocation.
 * @arg_unnamed_arg2: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-timedate1.SetLocalRTC">SetLocalRTC()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call timedated_timedate1_call_set_local_rtc_finish() to get the result of the operation.
 *
 * See timedated_timedate1_call_set_local_rtc_sync() for the synchronous, blocking version of this method.
 */
void
timedated_timedate1_call_set_local_rtc (
    timedatedTimedate1 *proxy,
    gboolean arg_unnamed_arg0,
    gboolean arg_unnamed_arg1,
    gboolean arg_unnamed_arg2,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "SetLocalRTC",
    g_variant_new ("(bbb)",
                   arg_unnamed_arg0,
                   arg_unnamed_arg1,
                   arg_unnamed_arg2),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * timedated_timedate1_call_set_local_rtc_finish:
 * @proxy: A #timedatedTimedate1Proxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to timedated_timedate1_call_set_local_rtc().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with timedated_timedate1_call_set_local_rtc().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
timedated_timedate1_call_set_local_rtc_finish (
    timedatedTimedate1 *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * timedated_timedate1_call_set_local_rtc_sync:
 * @proxy: A #timedatedTimedate1Proxy.
 * @arg_unnamed_arg0: Argument to pass with the method invocation.
 * @arg_unnamed_arg1: Argument to pass with the method invocation.
 * @arg_unnamed_arg2: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-timedate1.SetLocalRTC">SetLocalRTC()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See timedated_timedate1_call_set_local_rtc() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
timedated_timedate1_call_set_local_rtc_sync (
    timedatedTimedate1 *proxy,
    gboolean arg_unnamed_arg0,
    gboolean arg_unnamed_arg1,
    gboolean arg_unnamed_arg2,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "SetLocalRTC",
    g_variant_new ("(bbb)",
                   arg_unnamed_arg0,
                   arg_unnamed_arg1,
                   arg_unnamed_arg2),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * timedated_timedate1_call_set_ntp:
 * @proxy: A #timedatedTimedate1Proxy.
 * @arg_unnamed_arg0: Argument to pass with the method invocation.
 * @arg_unnamed_arg1: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied or %NULL.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously invokes the <link linkend="gdbus-method-org-freedesktop-timedate1.SetNTP">SetNTP()</link> D-Bus method on @proxy.
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call timedated_timedate1_call_set_ntp_finish() to get the result of the operation.
 *
 * See timedated_timedate1_call_set_ntp_sync() for the synchronous, blocking version of this method.
 */
void
timedated_timedate1_call_set_ntp (
    timedatedTimedate1 *proxy,
    gboolean arg_unnamed_arg0,
    gboolean arg_unnamed_arg1,
    GCancellable *cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data)
{
  g_dbus_proxy_call (G_DBUS_PROXY (proxy),
    "SetNTP",
    g_variant_new ("(bb)",
                   arg_unnamed_arg0,
                   arg_unnamed_arg1),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    callback,
    user_data);
}

/**
 * timedated_timedate1_call_set_ntp_finish:
 * @proxy: A #timedatedTimedate1Proxy.
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to timedated_timedate1_call_set_ntp().
 * @error: Return location for error or %NULL.
 *
 * Finishes an operation started with timedated_timedate1_call_set_ntp().
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
timedated_timedate1_call_set_ntp_finish (
    timedatedTimedate1 *proxy,
    GAsyncResult *res,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_finish (G_DBUS_PROXY (proxy), res, error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * timedated_timedate1_call_set_ntp_sync:
 * @proxy: A #timedatedTimedate1Proxy.
 * @arg_unnamed_arg0: Argument to pass with the method invocation.
 * @arg_unnamed_arg1: Argument to pass with the method invocation.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL.
 *
 * Synchronously invokes the <link linkend="gdbus-method-org-freedesktop-timedate1.SetNTP">SetNTP()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received.
 *
 * See timedated_timedate1_call_set_ntp() for the asynchronous version of this method.
 *
 * Returns: (skip): %TRUE if the call succeded, %FALSE if @error is set.
 */
gboolean
timedated_timedate1_call_set_ntp_sync (
    timedatedTimedate1 *proxy,
    gboolean arg_unnamed_arg0,
    gboolean arg_unnamed_arg1,
    GCancellable *cancellable,
    GError **error)
{
  GVariant *_ret;
  _ret = g_dbus_proxy_call_sync (G_DBUS_PROXY (proxy),
    "SetNTP",
    g_variant_new ("(bb)",
                   arg_unnamed_arg0,
                   arg_unnamed_arg1),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    cancellable,
    error);
  if (_ret == NULL)
    goto _out;
  g_variant_get (_ret,
                 "()");
  g_variant_unref (_ret);
_out:
  return _ret != NULL;
}

/**
 * timedated_timedate1_complete_set_time:
 * @object: A #timedatedTimedate1.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-timedate1.SetTime">SetTime()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
timedated_timedate1_complete_set_time (
    timedatedTimedate1 *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * timedated_timedate1_complete_set_timezone:
 * @object: A #timedatedTimedate1.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-timedate1.SetTimezone">SetTimezone()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
timedated_timedate1_complete_set_timezone (
    timedatedTimedate1 *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * timedated_timedate1_complete_set_local_rtc:
 * @object: A #timedatedTimedate1.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-timedate1.SetLocalRTC">SetLocalRTC()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
timedated_timedate1_complete_set_local_rtc (
    timedatedTimedate1 *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/**
 * timedated_timedate1_complete_set_ntp:
 * @object: A #timedatedTimedate1.
 * @invocation: (transfer full): A #GDBusMethodInvocation.
 *
 * Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-freedesktop-timedate1.SetNTP">SetNTP()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar.
 *
 * This method will free @invocation, you cannot use it afterwards.
 */
void
timedated_timedate1_complete_set_ntp (
    timedatedTimedate1 *object,
    GDBusMethodInvocation *invocation)
{
  g_dbus_method_invocation_return_value (invocation,
    g_variant_new ("()"));
}

/* ------------------------------------------------------------------------ */

/**
 * timedatedTimedate1Proxy:
 *
 * The #timedatedTimedate1Proxy structure contains only private data and should only be accessed using the provided API.
 */

/**
 * timedatedTimedate1ProxyClass:
 * @parent_class: The parent class.
 *
 * Class structure for #timedatedTimedate1Proxy.
 */

struct _timedatedTimedate1ProxyPrivate
{
  GData *qdata;
};

static void timedated_timedate1_proxy_iface_init (timedatedTimedate1Iface *iface);

#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
G_DEFINE_TYPE_WITH_CODE (timedatedTimedate1Proxy, timedated_timedate1_proxy, G_TYPE_DBUS_PROXY,
                         G_ADD_PRIVATE (timedatedTimedate1Proxy)
                         G_IMPLEMENT_INTERFACE (TIMEDATED_TYPE_TIMEDATE1, timedated_timedate1_proxy_iface_init));

#else
G_DEFINE_TYPE_WITH_CODE (timedatedTimedate1Proxy, timedated_timedate1_proxy, G_TYPE_DBUS_PROXY,
                         G_IMPLEMENT_INTERFACE (TIMEDATED_TYPE_TIMEDATE1, timedated_timedate1_proxy_iface_init));

#endif
static void
timedated_timedate1_proxy_finalize (GObject *object)
{
  timedatedTimedate1Proxy *proxy = TIMEDATED_TIMEDATE1_PROXY (object);
  g_datalist_clear (&proxy->priv->qdata);
  G_OBJECT_CLASS (timedated_timedate1_proxy_parent_class)->finalize (object);
}

static void
timedated_timedate1_proxy_get_property (GObject      *object,
  guint         prop_id,
  GValue       *value,
  GParamSpec   *pspec G_GNUC_UNUSED)
{
  const _ExtendedGDBusPropertyInfo *info;
  GVariant *variant;
  g_assert (prop_id != 0 && prop_id - 1 < 7);
  info = _timedated_timedate1_property_info_pointers[prop_id - 1];
  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (object), info->parent_struct.name);
  if (info->use_gvariant)
    {
      g_value_set_variant (value, variant);
    }
  else
    {
      if (variant != NULL)
        g_dbus_gvariant_to_gvalue (variant, value);
    }
  if (variant != NULL)
    g_variant_unref (variant);
}

static void
timedated_timedate1_proxy_set_property_cb (GDBusProxy *proxy,
  GAsyncResult *res,
  gpointer      user_data)
{
  const _ExtendedGDBusPropertyInfo *info = user_data;
  GError *error;
  GVariant *_ret;
  error = NULL;
  _ret = g_dbus_proxy_call_finish (proxy, res, &error);
  if (!_ret)
    {
      g_warning ("Error setting property '%s' on interface org.freedesktop.timedate1: %s (%s, %d)",
                 info->parent_struct.name, 
                 error->message, g_quark_to_string (error->domain), error->code);
      g_error_free (error);
    }
  else
    {
      g_variant_unref (_ret);
    }
}

static void
timedated_timedate1_proxy_set_property (GObject      *object,
  guint         prop_id,
  const GValue *value,
  GParamSpec   *pspec G_GNUC_UNUSED)
{
  const _ExtendedGDBusPropertyInfo *info;
  GVariant *variant;
  g_assert (prop_id != 0 && prop_id - 1 < 7);
  info = _timedated_timedate1_property_info_pointers[prop_id - 1];
  variant = g_dbus_gvalue_to_gvariant (value, G_VARIANT_TYPE (info->parent_struct.signature));
  g_dbus_proxy_call (G_DBUS_PROXY (object),
    "org.freedesktop.DBus.Properties.Set",
    g_variant_new ("(ssv)", "org.freedesktop.timedate1", info->parent_struct.name, variant),
    G_DBUS_CALL_FLAGS_NONE,
    -1,
    NULL, (GAsyncReadyCallback) timedated_timedate1_proxy_set_property_cb, (GDBusPropertyInfo *) &info->parent_struct);
  g_variant_unref (variant);
}

static void
timedated_timedate1_proxy_g_signal (GDBusProxy *proxy,
  const gchar *sender_name G_GNUC_UNUSED,
  const gchar *signal_name,
  GVariant *parameters)
{
  _ExtendedGDBusSignalInfo *info;
  GVariantIter iter;
  GVariant *child;
  GValue *paramv;
  guint num_params;
  guint n;
  guint signal_id;
  info = (_ExtendedGDBusSignalInfo *) g_dbus_interface_info_lookup_signal ((GDBusInterfaceInfo *) &_timedated_timedate1_interface_info.parent_struct, signal_name);
  if (info == NULL)
    return;
  num_params = g_variant_n_children (parameters);
  paramv = g_new0 (GValue, num_params + 1);
  g_value_init (&paramv[0], TIMEDATED_TYPE_TIMEDATE1);
  g_value_set_object (&paramv[0], proxy);
  g_variant_iter_init (&iter, parameters);
  n = 1;
  while ((child = g_variant_iter_next_value (&iter)) != NULL)
    {
      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.args[n - 1];
      if (arg_info->use_gvariant)
        {
          g_value_init (&paramv[n], G_TYPE_VARIANT);
          g_value_set_variant (&paramv[n], child);
          n++;
        }
      else
        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
      g_variant_unref (child);
    }
  signal_id = g_signal_lookup (info->signal_name, TIMEDATED_TYPE_TIMEDATE1);
  g_signal_emitv (paramv, signal_id, 0, NULL);
  for (n = 0; n < num_params + 1; n++)
    g_value_unset (&paramv[n]);
  g_free (paramv);
}

static void
timedated_timedate1_proxy_g_properties_changed (GDBusProxy *_proxy,
  GVariant *changed_properties,
  const gchar *const *invalidated_properties)
{
  timedatedTimedate1Proxy *proxy = TIMEDATED_TIMEDATE1_PROXY (_proxy);
  guint n;
  const gchar *key;
  GVariantIter *iter;
  _ExtendedGDBusPropertyInfo *info;
  g_variant_get (changed_properties, "a{sv}", &iter);
  while (g_variant_iter_next (iter, "{&sv}", &key, NULL))
    {
      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_timedated_timedate1_interface_info.parent_struct, key);
      g_datalist_remove_data (&proxy->priv->qdata, key);
      if (info != NULL)
        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
    }
  g_variant_iter_free (iter);
  for (n = 0; invalidated_properties[n] != NULL; n++)
    {
      info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_timedated_timedate1_interface_info.parent_struct, invalidated_properties[n]);
      g_datalist_remove_data (&proxy->priv->qdata, invalidated_properties[n]);
      if (info != NULL)
        g_object_notify (G_OBJECT (proxy), info->hyphen_name);
    }
}

static const gchar *
timedated_timedate1_proxy_get_timezone (timedatedTimedate1 *object)
{
  timedatedTimedate1Proxy *proxy = TIMEDATED_TIMEDATE1_PROXY (object);
  GVariant *variant;
  const gchar *value = NULL;
  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "Timezone");
  if (variant != NULL)
    {
      value = g_variant_get_string (variant, NULL);
      g_variant_unref (variant);
    }
  return value;
}

static gboolean 
timedated_timedate1_proxy_get_local_rtc (timedatedTimedate1 *object)
{
  timedatedTimedate1Proxy *proxy = TIMEDATED_TIMEDATE1_PROXY (object);
  GVariant *variant;
  gboolean value = 0;
  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "LocalRTC");
  if (variant != NULL)
    {
      value = g_variant_get_boolean (variant);
      g_variant_unref (variant);
    }
  return value;
}

static gboolean 
timedated_timedate1_proxy_get_can_ntp (timedatedTimedate1 *object)
{
  timedatedTimedate1Proxy *proxy = TIMEDATED_TIMEDATE1_PROXY (object);
  GVariant *variant;
  gboolean value = 0;
  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "CanNTP");
  if (variant != NULL)
    {
      value = g_variant_get_boolean (variant);
      g_variant_unref (variant);
    }
  return value;
}

static gboolean 
timedated_timedate1_proxy_get_ntp (timedatedTimedate1 *object)
{
  timedatedTimedate1Proxy *proxy = TIMEDATED_TIMEDATE1_PROXY (object);
  GVariant *variant;
  gboolean value = 0;
  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "NTP");
  if (variant != NULL)
    {
      value = g_variant_get_boolean (variant);
      g_variant_unref (variant);
    }
  return value;
}

static gboolean 
timedated_timedate1_proxy_get_ntpsynchronized (timedatedTimedate1 *object)
{
  timedatedTimedate1Proxy *proxy = TIMEDATED_TIMEDATE1_PROXY (object);
  GVariant *variant;
  gboolean value = 0;
  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "NTPSynchronized");
  if (variant != NULL)
    {
      value = g_variant_get_boolean (variant);
      g_variant_unref (variant);
    }
  return value;
}

static guint64 
timedated_timedate1_proxy_get_time_usec (timedatedTimedate1 *object)
{
  timedatedTimedate1Proxy *proxy = TIMEDATED_TIMEDATE1_PROXY (object);
  GVariant *variant;
  guint64 value = 0;
  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "TimeUSec");
  if (variant != NULL)
    {
      value = g_variant_get_uint64 (variant);
      g_variant_unref (variant);
    }
  return value;
}

static guint64 
timedated_timedate1_proxy_get_rtctime_usec (timedatedTimedate1 *object)
{
  timedatedTimedate1Proxy *proxy = TIMEDATED_TIMEDATE1_PROXY (object);
  GVariant *variant;
  guint64 value = 0;
  variant = g_dbus_proxy_get_cached_property (G_DBUS_PROXY (proxy), "RTCTimeUSec");
  if (variant != NULL)
    {
      value = g_variant_get_uint64 (variant);
      g_variant_unref (variant);
    }
  return value;
}

static void
timedated_timedate1_proxy_init (timedatedTimedate1Proxy *proxy)
{
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
  proxy->priv = timedated_timedate1_proxy_get_instance_private (proxy);
#else
  proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy, TIMEDATED_TYPE_TIMEDATE1_PROXY, timedatedTimedate1ProxyPrivate);
#endif

  g_dbus_proxy_set_interface_info (G_DBUS_PROXY (proxy), timedated_timedate1_interface_info ());
}

static void
timedated_timedate1_proxy_class_init (timedatedTimedate1ProxyClass *klass)
{
  GObjectClass *gobject_class;
  GDBusProxyClass *proxy_class;

  gobject_class = G_OBJECT_CLASS (klass);
  gobject_class->finalize     = timedated_timedate1_proxy_finalize;
  gobject_class->get_property = timedated_timedate1_proxy_get_property;
  gobject_class->set_property = timedated_timedate1_proxy_set_property;

  proxy_class = G_DBUS_PROXY_CLASS (klass);
  proxy_class->g_signal = timedated_timedate1_proxy_g_signal;
  proxy_class->g_properties_changed = timedated_timedate1_proxy_g_properties_changed;

  timedated_timedate1_override_properties (gobject_class, 1);

#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
  g_type_class_add_private (klass, sizeof (timedatedTimedate1ProxyPrivate));
#endif
}

static void
timedated_timedate1_proxy_iface_init (timedatedTimedate1Iface *iface)
{
  iface->get_timezone = timedated_timedate1_proxy_get_timezone;
  iface->get_local_rtc = timedated_timedate1_proxy_get_local_rtc;
  iface->get_can_ntp = timedated_timedate1_proxy_get_can_ntp;
  iface->get_ntp = timedated_timedate1_proxy_get_ntp;
  iface->get_ntpsynchronized = timedated_timedate1_proxy_get_ntpsynchronized;
  iface->get_time_usec = timedated_timedate1_proxy_get_time_usec;
  iface->get_rtctime_usec = timedated_timedate1_proxy_get_rtctime_usec;
}

/**
 * timedated_timedate1_proxy_new:
 * @connection: A #GDBusConnection.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-timedate1.top_of_page">org.freedesktop.timedate1</link>. See g_dbus_proxy_new() for more details.
 *
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call timedated_timedate1_proxy_new_finish() to get the result of the operation.
 *
 * See timedated_timedate1_proxy_new_sync() for the synchronous, blocking version of this constructor.
 */
void
timedated_timedate1_proxy_new (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data)
{
  g_async_initable_new_async (TIMEDATED_TYPE_TIMEDATE1_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.freedesktop.timedate1", NULL);
}

/**
 * timedated_timedate1_proxy_new_finish:
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to timedated_timedate1_proxy_new().
 * @error: Return location for error or %NULL
 *
 * Finishes an operation started with timedated_timedate1_proxy_new().
 *
 * Returns: (transfer full) (type timedatedTimedate1Proxy): The constructed proxy object or %NULL if @error is set.
 */
timedatedTimedate1 *
timedated_timedate1_proxy_new_finish (
    GAsyncResult        *res,
    GError             **error)
{
  GObject *ret;
  GObject *source_object;
  source_object = g_async_result_get_source_object (res);
  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
  g_object_unref (source_object);
  if (ret != NULL)
    return TIMEDATED_TIMEDATE1 (ret);
  else
    return NULL;
}

/**
 * timedated_timedate1_proxy_new_sync:
 * @connection: A #GDBusConnection.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL
 *
 * Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-timedate1.top_of_page">org.freedesktop.timedate1</link>. See g_dbus_proxy_new_sync() for more details.
 *
 * The calling thread is blocked until a reply is received.
 *
 * See timedated_timedate1_proxy_new() for the asynchronous version of this constructor.
 *
 * Returns: (transfer full) (type timedatedTimedate1Proxy): The constructed proxy object or %NULL if @error is set.
 */
timedatedTimedate1 *
timedated_timedate1_proxy_new_sync (
    GDBusConnection     *connection,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error)
{
  GInitable *ret;
  ret = g_initable_new (TIMEDATED_TYPE_TIMEDATE1_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-connection", connection, "g-object-path", object_path, "g-interface-name", "org.freedesktop.timedate1", NULL);
  if (ret != NULL)
    return TIMEDATED_TIMEDATE1 (ret);
  else
    return NULL;
}


/**
 * timedated_timedate1_proxy_new_for_bus:
 * @bus_type: A #GBusType.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: A bus name (well-known or unique).
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
 * @user_data: User data to pass to @callback.
 *
 * Like timedated_timedate1_proxy_new() but takes a #GBusType instead of a #GDBusConnection.
 *
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call timedated_timedate1_proxy_new_for_bus_finish() to get the result of the operation.
 *
 * See timedated_timedate1_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor.
 */
void
timedated_timedate1_proxy_new_for_bus (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GAsyncReadyCallback  callback,
    gpointer             user_data)
{
  g_async_initable_new_async (TIMEDATED_TYPE_TIMEDATE1_PROXY, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.freedesktop.timedate1", NULL);
}

/**
 * timedated_timedate1_proxy_new_for_bus_finish:
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to timedated_timedate1_proxy_new_for_bus().
 * @error: Return location for error or %NULL
 *
 * Finishes an operation started with timedated_timedate1_proxy_new_for_bus().
 *
 * Returns: (transfer full) (type timedatedTimedate1Proxy): The constructed proxy object or %NULL if @error is set.
 */
timedatedTimedate1 *
timedated_timedate1_proxy_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error)
{
  GObject *ret;
  GObject *source_object;
  source_object = g_async_result_get_source_object (res);
  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
  g_object_unref (source_object);
  if (ret != NULL)
    return TIMEDATED_TIMEDATE1 (ret);
  else
    return NULL;
}

/**
 * timedated_timedate1_proxy_new_for_bus_sync:
 * @bus_type: A #GBusType.
 * @flags: Flags from the #GDBusProxyFlags enumeration.
 * @name: A bus name (well-known or unique).
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL
 *
 * Like timedated_timedate1_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection.
 *
 * The calling thread is blocked until a reply is received.
 *
 * See timedated_timedate1_proxy_new_for_bus() for the asynchronous version of this constructor.
 *
 * Returns: (transfer full) (type timedatedTimedate1Proxy): The constructed proxy object or %NULL if @error is set.
 */
timedatedTimedate1 *
timedated_timedate1_proxy_new_for_bus_sync (
    GBusType             bus_type,
    GDBusProxyFlags      flags,
    const gchar         *name,
    const gchar         *object_path,
    GCancellable        *cancellable,
    GError             **error)
{
  GInitable *ret;
  ret = g_initable_new (TIMEDATED_TYPE_TIMEDATE1_PROXY, cancellable, error, "g-flags", flags, "g-name", name, "g-bus-type", bus_type, "g-object-path", object_path, "g-interface-name", "org.freedesktop.timedate1", NULL);
  if (ret != NULL)
    return TIMEDATED_TIMEDATE1 (ret);
  else
    return NULL;
}


/* ------------------------------------------------------------------------ */

/**
 * timedatedTimedate1Skeleton:
 *
 * The #timedatedTimedate1Skeleton structure contains only private data and should only be accessed using the provided API.
 */

/**
 * timedatedTimedate1SkeletonClass:
 * @parent_class: The parent class.
 *
 * Class structure for #timedatedTimedate1Skeleton.
 */

struct _timedatedTimedate1SkeletonPrivate
{
  GValue *properties;
  GList *changed_properties;
  GSource *changed_properties_idle_source;
  GMainContext *context;
  GMutex lock;
};

static void
_timedated_timedate1_skeleton_handle_method_call (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name,
  const gchar *method_name,
  GVariant *parameters,
  GDBusMethodInvocation *invocation,
  gpointer user_data)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (user_data);
  _ExtendedGDBusMethodInfo *info;
  GVariantIter iter;
  GVariant *child;
  GValue *paramv;
  guint num_params;
  guint num_extra;
  guint n;
  guint signal_id;
  GValue return_value = G_VALUE_INIT;
  info = (_ExtendedGDBusMethodInfo *) g_dbus_method_invocation_get_method_info (invocation);
  g_assert (info != NULL);
  num_params = g_variant_n_children (parameters);
  num_extra = info->pass_fdlist ? 3 : 2;  paramv = g_new0 (GValue, num_params + num_extra);
  n = 0;
  g_value_init (&paramv[n], TIMEDATED_TYPE_TIMEDATE1);
  g_value_set_object (&paramv[n++], skeleton);
  g_value_init (&paramv[n], G_TYPE_DBUS_METHOD_INVOCATION);
  g_value_set_object (&paramv[n++], invocation);
  if (info->pass_fdlist)
    {
#ifdef G_OS_UNIX
      g_value_init (&paramv[n], G_TYPE_UNIX_FD_LIST);
      g_value_set_object (&paramv[n++], g_dbus_message_get_unix_fd_list (g_dbus_method_invocation_get_message (invocation)));
#else
      g_assert_not_reached ();
#endif
    }
  g_variant_iter_init (&iter, parameters);
  while ((child = g_variant_iter_next_value (&iter)) != NULL)
    {
      _ExtendedGDBusArgInfo *arg_info = (_ExtendedGDBusArgInfo *) info->parent_struct.in_args[n - num_extra];
      if (arg_info->use_gvariant)
        {
          g_value_init (&paramv[n], G_TYPE_VARIANT);
          g_value_set_variant (&paramv[n], child);
          n++;
        }
      else
        g_dbus_gvariant_to_gvalue (child, &paramv[n++]);
      g_variant_unref (child);
    }
  signal_id = g_signal_lookup (info->signal_name, TIMEDATED_TYPE_TIMEDATE1);
  g_value_init (&return_value, G_TYPE_BOOLEAN);
  g_signal_emitv (paramv, signal_id, 0, &return_value);
  if (!g_value_get_boolean (&return_value))
    g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_UNKNOWN_METHOD, "Method %s is not implemented on interface %s", method_name, interface_name);
  g_value_unset (&return_value);
  for (n = 0; n < num_params + num_extra; n++)
    g_value_unset (&paramv[n]);
  g_free (paramv);
}

static GVariant *
_timedated_timedate1_skeleton_handle_get_property (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name G_GNUC_UNUSED,
  const gchar *property_name,
  GError **error,
  gpointer user_data)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (user_data);
  GValue value = G_VALUE_INIT;
  GParamSpec *pspec;
  _ExtendedGDBusPropertyInfo *info;
  GVariant *ret;
  ret = NULL;
  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_timedated_timedate1_interface_info.parent_struct, property_name);
  g_assert (info != NULL);
  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
  if (pspec == NULL)
    {
      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
    }
  else
    {
      g_value_init (&value, pspec->value_type);
      g_object_get_property (G_OBJECT (skeleton), info->hyphen_name, &value);
      ret = g_dbus_gvalue_to_gvariant (&value, G_VARIANT_TYPE (info->parent_struct.signature));
      g_value_unset (&value);
    }
  return ret;
}

static gboolean
_timedated_timedate1_skeleton_handle_set_property (
  GDBusConnection *connection G_GNUC_UNUSED,
  const gchar *sender G_GNUC_UNUSED,
  const gchar *object_path G_GNUC_UNUSED,
  const gchar *interface_name G_GNUC_UNUSED,
  const gchar *property_name,
  GVariant *variant,
  GError **error,
  gpointer user_data)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (user_data);
  GValue value = G_VALUE_INIT;
  GParamSpec *pspec;
  _ExtendedGDBusPropertyInfo *info;
  gboolean ret;
  ret = FALSE;
  info = (_ExtendedGDBusPropertyInfo *) g_dbus_interface_info_lookup_property ((GDBusInterfaceInfo *) &_timedated_timedate1_interface_info.parent_struct, property_name);
  g_assert (info != NULL);
  pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (skeleton), info->hyphen_name);
  if (pspec == NULL)
    {
      g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "No property with name %s", property_name);
    }
  else
    {
      if (info->use_gvariant)
        g_value_set_variant (&value, variant);
      else
        g_dbus_gvariant_to_gvalue (variant, &value);
      g_object_set_property (G_OBJECT (skeleton), info->hyphen_name, &value);
      g_value_unset (&value);
      ret = TRUE;
    }
  return ret;
}

static const GDBusInterfaceVTable _timedated_timedate1_skeleton_vtable =
{
  _timedated_timedate1_skeleton_handle_method_call,
  _timedated_timedate1_skeleton_handle_get_property,
  _timedated_timedate1_skeleton_handle_set_property,
  {NULL}
};

static GDBusInterfaceInfo *
timedated_timedate1_skeleton_dbus_interface_get_info (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
{
  return timedated_timedate1_interface_info ();
}

static GDBusInterfaceVTable *
timedated_timedate1_skeleton_dbus_interface_get_vtable (GDBusInterfaceSkeleton *skeleton G_GNUC_UNUSED)
{
  return (GDBusInterfaceVTable *) &_timedated_timedate1_skeleton_vtable;
}

static GVariant *
timedated_timedate1_skeleton_dbus_interface_get_properties (GDBusInterfaceSkeleton *_skeleton)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (_skeleton);

  GVariantBuilder builder;
  guint n;
  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
  if (_timedated_timedate1_interface_info.parent_struct.properties == NULL)
    goto out;
  for (n = 0; _timedated_timedate1_interface_info.parent_struct.properties[n] != NULL; n++)
    {
      GDBusPropertyInfo *info = _timedated_timedate1_interface_info.parent_struct.properties[n];
      if (info->flags & G_DBUS_PROPERTY_INFO_FLAGS_READABLE)
        {
          GVariant *value;
          value = _timedated_timedate1_skeleton_handle_get_property (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)), NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)), "org.freedesktop.timedate1", info->name, NULL, skeleton);
          if (value != NULL)
            {
              g_variant_take_ref (value);
              g_variant_builder_add (&builder, "{sv}", info->name, value);
              g_variant_unref (value);
            }
        }
    }
out:
  return g_variant_builder_end (&builder);
}

static gboolean _timedated_timedate1_emit_changed (gpointer user_data);

static void
timedated_timedate1_skeleton_dbus_interface_flush (GDBusInterfaceSkeleton *_skeleton)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (_skeleton);
  gboolean emit_changed = FALSE;

  g_mutex_lock (&skeleton->priv->lock);
  if (skeleton->priv->changed_properties_idle_source != NULL)
    {
      g_source_destroy (skeleton->priv->changed_properties_idle_source);
      skeleton->priv->changed_properties_idle_source = NULL;
      emit_changed = TRUE;
    }
  g_mutex_unlock (&skeleton->priv->lock);

  if (emit_changed)
    _timedated_timedate1_emit_changed (skeleton);
}

static void timedated_timedate1_skeleton_iface_init (timedatedTimedate1Iface *iface);
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
G_DEFINE_TYPE_WITH_CODE (timedatedTimedate1Skeleton, timedated_timedate1_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
                         G_ADD_PRIVATE (timedatedTimedate1Skeleton)
                         G_IMPLEMENT_INTERFACE (TIMEDATED_TYPE_TIMEDATE1, timedated_timedate1_skeleton_iface_init));

#else
G_DEFINE_TYPE_WITH_CODE (timedatedTimedate1Skeleton, timedated_timedate1_skeleton, G_TYPE_DBUS_INTERFACE_SKELETON,
                         G_IMPLEMENT_INTERFACE (TIMEDATED_TYPE_TIMEDATE1, timedated_timedate1_skeleton_iface_init));

#endif
static void
timedated_timedate1_skeleton_finalize (GObject *object)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (object);
  guint n;
  for (n = 0; n < 7; n++)
    g_value_unset (&skeleton->priv->properties[n]);
  g_free (skeleton->priv->properties);
  g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
  if (skeleton->priv->changed_properties_idle_source != NULL)
    g_source_destroy (skeleton->priv->changed_properties_idle_source);
  g_main_context_unref (skeleton->priv->context);
  g_mutex_clear (&skeleton->priv->lock);
  G_OBJECT_CLASS (timedated_timedate1_skeleton_parent_class)->finalize (object);
}

static void
timedated_timedate1_skeleton_get_property (GObject      *object,
  guint         prop_id,
  GValue       *value,
  GParamSpec   *pspec G_GNUC_UNUSED)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (object);
  g_assert (prop_id != 0 && prop_id - 1 < 7);
  g_mutex_lock (&skeleton->priv->lock);
  g_value_copy (&skeleton->priv->properties[prop_id - 1], value);
  g_mutex_unlock (&skeleton->priv->lock);
}

static gboolean
_timedated_timedate1_emit_changed (gpointer user_data)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (user_data);
  GList *l;
  GVariantBuilder builder;
  GVariantBuilder invalidated_builder;
  guint num_changes;

  g_mutex_lock (&skeleton->priv->lock);
  g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
  g_variant_builder_init (&invalidated_builder, G_VARIANT_TYPE ("as"));
  for (l = skeleton->priv->changed_properties, num_changes = 0; l != NULL; l = l->next)
    {
      ChangedProperty *cp = l->data;
      GVariant *variant;
      const GValue *cur_value;

      cur_value = &skeleton->priv->properties[cp->prop_id - 1];
      if (!_g_value_equal (cur_value, &cp->orig_value))
        {
          variant = g_dbus_gvalue_to_gvariant (cur_value, G_VARIANT_TYPE (cp->info->parent_struct.signature));
          g_variant_builder_add (&builder, "{sv}", cp->info->parent_struct.name, variant);
          g_variant_unref (variant);
          num_changes++;
        }
    }
  if (num_changes > 0)
    {
      GList *connections, *ll;
      GVariant *signal_variant;
      signal_variant = g_variant_ref_sink (g_variant_new ("(sa{sv}as)", "org.freedesktop.timedate1",
                                           &builder, &invalidated_builder));
      connections = g_dbus_interface_skeleton_get_connections (G_DBUS_INTERFACE_SKELETON (skeleton));
      for (ll = connections; ll != NULL; ll = ll->next)
        {
          GDBusConnection *connection = ll->data;

          g_dbus_connection_emit_signal (connection,
                                         NULL, g_dbus_interface_skeleton_get_object_path (G_DBUS_INTERFACE_SKELETON (skeleton)),
                                         "org.freedesktop.DBus.Properties",
                                         "PropertiesChanged",
                                         signal_variant,
                                         NULL);
        }
      g_variant_unref (signal_variant);
      g_list_free_full (connections, g_object_unref);
    }
  else
    {
      g_variant_builder_clear (&builder);
      g_variant_builder_clear (&invalidated_builder);
    }
  g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
  skeleton->priv->changed_properties = NULL;
  skeleton->priv->changed_properties_idle_source = NULL;
  g_mutex_unlock (&skeleton->priv->lock);
  return FALSE;
}

static void
_timedated_timedate1_schedule_emit_changed (timedatedTimedate1Skeleton *skeleton, const _ExtendedGDBusPropertyInfo *info, guint prop_id, const GValue *orig_value)
{
  ChangedProperty *cp;
  GList *l;
  cp = NULL;
  for (l = skeleton->priv->changed_properties; l != NULL; l = l->next)
    {
      ChangedProperty *i_cp = l->data;
      if (i_cp->info == info)
        {
          cp = i_cp;
          break;
        }
    }
  if (cp == NULL)
    {
      cp = g_new0 (ChangedProperty, 1);
      cp->prop_id = prop_id;
      cp->info = info;
      skeleton->priv->changed_properties = g_list_prepend (skeleton->priv->changed_properties, cp);
      g_value_init (&cp->orig_value, G_VALUE_TYPE (orig_value));
      g_value_copy (orig_value, &cp->orig_value);
    }
}

static void
timedated_timedate1_skeleton_notify (GObject      *object,
  GParamSpec *pspec G_GNUC_UNUSED)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (object);
  g_mutex_lock (&skeleton->priv->lock);
  if (skeleton->priv->changed_properties != NULL &&
      skeleton->priv->changed_properties_idle_source == NULL)
    {
      skeleton->priv->changed_properties_idle_source = g_idle_source_new ();
      g_source_set_priority (skeleton->priv->changed_properties_idle_source, G_PRIORITY_DEFAULT);
      g_source_set_callback (skeleton->priv->changed_properties_idle_source, _timedated_timedate1_emit_changed, g_object_ref (skeleton), (GDestroyNotify) g_object_unref);
      g_source_attach (skeleton->priv->changed_properties_idle_source, skeleton->priv->context);
      g_source_unref (skeleton->priv->changed_properties_idle_source);
    }
  g_mutex_unlock (&skeleton->priv->lock);
}

static void
timedated_timedate1_skeleton_set_property (GObject      *object,
  guint         prop_id,
  const GValue *value,
  GParamSpec   *pspec)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (object);
  g_assert (prop_id != 0 && prop_id - 1 < 7);
  g_mutex_lock (&skeleton->priv->lock);
  g_object_freeze_notify (object);
  if (!_g_value_equal (value, &skeleton->priv->properties[prop_id - 1]))
    {
      if (g_dbus_interface_skeleton_get_connection (G_DBUS_INTERFACE_SKELETON (skeleton)) != NULL)
        _timedated_timedate1_schedule_emit_changed (skeleton, _timedated_timedate1_property_info_pointers[prop_id - 1], prop_id, &skeleton->priv->properties[prop_id - 1]);
      g_value_copy (value, &skeleton->priv->properties[prop_id - 1]);
      g_object_notify_by_pspec (object, pspec);
    }
  g_mutex_unlock (&skeleton->priv->lock);
  g_object_thaw_notify (object);
}

static void
timedated_timedate1_skeleton_init (timedatedTimedate1Skeleton *skeleton)
{
#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
  skeleton->priv = timedated_timedate1_skeleton_get_instance_private (skeleton);
#else
  skeleton->priv = G_TYPE_INSTANCE_GET_PRIVATE (skeleton, TIMEDATED_TYPE_TIMEDATE1_SKELETON, timedatedTimedate1SkeletonPrivate);
#endif

  g_mutex_init (&skeleton->priv->lock);
  skeleton->priv->context = g_main_context_ref_thread_default ();
  skeleton->priv->properties = g_new0 (GValue, 7);
  g_value_init (&skeleton->priv->properties[0], G_TYPE_STRING);
  g_value_init (&skeleton->priv->properties[1], G_TYPE_BOOLEAN);
  g_value_init (&skeleton->priv->properties[2], G_TYPE_BOOLEAN);
  g_value_init (&skeleton->priv->properties[3], G_TYPE_BOOLEAN);
  g_value_init (&skeleton->priv->properties[4], G_TYPE_BOOLEAN);
  g_value_init (&skeleton->priv->properties[5], G_TYPE_UINT64);
  g_value_init (&skeleton->priv->properties[6], G_TYPE_UINT64);
}

static const gchar *
timedated_timedate1_skeleton_get_timezone (timedatedTimedate1 *object)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (object);
  const gchar *value;
  g_mutex_lock (&skeleton->priv->lock);
  value = g_value_get_string (&(skeleton->priv->properties[0]));
  g_mutex_unlock (&skeleton->priv->lock);
  return value;
}

static gboolean 
timedated_timedate1_skeleton_get_local_rtc (timedatedTimedate1 *object)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (object);
  gboolean value;
  g_mutex_lock (&skeleton->priv->lock);
  value = g_value_get_boolean (&(skeleton->priv->properties[1]));
  g_mutex_unlock (&skeleton->priv->lock);
  return value;
}

static gboolean 
timedated_timedate1_skeleton_get_can_ntp (timedatedTimedate1 *object)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (object);
  gboolean value;
  g_mutex_lock (&skeleton->priv->lock);
  value = g_value_get_boolean (&(skeleton->priv->properties[2]));
  g_mutex_unlock (&skeleton->priv->lock);
  return value;
}

static gboolean 
timedated_timedate1_skeleton_get_ntp (timedatedTimedate1 *object)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (object);
  gboolean value;
  g_mutex_lock (&skeleton->priv->lock);
  value = g_value_get_boolean (&(skeleton->priv->properties[3]));
  g_mutex_unlock (&skeleton->priv->lock);
  return value;
}

static gboolean 
timedated_timedate1_skeleton_get_ntpsynchronized (timedatedTimedate1 *object)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (object);
  gboolean value;
  g_mutex_lock (&skeleton->priv->lock);
  value = g_value_get_boolean (&(skeleton->priv->properties[4]));
  g_mutex_unlock (&skeleton->priv->lock);
  return value;
}

static guint64 
timedated_timedate1_skeleton_get_time_usec (timedatedTimedate1 *object)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (object);
  guint64 value;
  g_mutex_lock (&skeleton->priv->lock);
  value = g_value_get_uint64 (&(skeleton->priv->properties[5]));
  g_mutex_unlock (&skeleton->priv->lock);
  return value;
}

static guint64 
timedated_timedate1_skeleton_get_rtctime_usec (timedatedTimedate1 *object)
{
  timedatedTimedate1Skeleton *skeleton = TIMEDATED_TIMEDATE1_SKELETON (object);
  guint64 value;
  g_mutex_lock (&skeleton->priv->lock);
  value = g_value_get_uint64 (&(skeleton->priv->properties[6]));
  g_mutex_unlock (&skeleton->priv->lock);
  return value;
}

static void
timedated_timedate1_skeleton_class_init (timedatedTimedate1SkeletonClass *klass)
{
  GObjectClass *gobject_class;
  GDBusInterfaceSkeletonClass *skeleton_class;

  gobject_class = G_OBJECT_CLASS (klass);
  gobject_class->finalize = timedated_timedate1_skeleton_finalize;
  gobject_class->get_property = timedated_timedate1_skeleton_get_property;
  gobject_class->set_property = timedated_timedate1_skeleton_set_property;
  gobject_class->notify       = timedated_timedate1_skeleton_notify;


  timedated_timedate1_override_properties (gobject_class, 1);

  skeleton_class = G_DBUS_INTERFACE_SKELETON_CLASS (klass);
  skeleton_class->get_info = timedated_timedate1_skeleton_dbus_interface_get_info;
  skeleton_class->get_properties = timedated_timedate1_skeleton_dbus_interface_get_properties;
  skeleton_class->flush = timedated_timedate1_skeleton_dbus_interface_flush;
  skeleton_class->get_vtable = timedated_timedate1_skeleton_dbus_interface_get_vtable;

#if GLIB_VERSION_MAX_ALLOWED < GLIB_VERSION_2_38
  g_type_class_add_private (klass, sizeof (timedatedTimedate1SkeletonPrivate));
#endif
}

static void
timedated_timedate1_skeleton_iface_init (timedatedTimedate1Iface *iface)
{
  iface->get_timezone = timedated_timedate1_skeleton_get_timezone;
  iface->get_local_rtc = timedated_timedate1_skeleton_get_local_rtc;
  iface->get_can_ntp = timedated_timedate1_skeleton_get_can_ntp;
  iface->get_ntp = timedated_timedate1_skeleton_get_ntp;
  iface->get_ntpsynchronized = timedated_timedate1_skeleton_get_ntpsynchronized;
  iface->get_time_usec = timedated_timedate1_skeleton_get_time_usec;
  iface->get_rtctime_usec = timedated_timedate1_skeleton_get_rtctime_usec;
}

/**
 * timedated_timedate1_skeleton_new:
 *
 * Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-timedate1.top_of_page">org.freedesktop.timedate1</link>.
 *
 * Returns: (transfer full) (type timedatedTimedate1Skeleton): The skeleton object.
 */
timedatedTimedate1 *
timedated_timedate1_skeleton_new (void)
{
  return TIMEDATED_TIMEDATE1 (g_object_new (TIMEDATED_TYPE_TIMEDATE1_SKELETON, NULL));
}

/* ------------------------------------------------------------------------
 * Code for Object, ObjectProxy and ObjectSkeleton
 * ------------------------------------------------------------------------
 */

/**
 * SECTION:timedatedObject
 * @title: timedatedObject
 * @short_description: Specialized GDBusObject types
 *
 * This section contains the #timedatedObject, #timedatedObjectProxy, and #timedatedObjectSkeleton types which make it easier to work with objects implementing generated types for D-Bus interfaces.
 */

/**
 * timedatedObject:
 *
 * The #timedatedObject type is a specialized container of interfaces.
 */

/**
 * timedatedObjectIface:
 * @parent_iface: The parent interface.
 *
 * Virtual table for the #timedatedObject interface.
 */

typedef timedatedObjectIface timedatedObjectInterface;
G_DEFINE_INTERFACE_WITH_CODE (timedatedObject, timedated_object, G_TYPE_OBJECT, g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_DBUS_OBJECT));

static void
timedated_object_default_init (timedatedObjectIface *iface)
{
  /**
   * timedatedObject:timedate1:
   *
   * The #timedatedTimedate1 instance corresponding to the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-timedate1.top_of_page">org.freedesktop.timedate1</link>, if any.
   *
   * Connect to the #GObject::notify signal to get informed of property changes.
   */
  g_object_interface_install_property (iface, g_param_spec_object ("timedate1", "timedate1", "timedate1", TIMEDATED_TYPE_TIMEDATE1, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS));

}

/**
 * timedated_object_get_timedate1:
 * @object: A #timedatedObject.
 *
 * Gets the #timedatedTimedate1 instance for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-timedate1.top_of_page">org.freedesktop.timedate1</link> on @object, if any.
 *
 * Returns: (transfer full): A #timedatedTimedate1 that must be freed with g_object_unref() or %NULL if @object does not implement the interface.
 */
timedatedTimedate1 *timedated_object_get_timedate1 (timedatedObject *object)
{
  GDBusInterface *ret;
  ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.freedesktop.timedate1");
  if (ret == NULL)
    return NULL;
  return TIMEDATED_TIMEDATE1 (ret);
}


/**
 * timedated_object_peek_timedate1: (skip)
 * @object: A #timedatedObject.
 *
 * Like timedated_object_get_timedate1() but doesn't increase the reference count on the returned object.
 *
 * <warning>It is not safe to use the returned object if you are on another thread than the one where the #GDBusObjectManagerClient or #GDBusObjectManagerServer for @object is running.</warning>
 *
 * Returns: (transfer none): A #timedatedTimedate1 or %NULL if @object does not implement the interface. Do not free the returned object, it is owned by @object.
 */
timedatedTimedate1 *timedated_object_peek_timedate1 (timedatedObject *object)
{
  GDBusInterface *ret;
  ret = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.freedesktop.timedate1");
  if (ret == NULL)
    return NULL;
  g_object_unref (ret);
  return TIMEDATED_TIMEDATE1 (ret);
}


static void
timedated_object_notify (GDBusObject *object, GDBusInterface *interface)
{
  _ExtendedGDBusInterfaceInfo *info = (_ExtendedGDBusInterfaceInfo *) g_dbus_interface_get_info (interface);
  /* info can be NULL if the other end is using a D-Bus interface we don't know
   * anything about, for example old generated code in this process talking to
   * newer generated code in the other process. */
  if (info != NULL)
    g_object_notify (G_OBJECT (object), info->hyphen_name);
}

/**
 * timedatedObjectProxy:
 *
 * The #timedatedObjectProxy structure contains only private data and should only be accessed using the provided API.
 */

/**
 * timedatedObjectProxyClass:
 * @parent_class: The parent class.
 *
 * Class structure for #timedatedObjectProxy.
 */

static void
timedated_object_proxy__timedated_object_iface_init (timedatedObjectIface *iface G_GNUC_UNUSED)
{
}

static void
timedated_object_proxy__g_dbus_object_iface_init (GDBusObjectIface *iface)
{
  iface->interface_added = timedated_object_notify;
  iface->interface_removed = timedated_object_notify;
}


G_DEFINE_TYPE_WITH_CODE (timedatedObjectProxy, timedated_object_proxy, G_TYPE_DBUS_OBJECT_PROXY,
                         G_IMPLEMENT_INTERFACE (TIMEDATED_TYPE_OBJECT, timedated_object_proxy__timedated_object_iface_init)
                         G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, timedated_object_proxy__g_dbus_object_iface_init));

static void
timedated_object_proxy_init (timedatedObjectProxy *object G_GNUC_UNUSED)
{
}

static void
timedated_object_proxy_set_property (GObject      *gobject,
  guint         prop_id,
  const GValue *value G_GNUC_UNUSED,
  GParamSpec   *pspec)
{
  G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
}

static void
timedated_object_proxy_get_property (GObject      *gobject,
  guint         prop_id,
  GValue       *value,
  GParamSpec   *pspec)
{
  timedatedObjectProxy *object = TIMEDATED_OBJECT_PROXY (gobject);
  GDBusInterface *interface;

  switch (prop_id)
    {
    case 1:
      interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.freedesktop.timedate1");
      g_value_take_object (value, interface);
      break;

    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
      break;
  }
}

static void
timedated_object_proxy_class_init (timedatedObjectProxyClass *klass)
{
  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);

  gobject_class->set_property = timedated_object_proxy_set_property;
  gobject_class->get_property = timedated_object_proxy_get_property;

  g_object_class_override_property (gobject_class, 1, "timedate1");
}

/**
 * timedated_object_proxy_new:
 * @connection: A #GDBusConnection.
 * @object_path: An object path.
 *
 * Creates a new proxy object.
 *
 * Returns: (transfer full): The proxy object.
 */
timedatedObjectProxy *
timedated_object_proxy_new (GDBusConnection *connection,
  const gchar *object_path)
{
  g_return_val_if_fail (G_IS_DBUS_CONNECTION (connection), NULL);
  g_return_val_if_fail (g_variant_is_object_path (object_path), NULL);
  return TIMEDATED_OBJECT_PROXY (g_object_new (TIMEDATED_TYPE_OBJECT_PROXY, "g-connection", connection, "g-object-path", object_path, NULL));
}

/**
 * timedatedObjectSkeleton:
 *
 * The #timedatedObjectSkeleton structure contains only private data and should only be accessed using the provided API.
 */

/**
 * timedatedObjectSkeletonClass:
 * @parent_class: The parent class.
 *
 * Class structure for #timedatedObjectSkeleton.
 */

static void
timedated_object_skeleton__timedated_object_iface_init (timedatedObjectIface *iface G_GNUC_UNUSED)
{
}


static void
timedated_object_skeleton__g_dbus_object_iface_init (GDBusObjectIface *iface)
{
  iface->interface_added = timedated_object_notify;
  iface->interface_removed = timedated_object_notify;
}

G_DEFINE_TYPE_WITH_CODE (timedatedObjectSkeleton, timedated_object_skeleton, G_TYPE_DBUS_OBJECT_SKELETON,
                         G_IMPLEMENT_INTERFACE (TIMEDATED_TYPE_OBJECT, timedated_object_skeleton__timedated_object_iface_init)
                         G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, timedated_object_skeleton__g_dbus_object_iface_init));

static void
timedated_object_skeleton_init (timedatedObjectSkeleton *object G_GNUC_UNUSED)
{
}

static void
timedated_object_skeleton_set_property (GObject      *gobject,
  guint         prop_id,
  const GValue *value,
  GParamSpec   *pspec)
{
  timedatedObjectSkeleton *object = TIMEDATED_OBJECT_SKELETON (gobject);
  GDBusInterfaceSkeleton *interface;

  switch (prop_id)
    {
    case 1:
      interface = g_value_get_object (value);
      if (interface != NULL)
        {
          g_warn_if_fail (TIMEDATED_IS_TIMEDATE1 (interface));
          g_dbus_object_skeleton_add_interface (G_DBUS_OBJECT_SKELETON (object), interface);
        }
      else
        {
          g_dbus_object_skeleton_remove_interface_by_name (G_DBUS_OBJECT_SKELETON (object), "org.freedesktop.timedate1");
        }
      break;

    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
      break;
  }
}

static void
timedated_object_skeleton_get_property (GObject      *gobject,
  guint         prop_id,
  GValue       *value,
  GParamSpec   *pspec)
{
  timedatedObjectSkeleton *object = TIMEDATED_OBJECT_SKELETON (gobject);
  GDBusInterface *interface;

  switch (prop_id)
    {
    case 1:
      interface = g_dbus_object_get_interface (G_DBUS_OBJECT (object), "org.freedesktop.timedate1");
      g_value_take_object (value, interface);
      break;

    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
      break;
  }
}

static void
timedated_object_skeleton_class_init (timedatedObjectSkeletonClass *klass)
{
  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);

  gobject_class->set_property = timedated_object_skeleton_set_property;
  gobject_class->get_property = timedated_object_skeleton_get_property;

  g_object_class_override_property (gobject_class, 1, "timedate1");
}

/**
 * timedated_object_skeleton_new:
 * @object_path: An object path.
 *
 * Creates a new skeleton object.
 *
 * Returns: (transfer full): The skeleton object.
 */
timedatedObjectSkeleton *
timedated_object_skeleton_new (const gchar *object_path)
{
  g_return_val_if_fail (g_variant_is_object_path (object_path), NULL);
  return TIMEDATED_OBJECT_SKELETON (g_object_new (TIMEDATED_TYPE_OBJECT_SKELETON, "g-object-path", object_path, NULL));
}

/**
 * timedated_object_skeleton_set_timedate1:
 * @object: A #timedatedObjectSkeleton.
 * @interface_: (allow-none): A #timedatedTimedate1 or %NULL to clear the interface.
 *
 * Sets the #timedatedTimedate1 instance for the D-Bus interface <link linkend="gdbus-interface-org-freedesktop-timedate1.top_of_page">org.freedesktop.timedate1</link> on @object.
 */
void timedated_object_skeleton_set_timedate1 (timedatedObjectSkeleton *object, timedatedTimedate1 *interface_)
{
  g_object_set (G_OBJECT (object), "timedate1", interface_, NULL);
}


/* ------------------------------------------------------------------------
 * Code for ObjectManager client
 * ------------------------------------------------------------------------
 */

/**
 * SECTION:timedatedObjectManagerClient
 * @title: timedatedObjectManagerClient
 * @short_description: Generated GDBusObjectManagerClient type
 *
 * This section contains a #GDBusObjectManagerClient that uses timedated_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc.
 */

/**
 * timedatedObjectManagerClient:
 *
 * The #timedatedObjectManagerClient structure contains only private data and should only be accessed using the provided API.
 */

/**
 * timedatedObjectManagerClientClass:
 * @parent_class: The parent class.
 *
 * Class structure for #timedatedObjectManagerClient.
 */

G_DEFINE_TYPE (timedatedObjectManagerClient, timedated_object_manager_client, G_TYPE_DBUS_OBJECT_MANAGER_CLIENT);

static void
timedated_object_manager_client_init (timedatedObjectManagerClient *manager G_GNUC_UNUSED)
{
}

static void
timedated_object_manager_client_class_init (timedatedObjectManagerClientClass *klass G_GNUC_UNUSED)
{
}

/**
 * timedated_object_manager_client_get_proxy_type:
 * @manager: A #GDBusObjectManagerClient.
 * @object_path: The object path of the remote object (unused).
 * @interface_name: (allow-none): Interface name of the remote object or %NULL to get the object proxy #GType.
 * @user_data: User data (unused).
 *
 * A #GDBusProxyTypeFunc that maps @interface_name to the generated #GDBusObjectProxy<!-- -->- and #GDBusProxy<!-- -->-derived types.
 *
 * Returns: A #GDBusProxy<!-- -->-derived #GType if @interface_name is not %NULL, otherwise the #GType for #timedatedObjectProxy.
 */
GType
timedated_object_manager_client_get_proxy_type (GDBusObjectManagerClient *manager G_GNUC_UNUSED, const gchar *object_path G_GNUC_UNUSED, const gchar *interface_name, gpointer user_data G_GNUC_UNUSED)
{
  static gsize once_init_value = 0;
  static GHashTable *lookup_hash;
  GType ret;

  if (interface_name == NULL)
    return TIMEDATED_TYPE_OBJECT_PROXY;
  if (g_once_init_enter (&once_init_value))
    {
      lookup_hash = g_hash_table_new (g_str_hash, g_str_equal);
      g_hash_table_insert (lookup_hash, (gpointer) "org.freedesktop.timedate1", GSIZE_TO_POINTER (TIMEDATED_TYPE_TIMEDATE1_PROXY));
      g_once_init_leave (&once_init_value, 1);
    }
  ret = (GType) GPOINTER_TO_SIZE (g_hash_table_lookup (lookup_hash, interface_name));
  if (ret == (GType) 0)
    ret = G_TYPE_DBUS_PROXY;
  return ret;
}

/**
 * timedated_object_manager_client_new:
 * @connection: A #GDBusConnection.
 * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration.
 * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
 * @user_data: User data to pass to @callback.
 *
 * Asynchronously creates #GDBusObjectManagerClient using timedated_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new() for more details.
 *
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call timedated_object_manager_client_new_finish() to get the result of the operation.
 *
 * See timedated_object_manager_client_new_sync() for the synchronous, blocking version of this constructor.
 */
void
timedated_object_manager_client_new (
    GDBusConnection        *connection,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GAsyncReadyCallback     callback,
    gpointer                user_data)
{
  g_async_initable_new_async (TIMEDATED_TYPE_OBJECT_MANAGER_CLIENT, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", timedated_object_manager_client_get_proxy_type, NULL);
}

/**
 * timedated_object_manager_client_new_finish:
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to timedated_object_manager_client_new().
 * @error: Return location for error or %NULL
 *
 * Finishes an operation started with timedated_object_manager_client_new().
 *
 * Returns: (transfer full) (type timedatedObjectManagerClient): The constructed object manager client or %NULL if @error is set.
 */
GDBusObjectManager *
timedated_object_manager_client_new_finish (
    GAsyncResult        *res,
    GError             **error)
{
  GObject *ret;
  GObject *source_object;
  source_object = g_async_result_get_source_object (res);
  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
  g_object_unref (source_object);
  if (ret != NULL)
    return G_DBUS_OBJECT_MANAGER (ret);
  else
    return NULL;
}

/**
 * timedated_object_manager_client_new_sync:
 * @connection: A #GDBusConnection.
 * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration.
 * @name: (allow-none): A bus name (well-known or unique) or %NULL if @connection is not a message bus connection.
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL
 *
 * Synchronously creates #GDBusObjectManagerClient using timedated_object_manager_client_get_proxy_type() as the #GDBusProxyTypeFunc. See g_dbus_object_manager_client_new_sync() for more details.
 *
 * The calling thread is blocked until a reply is received.
 *
 * See timedated_object_manager_client_new() for the asynchronous version of this constructor.
 *
 * Returns: (transfer full) (type timedatedObjectManagerClient): The constructed object manager client or %NULL if @error is set.
 */
GDBusObjectManager *
timedated_object_manager_client_new_sync (
    GDBusConnection        *connection,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GError                **error)
{
  GInitable *ret;
  ret = g_initable_new (TIMEDATED_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "connection", connection, "object-path", object_path, "get-proxy-type-func", timedated_object_manager_client_get_proxy_type, NULL);
  if (ret != NULL)
    return G_DBUS_OBJECT_MANAGER (ret);
  else
    return NULL;
}


/**
 * timedated_object_manager_client_new_for_bus:
 * @bus_type: A #GBusType.
 * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration.
 * @name: A bus name (well-known or unique).
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @callback: A #GAsyncReadyCallback to call when the request is satisfied.
 * @user_data: User data to pass to @callback.
 *
 * Like timedated_object_manager_client_new() but takes a #GBusType instead of a #GDBusConnection.
 *
 * When the operation is finished, @callback will be invoked in the <link linkend="g-main-context-push-thread-default">thread-default main loop</link> of the thread you are calling this method from.
 * You can then call timedated_object_manager_client_new_for_bus_finish() to get the result of the operation.
 *
 * See timedated_object_manager_client_new_for_bus_sync() for the synchronous, blocking version of this constructor.
 */
void
timedated_object_manager_client_new_for_bus (
    GBusType                bus_type,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GAsyncReadyCallback     callback,
    gpointer                user_data)
{
  g_async_initable_new_async (TIMEDATED_TYPE_OBJECT_MANAGER_CLIENT, G_PRIORITY_DEFAULT, cancellable, callback, user_data, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", timedated_object_manager_client_get_proxy_type, NULL);
}

/**
 * timedated_object_manager_client_new_for_bus_finish:
 * @res: The #GAsyncResult obtained from the #GAsyncReadyCallback passed to timedated_object_manager_client_new_for_bus().
 * @error: Return location for error or %NULL
 *
 * Finishes an operation started with timedated_object_manager_client_new_for_bus().
 *
 * Returns: (transfer full) (type timedatedObjectManagerClient): The constructed object manager client or %NULL if @error is set.
 */
GDBusObjectManager *
timedated_object_manager_client_new_for_bus_finish (
    GAsyncResult        *res,
    GError             **error)
{
  GObject *ret;
  GObject *source_object;
  source_object = g_async_result_get_source_object (res);
  ret = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, error);
  g_object_unref (source_object);
  if (ret != NULL)
    return G_DBUS_OBJECT_MANAGER (ret);
  else
    return NULL;
}

/**
 * timedated_object_manager_client_new_for_bus_sync:
 * @bus_type: A #GBusType.
 * @flags: Flags from the #GDBusObjectManagerClientFlags enumeration.
 * @name: A bus name (well-known or unique).
 * @object_path: An object path.
 * @cancellable: (allow-none): A #GCancellable or %NULL.
 * @error: Return location for error or %NULL
 *
 * Like timedated_object_manager_client_new_sync() but takes a #GBusType instead of a #GDBusConnection.
 *
 * The calling thread is blocked until a reply is received.
 *
 * See timedated_object_manager_client_new_for_bus() for the asynchronous version of this constructor.
 *
 * Returns: (transfer full) (type timedatedObjectManagerClient): The constructed object manager client or %NULL if @error is set.
 */
GDBusObjectManager *
timedated_object_manager_client_new_for_bus_sync (
    GBusType                bus_type,
    GDBusObjectManagerClientFlags  flags,
    const gchar            *name,
    const gchar            *object_path,
    GCancellable           *cancellable,
    GError                **error)
{
  GInitable *ret;
  ret = g_initable_new (TIMEDATED_TYPE_OBJECT_MANAGER_CLIENT, cancellable, error, "flags", flags, "name", name, "bus-type", bus_type, "object-path", object_path, "get-proxy-type-func", timedated_object_manager_client_get_proxy_type, NULL);
  if (ret != NULL)
    return G_DBUS_OBJECT_MANAGER (ret);
  else
    return NULL;
}