static void maman_bar_class_init (MamanBarClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GParamSpec *pspec; gobject_class->set_property = maman_bar_set_property; gobject_class->get_property = maman_bar_get_property; gobject_class->finalize = maman_bar_finalize; pspec = g_param_spec_string ("name", "Maman name", "Set maman's name", "no-name-set" /* default value */, G_PARAM_READWRITE); g_object_class_install_property (gobject_class, PROP_MAMAN_NAME, pspec); pspec = g_param_spec_uchar ("papa-number", "Number of current Papa", "Set/Get papa's number", 0 /* minimum value */, 10 /* maximum value */, 2 /* default value */, G_PARAM_READWRITE); g_object_class_install_property (gobject_class, PROP_PAPA_NUMBER, pspec); }
static void gst_cmml_enc_class_init (GstCmmlEncClass * enc_class) { GObjectClass *klass = G_OBJECT_CLASS (enc_class); klass->get_property = gst_cmml_enc_get_property; klass->set_property = gst_cmml_enc_set_property; klass->finalize = gst_cmml_enc_finalize; g_object_class_install_property (klass, GST_CMML_ENC_GRANULERATE_N, g_param_spec_int64 ("granule-rate-numerator", "Granulerate numerator", "Granulerate numerator", 0, G_MAXINT64, 1000, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); g_object_class_install_property (klass, GST_CMML_ENC_GRANULERATE_D, g_param_spec_int64 ("granule-rate-denominator", "Granulerate denominator", "Granulerate denominator", 0, G_MAXINT64, 1, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); g_object_class_install_property (klass, GST_CMML_ENC_GRANULESHIFT, g_param_spec_uchar ("granule-shift", "Granuleshift", "The number of lower bits to use for partitioning a granule position", 0, 64, 32, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); GST_ELEMENT_CLASS (klass)->change_state = gst_cmml_enc_change_state; }
static void aisleriot_card_class_init (AisleriotCardClass *klass) { GObjectClass *gobject_class = (GObjectClass *) klass; ClutterActorClass *actor_class = (ClutterActorClass *) klass; GParamSpec *pspec; gobject_class->dispose = aisleriot_card_dispose; gobject_class->set_property = aisleriot_card_set_property; gobject_class->get_property = aisleriot_card_get_property; actor_class->paint = aisleriot_card_paint; actor_class->get_preferred_width = aisleriot_card_get_preferred_width; actor_class->get_preferred_height = aisleriot_card_get_preferred_height; pspec = g_param_spec_uchar ("bottom-card", NULL, NULL, 0, 255, 0, G_PARAM_WRITABLE | G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB); g_object_class_install_property (gobject_class, PROP_BOTTOM_CARD, pspec); pspec = g_param_spec_uchar ("top-card", NULL, NULL, 0, 255, 0, G_PARAM_WRITABLE | G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB); g_object_class_install_property (gobject_class, PROP_TOP_CARD, pspec); pspec = g_param_spec_object ("cache", NULL, NULL, GAMES_TYPE_CARD_TEXTURES_CACHE, G_PARAM_WRITABLE | G_PARAM_READABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB); g_object_class_install_property (gobject_class, PROP_CACHE, pspec); g_type_class_add_private (klass, sizeof (AisleriotCardPrivate)); }
static void class_init(CAModuleClass *klass) { GObjectClass *gobj_class = (gpointer)klass; klass->received_tpdu = received_tpdu_default; gobj_class->set_property = (GObjectSetPropertyFunc)set_property; g_object_class_install_property( gobj_class, PROP_DEVICE, g_param_spec_object( "device", "device", "The CADevice to use", CA_TYPE_DEVICE, G_PARAM_STATIC_NAME | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY ) ); g_object_class_install_property( gobj_class, PROP_SLOT, g_param_spec_uchar( "slot", "slot", "Which slot to use", 0x00, 0xFF, 0x00, G_PARAM_STATIC_NAME | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY ) ); signals[SIGNAL_RECEIVED_TPDU] = g_signal_new( "received-tpdu", CA_TYPE_MODULE, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(CAModuleClass, received_tpdu), g_signal_accumulator_true_handled, NULL, g_cclosure_user_marshal_BOOLEAN__UCHAR_UCHAR_POINTER_UINT, G_TYPE_BOOLEAN, 4, G_TYPE_UCHAR, G_TYPE_UCHAR, G_TYPE_POINTER, G_TYPE_UINT ); }
int main (int argc, char **argv) { gtk_test_init (&argc, &argv); /* Add a bunch of properties so we can test that we parse them properly */ gtk_style_properties_register_property (NULL, g_param_spec_boolean ("boolean-property", "boolean property", "test boolean properties", TRUE, G_PARAM_READABLE)); gtk_style_properties_register_property (NULL, g_param_spec_int ("int-property", "int property", "test int properties", G_MININT, G_MAXINT, 0, G_PARAM_READABLE)); gtk_style_properties_register_property (NULL, g_param_spec_uint ("uint-property", "uint property", "test uint properties", 0, G_MAXUINT, 0, G_PARAM_READABLE)); gtk_style_properties_register_property (NULL, g_param_spec_float ("float-property", "float property", "test float properties", -G_MAXFLOAT, G_MAXFLOAT, 0.0f, G_PARAM_READABLE)); gtk_style_properties_register_property (NULL, g_param_spec_double ("double-property", "double property", "test double properties", -G_MAXDOUBLE, G_MAXDOUBLE, 0.0, G_PARAM_READABLE)); gtk_style_properties_register_property (NULL, g_param_spec_string ("string-property", "string property", "test string properties", NULL, G_PARAM_READABLE)); gtk_style_properties_register_property (NULL, g_param_spec_boxed ("rgba-property", "rgba property", "test rgba properties", GDK_TYPE_RGBA, G_PARAM_READABLE)); gtk_style_properties_register_property (NULL, g_param_spec_boxed ("color-property", "color property", "test color properties", GDK_TYPE_COLOR, G_PARAM_READABLE)); gtk_style_properties_register_property (NULL, g_param_spec_boxed ("border-property", "border property", "test border properties", GTK_TYPE_BORDER, G_PARAM_READABLE)); gtk_style_properties_register_property (NULL, g_param_spec_boxed ("font-property", "font property", "test font properties", PANGO_TYPE_FONT_DESCRIPTION, G_PARAM_READABLE)); #if 0 /* not public API, use transition instead */ gtk_style_properties_register_property (NULL, g_param_spec_boxed ("animation-property", "animation property", "test animation properties", GTK_TYPE_ANIMATION_DESCRIPTION, G_PARAM_READABLE)); #endif gtk_style_properties_register_property (NULL, g_param_spec_object ("engine-property", "engine property", "test theming engine properties", GTK_TYPE_THEMING_ENGINE, G_PARAM_READABLE)); gtk_style_properties_register_property (NULL, g_param_spec_enum ("enum-property", "enum property", "test enum properties", GTK_TYPE_SHADOW_TYPE, 0, G_PARAM_READABLE)); gtk_style_properties_register_property (NULL, g_param_spec_flags ("flags-property", "flags property", "test flags properties", GTK_TYPE_STATE_FLAGS, GTK_STATE_FLAG_NORMAL, G_PARAM_READABLE)); gtk_style_properties_register_property (parse_uint8, g_param_spec_uchar ("uint8-property", "uint8 property", "test uint8 properties", 0, G_MAXUINT8, 0, G_PARAM_READABLE)); if (argc < 2) { const char *basedir; GFile *dir; if (g_getenv ("srcdir")) basedir = g_getenv ("srcdir"); else basedir = "."; dir = g_file_new_for_path (basedir); add_tests_for_files_in_directory (dir); g_object_unref (dir); } else { guint i; for (i = 1; i < argc; i++) { GFile *file = g_file_new_for_commandline_arg (argv[i]); add_test_for_file (file); g_object_unref (file); } } return g_test_run (); }
static void nm_device_vxlan_class_init (NMDeviceVxlanClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); g_type_class_add_private (klass, sizeof (NMDeviceVxlanPrivate)); object_class->get_property = get_property; device_class->link_changed = link_changed; device_class->setup = setup; /* properties */ g_object_class_install_property (object_class, PROP_PARENT, g_param_spec_string (NM_DEVICE_VXLAN_PARENT, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_ID, g_param_spec_uint (NM_DEVICE_VXLAN_ID, "", "", 0, G_MAXUINT32, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_GROUP, g_param_spec_string (NM_DEVICE_VXLAN_GROUP, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_LOCAL, g_param_spec_string (NM_DEVICE_VXLAN_LOCAL, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_TOS, g_param_spec_uchar (NM_DEVICE_VXLAN_TOS, "", "", 0, 255, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_TTL, g_param_spec_uchar (NM_DEVICE_VXLAN_TTL, "", "", 0, 255, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_LEARNING, g_param_spec_boolean (NM_DEVICE_VXLAN_LEARNING, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_AGEING, g_param_spec_uint (NM_DEVICE_VXLAN_AGEING, "", "", 0, G_MAXUINT32, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_LIMIT, g_param_spec_uint (NM_DEVICE_VXLAN_LIMIT, "", "", 0, G_MAXUINT32, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_DST_PORT, g_param_spec_uint (NM_DEVICE_VXLAN_DST_PORT, "", "", 0, 65535, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_SRC_PORT_MIN, g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MIN, "", "", 0, 65535, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_SRC_PORT_MAX, g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MAX, "", "", 0, 65535, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_PROXY, g_param_spec_boolean (NM_DEVICE_VXLAN_PROXY, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_RSC, g_param_spec_boolean (NM_DEVICE_VXLAN_RSC, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_L2MISS, g_param_spec_boolean (NM_DEVICE_VXLAN_L2MISS, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_L3MISS, g_param_spec_boolean (NM_DEVICE_VXLAN_L3MISS, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass), NMDBUS_TYPE_DEVICE_VXLAN_SKELETON, NULL); }
static void nm_device_vxlan_class_init (NMDeviceVxlanClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); g_type_class_add_private (klass, sizeof (NMDeviceVxlanPrivate)); object_class->constructed = constructed; object_class->get_property = get_property; device_class->link_changed = link_changed; /* properties */ g_object_class_install_property (object_class, PROP_PARENT, g_param_spec_boxed (NM_DEVICE_VXLAN_PARENT, "", "", DBUS_TYPE_G_OBJECT_PATH, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_ID, g_param_spec_uint (NM_DEVICE_VXLAN_ID, "", "", 0, G_MAXUINT32, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_GROUP, g_param_spec_string (NM_DEVICE_VXLAN_GROUP, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_LOCAL, g_param_spec_string (NM_DEVICE_VXLAN_LOCAL, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_TOS, g_param_spec_uchar (NM_DEVICE_VXLAN_TOS, "", "", 0, 255, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_TTL, g_param_spec_uchar (NM_DEVICE_VXLAN_TTL, "", "", 0, 255, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_LEARNING, g_param_spec_boolean (NM_DEVICE_VXLAN_LEARNING, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_AGEING, g_param_spec_uint (NM_DEVICE_VXLAN_AGEING, "", "", 0, G_MAXUINT32, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_LIMIT, g_param_spec_uint (NM_DEVICE_VXLAN_LIMIT, "", "", 0, G_MAXUINT32, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_DST_PORT, g_param_spec_uint (NM_DEVICE_VXLAN_DST_PORT, "", "", 0, 65535, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_SRC_PORT_MIN, g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MIN, "", "", 0, 65535, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_SRC_PORT_MAX, g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MAX, "", "", 0, 65535, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_PROXY, g_param_spec_boolean (NM_DEVICE_VXLAN_PROXY, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_RSC, g_param_spec_boolean (NM_DEVICE_VXLAN_RSC, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_L2MISS, g_param_spec_boolean (NM_DEVICE_VXLAN_L2MISS, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_L3MISS, g_param_spec_boolean (NM_DEVICE_VXLAN_L3MISS, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); nm_dbus_manager_register_exported_type (nm_dbus_manager_get (), G_TYPE_FROM_CLASS (klass), &dbus_glib_nm_device_vxlan_object_info); }
static void nm_device_ip_tunnel_class_init (NMDeviceIPTunnelClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); g_type_class_add_private (klass, sizeof (NMDeviceIPTunnelPrivate)); object_class->constructed = constructed; object_class->get_property = get_property; object_class->set_property = set_property; device_class->link_changed = link_changed; device_class->complete_connection = complete_connection; device_class->update_connection = update_connection; device_class->check_connection_compatible = check_connection_compatible; device_class->create_and_realize = create_and_realize; device_class->ip4_config_pre_commit = ip4_config_pre_commit; device_class->realize_start_notify = realize_start_notify; device_class->unrealize_notify = unrealize_notify; NM_DEVICE_CLASS_DECLARE_TYPES (klass, NM_SETTING_IP_TUNNEL_SETTING_NAME, NM_LINK_TYPE_GRE, NM_LINK_TYPE_IP6TNL, NM_LINK_TYPE_IPIP, NM_LINK_TYPE_SIT); /* properties */ g_object_class_install_property (object_class, PROP_MODE, g_param_spec_uint (NM_DEVICE_IP_TUNNEL_MODE, "", "", 0, G_MAXUINT, 0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS)); /* properties */ g_object_class_install_property (object_class, PROP_PARENT, g_param_spec_string (NM_DEVICE_IP_TUNNEL_PARENT, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_LOCAL, g_param_spec_string (NM_DEVICE_IP_TUNNEL_LOCAL, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_REMOTE, g_param_spec_string (NM_DEVICE_IP_TUNNEL_REMOTE, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_TTL, g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_TTL, "", "", 0, 255, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_TOS, g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_TOS, "", "", 0, 255, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_PATH_MTU_DISCOVERY, g_param_spec_boolean (NM_DEVICE_IP_TUNNEL_PATH_MTU_DISCOVERY, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_INPUT_KEY, g_param_spec_string (NM_DEVICE_IP_TUNNEL_INPUT_KEY, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_OUTPUT_KEY, g_param_spec_string (NM_DEVICE_IP_TUNNEL_OUTPUT_KEY, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_ENCAPSULATION_LIMIT, g_param_spec_uchar (NM_DEVICE_IP_TUNNEL_ENCAPSULATION_LIMIT, "", "", 0, 255, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_FLOW_LABEL, g_param_spec_uint (NM_DEVICE_IP_TUNNEL_FLOW_LABEL, "", "", 0, (1 << 20) - 1, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass), NMDBUS_TYPE_DEVICE_IPTUNNEL_SKELETON, NULL); }
static void nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class) { GObjectClass *object_class = G_OBJECT_CLASS (vxlan_class); NMObjectClass *nm_object_class = NM_OBJECT_CLASS (vxlan_class); NMDeviceClass *device_class = NM_DEVICE_CLASS (vxlan_class); g_type_class_add_private (vxlan_class, sizeof (NMDeviceVxlanPrivate)); /* virtual methods */ object_class->finalize = finalize; object_class->get_property = get_property; nm_object_class->init_dbus = init_dbus; device_class->connection_compatible = connection_compatible; device_class->get_setting_type = get_setting_type; device_class->get_hw_address = get_hw_address; /* properties */ /** * NMDeviceVxlan:hw-address: * * The hardware (MAC) address of the device. * * Since: 1.2 **/ g_object_class_install_property (object_class, PROP_HW_ADDRESS, g_param_spec_string (NM_DEVICE_VXLAN_HW_ADDRESS, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:carrier: * * Whether the device has carrier. * * Since: 1.2 **/ g_object_class_install_property (object_class, PROP_CARRIER, g_param_spec_boolean (NM_DEVICE_VXLAN_CARRIER, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:parent: * * The devices's parent device. * * Since: 1.2 **/ g_object_class_install_property (object_class, PROP_PARENT, g_param_spec_object (NM_DEVICE_VXLAN_PARENT, "", "", NM_TYPE_DEVICE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:id: * * The device's VXLAN ID. * * Since: 1.2 **/ g_object_class_install_property (object_class, PROP_ID, g_param_spec_uint (NM_DEVICE_VXLAN_ID, "", "", 0, (1 << 24) - 1, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:group: * * The unicast destination IP address used in outgoing packets when the * destination link layer address is not known in the VXLAN device * forwarding database or the multicast IP address joined. * * Since: 1.2 */ g_object_class_install_property (object_class, PROP_GROUP, g_param_spec_string (NM_DEVICE_VXLAN_GROUP, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:local: * * The source IP address to use in outgoing packets. * * Since: 1.2 */ g_object_class_install_property (object_class, PROP_LOCAL, g_param_spec_string (NM_DEVICE_VXLAN_LOCAL, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:tos: * * The TOS value to use in outgoing packets. * * Since: 1.2 */ g_object_class_install_property (object_class, PROP_TOS, g_param_spec_uchar (NM_DEVICE_VXLAN_TOS, "", "", 0, 255, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:ttl: * * The time-to-live value to use in outgoing packets. * * Since: 1.2 */ g_object_class_install_property (object_class, PROP_TTL, g_param_spec_uchar (NM_DEVICE_VXLAN_TTL, "", "", 0, 255, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:learning: * * Whether unknown source link layer addresses and IP addresses are entered * into the VXLAN device forwarding database. * * Since: 1.2 */ g_object_class_install_property (object_class, PROP_LEARNING, g_param_spec_boolean (NM_DEVICE_VXLAN_LEARNING, "", "", TRUE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:ageing: * * The lifetime in seconds of FDB entries learnt by the kernel. * * Since: 1.2 */ g_object_class_install_property (object_class, PROP_AGEING, g_param_spec_uint (NM_DEVICE_VXLAN_AGEING, "", "", 0, G_MAXUINT32, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:limit: * * The maximum number of entries that can be added to the forwarding table. * * Since: 1.2 */ g_object_class_install_property (object_class, PROP_LIMIT, g_param_spec_uint (NM_DEVICE_VXLAN_LIMIT, "", "", 0, G_MAXUINT32, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:dst-port: * * The UDP destination port used to communicate with the remote VXLAN tunnel * endpoint. * * Since: 1.2 */ g_object_class_install_property (object_class, PROP_DST_PORT, g_param_spec_uint (NM_DEVICE_VXLAN_DST_PORT, "", "", 0, 65535, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:src-port-min: * * The minimum UDP source port used to communicate with the remote VXLAN * tunnel endpoint. * * Since: 1.2 */ g_object_class_install_property (object_class, PROP_SRC_PORT_MIN, g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MIN, "", "", 0, 65535, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:src-port-max: * * The maximum UDP source port used to communicate with the remote VXLAN * tunnel endpoint. * * Since: 1.2 */ g_object_class_install_property (object_class, PROP_SRC_PORT_MAX, g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MAX, "", "", 0, 65535, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:proxy: * * Whether ARP proxy is turned on. * * Since: 1.2 */ g_object_class_install_property (object_class, PROP_PROXY, g_param_spec_boolean (NM_DEVICE_VXLAN_PROXY, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:rsc: * * Whether route short circuit is turned on. * * Since: 1.2 */ g_object_class_install_property (object_class, PROP_RSC, g_param_spec_boolean (NM_DEVICE_VXLAN_RSC, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:l2miss: * * Whether netlink LL ADDR miss notifications are generated. * * Since: 1.2 */ g_object_class_install_property (object_class, PROP_L2MISS, g_param_spec_boolean (NM_DEVICE_VXLAN_L2MISS, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMDeviceVxlan:l3miss: * * Whether netlink IP ADDR miss notifications are generated. * * Since: 1.2 */ g_object_class_install_property (object_class, PROP_L3MISS, g_param_spec_boolean (NM_DEVICE_VXLAN_L3MISS, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); }
/* XXX Historical note, originally I tried (ab)using override properties * in ESourceCamel, which redirected to the equivalent CamelSettings * property. Seemed to work at first, and I was proud of my clever * hack, but it turns out g_object_class_list_properties() excludes * override properties. So the ESourceCamel properties were being * skipped in source_load_from_key_file() (e-source.c). */ static GParamSpec * param_spec_clone (GParamSpec *pspec) { GParamSpec *clone; GParamFlags flags; const gchar *name, *nick, *blurb; name = g_param_spec_get_name (pspec); nick = g_param_spec_get_nick (pspec); blurb = g_param_spec_get_blurb (pspec); flags = (pspec->flags & ~(G_PARAM_STATIC_STRINGS)); if (G_IS_PARAM_SPEC_BOOLEAN (pspec)) { GParamSpecBoolean *pspec_boolean = G_PARAM_SPEC_BOOLEAN (pspec); clone = g_param_spec_boolean (name, nick, blurb, pspec_boolean->default_value, flags); } else if (G_IS_PARAM_SPEC_CHAR (pspec)) { GParamSpecChar *pspec_char = G_PARAM_SPEC_CHAR (pspec); clone = g_param_spec_char (name, nick, blurb, pspec_char->minimum, pspec_char->maximum, pspec_char->default_value, flags); } else if (G_IS_PARAM_SPEC_UCHAR (pspec)) { GParamSpecUChar *pspec_uchar = G_PARAM_SPEC_UCHAR (pspec); clone = g_param_spec_uchar (name, nick, blurb, pspec_uchar->minimum, pspec_uchar->maximum, pspec_uchar->default_value, flags); } else if (G_IS_PARAM_SPEC_INT (pspec)) { GParamSpecInt *pspec_int = G_PARAM_SPEC_INT (pspec); clone = g_param_spec_int (name, nick, blurb, pspec_int->minimum, pspec_int->maximum, pspec_int->default_value, flags); } else if (G_IS_PARAM_SPEC_UINT (pspec)) { GParamSpecUInt *pspec_uint = G_PARAM_SPEC_UINT (pspec); clone = g_param_spec_uint (name, nick, blurb, pspec_uint->minimum, pspec_uint->maximum, pspec_uint->default_value, flags); } else if (G_IS_PARAM_SPEC_LONG (pspec)) { GParamSpecLong *pspec_long = G_PARAM_SPEC_LONG (pspec); clone = g_param_spec_long (name, nick, blurb, pspec_long->minimum, pspec_long->maximum, pspec_long->default_value, flags); } else if (G_IS_PARAM_SPEC_ULONG (pspec)) { GParamSpecULong *pspec_ulong = G_PARAM_SPEC_ULONG (pspec); clone = g_param_spec_ulong (name, nick, blurb, pspec_ulong->minimum, pspec_ulong->maximum, pspec_ulong->default_value, flags); } else if (G_IS_PARAM_SPEC_INT64 (pspec)) { GParamSpecInt64 *pspec_int64 = G_PARAM_SPEC_INT64 (pspec); clone = g_param_spec_int64 (name, nick, blurb, pspec_int64->minimum, pspec_int64->maximum, pspec_int64->default_value, flags); } else if (G_IS_PARAM_SPEC_UINT64 (pspec)) { GParamSpecUInt64 *pspec_uint64 = G_PARAM_SPEC_UINT64 (pspec); clone = g_param_spec_uint64 (name, nick, blurb, pspec_uint64->minimum, pspec_uint64->maximum, pspec_uint64->default_value, flags); } else if (G_IS_PARAM_SPEC_FLOAT (pspec)) { GParamSpecFloat *pspec_float = G_PARAM_SPEC_FLOAT (pspec); clone = g_param_spec_float (name, nick, blurb, pspec_float->minimum, pspec_float->maximum, pspec_float->default_value, flags); } else if (G_IS_PARAM_SPEC_DOUBLE (pspec)) { GParamSpecDouble *pspec_double = G_PARAM_SPEC_DOUBLE (pspec); clone = g_param_spec_double (name, nick, blurb, pspec_double->minimum, pspec_double->maximum, pspec_double->default_value, flags); } else if (G_IS_PARAM_SPEC_ENUM (pspec)) { GParamSpecEnum *pspec_enum = G_PARAM_SPEC_ENUM (pspec); clone = g_param_spec_enum (name, nick, blurb, pspec->value_type, pspec_enum->default_value, flags); } else if (G_IS_PARAM_SPEC_FLAGS (pspec)) { GParamSpecFlags *pspec_flags = G_PARAM_SPEC_FLAGS (pspec); clone = g_param_spec_flags (name, nick, blurb, pspec->value_type, pspec_flags->default_value, flags); } else if (G_IS_PARAM_SPEC_STRING (pspec)) { GParamSpecString *pspec_string = G_PARAM_SPEC_STRING (pspec); clone = g_param_spec_string (name, nick, blurb, pspec_string->default_value, flags); } else if (G_IS_PARAM_SPEC_PARAM (pspec)) { clone = g_param_spec_param (name, nick, blurb, pspec->value_type, flags); } else if (G_IS_PARAM_SPEC_BOXED (pspec)) { clone = g_param_spec_boxed (name, nick, blurb, pspec->value_type, flags); } else if (G_IS_PARAM_SPEC_POINTER (pspec)) { clone = g_param_spec_pointer (name, nick, blurb, flags); } else if (G_IS_PARAM_SPEC_OBJECT (pspec)) { clone = g_param_spec_object (name, nick, blurb, pspec->value_type, flags); } else if (G_IS_PARAM_SPEC_UNICHAR (pspec)) { GParamSpecUnichar *pspec_unichar = G_PARAM_SPEC_UNICHAR (pspec); clone = g_param_spec_unichar (name, nick, blurb, pspec_unichar->default_value, flags); } else if (G_IS_PARAM_SPEC_GTYPE (pspec)) { GParamSpecGType *pspec_gtype = G_PARAM_SPEC_GTYPE (pspec); clone = g_param_spec_gtype (name, nick, blurb, pspec_gtype->is_a_type, flags); } else if (G_IS_PARAM_SPEC_VARIANT (pspec)) { GParamSpecVariant *pspec_variant = G_PARAM_SPEC_VARIANT (pspec); clone = g_param_spec_variant (name, nick, blurb, pspec_variant->type, pspec_variant->default_value, flags); } else { g_warn_if_reached (); } return clone; }
static void nm_device_vxlan_class_init (NMDeviceVxlanClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); g_type_class_add_private (klass, sizeof (NMDeviceVxlanPrivate)); object_class->constructed = constructed; object_class->get_property = get_property; device_class->link_changed = link_changed; /* properties */ g_object_class_install_property (object_class, PROP_PARENT, g_param_spec_boxed (NM_DEVICE_VXLAN_PARENT, "Parent", "Parent device", DBUS_TYPE_G_OBJECT_PATH, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_ID, g_param_spec_uint (NM_DEVICE_VXLAN_ID, "Id", "Id", 0, G_MAXUINT32, 0, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_GROUP, g_param_spec_string (NM_DEVICE_VXLAN_GROUP, "Group", "Group", NULL, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_LOCAL, g_param_spec_string (NM_DEVICE_VXLAN_LOCAL, "Local", "Local", NULL, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_TOS, g_param_spec_uchar (NM_DEVICE_VXLAN_TOS, "ToS", "ToS", 0, 255, 0, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_TTL, g_param_spec_uchar (NM_DEVICE_VXLAN_TTL, "TTL", "TTL", 0, 255, 0, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_LEARNING, g_param_spec_boolean (NM_DEVICE_VXLAN_LEARNING, "Learning", "Learning", FALSE, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_AGEING, g_param_spec_uint (NM_DEVICE_VXLAN_AGEING, "Ageing", "Ageing", 0, G_MAXUINT32, 0, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_LIMIT, g_param_spec_uint (NM_DEVICE_VXLAN_LIMIT, "Limit", "Limit", 0, G_MAXUINT32, 0, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_DST_PORT, g_param_spec_uint (NM_DEVICE_VXLAN_DST_PORT, "Destination port", "Destination port", 0, 65535, 0, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_SRC_PORT_MIN, g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MIN, "Source port min", "Minimum source port", 0, 65535, 0, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_SRC_PORT_MAX, g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MAX, "Source port max", "Maximum source port", 0, 65535, 0, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_PROXY, g_param_spec_boolean (NM_DEVICE_VXLAN_PROXY, "Proxy", "Proxy", FALSE, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_RSC, g_param_spec_boolean (NM_DEVICE_VXLAN_RSC, "RSC", "RSC", FALSE, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_L2MISS, g_param_spec_boolean (NM_DEVICE_VXLAN_L2MISS, "L2miss", "L2miss", FALSE, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_L3MISS, g_param_spec_boolean (NM_DEVICE_VXLAN_L3MISS, "L3miss", "L3miss", FALSE, G_PARAM_READABLE)); nm_dbus_manager_register_exported_type (nm_dbus_manager_get (), G_TYPE_FROM_CLASS (klass), &dbus_glib_nm_device_vxlan_object_info); }
static void nm_device_vxlan_class_init (NMDeviceVxlanClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); NMDeviceClass *device_class = NM_DEVICE_CLASS (klass); g_type_class_add_private (klass, sizeof (NMDeviceVxlanPrivate)); NM_DEVICE_CLASS_DECLARE_TYPES (klass, NULL, NM_LINK_TYPE_VXLAN) object_class->get_property = get_property; object_class->dispose = dispose; device_class->link_changed = link_changed; device_class->realize_start_notify = realize_start_notify; device_class->unrealize_notify = unrealize_notify; device_class->connection_type = NM_SETTING_VXLAN_SETTING_NAME; device_class->create_and_realize = create_and_realize; device_class->check_connection_compatible = check_connection_compatible; device_class->complete_connection = complete_connection; device_class->get_generic_capabilities = get_generic_capabilities; device_class->update_connection = update_connection; device_class->act_stage1_prepare = act_stage1_prepare; device_class->ip4_config_pre_commit = ip4_config_pre_commit; /* properties */ g_object_class_install_property (object_class, PROP_PARENT, g_param_spec_string (NM_DEVICE_VXLAN_PARENT, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_ID, g_param_spec_uint (NM_DEVICE_VXLAN_ID, "", "", 0, G_MAXUINT32, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_LOCAL, g_param_spec_string (NM_DEVICE_VXLAN_LOCAL, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_GROUP, g_param_spec_string (NM_DEVICE_VXLAN_GROUP, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_TOS, g_param_spec_uchar (NM_DEVICE_VXLAN_TOS, "", "", 0, 255, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_TTL, g_param_spec_uchar (NM_DEVICE_VXLAN_TTL, "", "", 0, 255, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_LEARNING, g_param_spec_boolean (NM_DEVICE_VXLAN_LEARNING, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_AGEING, g_param_spec_uint (NM_DEVICE_VXLAN_AGEING, "", "", 0, G_MAXUINT32, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_LIMIT, g_param_spec_uint (NM_DEVICE_VXLAN_LIMIT, "", "", 0, G_MAXUINT32, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_SRC_PORT_MIN, g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MIN, "", "", 0, 65535, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_SRC_PORT_MAX, g_param_spec_uint (NM_DEVICE_VXLAN_SRC_PORT_MAX, "", "", 0, 65535, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_DST_PORT, g_param_spec_uint (NM_DEVICE_VXLAN_DST_PORT, "", "", 0, 65535, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_PROXY, g_param_spec_boolean (NM_DEVICE_VXLAN_PROXY, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_RSC, g_param_spec_boolean (NM_DEVICE_VXLAN_RSC, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_L2MISS, g_param_spec_boolean (NM_DEVICE_VXLAN_L2MISS, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, PROP_L3MISS, g_param_spec_boolean (NM_DEVICE_VXLAN_L3MISS, "", "", FALSE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass), NMDBUS_TYPE_DEVICE_VXLAN_SKELETON, NULL); }
static JSBool param_new_internal(JSContext *cx, uintN argc, jsval *vp) { jsval *argv = JS_ARGV(cx, vp); GParamSpec *pspec = NULL; JSBool ret = JS_FALSE; gchar *method_name; gchar *prop_name; JSObject *prop_gtype_jsobj; GType prop_gtype; GType prop_type; gchar *nick; gchar *blurb; GParamFlags flags; if (!gjs_parse_args(cx, "GObject.ParamSpec._new_internal", "!sossi", argc, argv, "prop_name", &prop_name, "prop_gtype", &prop_gtype_jsobj, "nick", &nick, "blurb", &blurb, "flags", &flags)) return JS_FALSE; prop_gtype = gjs_gtype_get_actual_gtype(cx, prop_gtype_jsobj); prop_type = G_TYPE_FUNDAMENTAL(prop_gtype); method_name = g_strdup_printf("GObject.ParamSpec.%s", g_type_name(prop_type)); argv += 5; argc -= 5; switch (prop_type) { case G_TYPE_UCHAR: case G_TYPE_CHAR: { gchar *minimum, *maximum, *default_value; if (!gjs_parse_args(cx, method_name, "sss", argc, argv, "minimum", &minimum, "maximum", &maximum, "default_value", &default_value)) goto out; if (prop_type == G_TYPE_CHAR) pspec = g_param_spec_char(prop_name, nick, blurb, minimum[0], maximum[0], default_value[0], flags); else pspec = g_param_spec_uchar(prop_name, nick, blurb, minimum[0], maximum[0], default_value[0], flags); g_free(minimum); g_free(maximum); g_free(default_value); } break; case G_TYPE_INT: case G_TYPE_UINT: case G_TYPE_LONG: case G_TYPE_ULONG: case G_TYPE_INT64: case G_TYPE_UINT64: { gint64 minimum, maximum, default_value; if (!gjs_parse_args(cx, method_name, "ttt", argc, argv, "minimum", &minimum, "maximum", &maximum, "default_value", &default_value)) goto out; switch (prop_type) { case G_TYPE_INT: pspec = g_param_spec_int(prop_name, nick, blurb, minimum, maximum, default_value, flags); break; case G_TYPE_UINT: pspec = g_param_spec_uint(prop_name, nick, blurb, minimum, maximum, default_value, flags); break; case G_TYPE_LONG: pspec = g_param_spec_long(prop_name, nick, blurb, minimum, maximum, default_value, flags); break; case G_TYPE_ULONG: pspec = g_param_spec_ulong(prop_name, nick, blurb, minimum, maximum, default_value, flags); break; case G_TYPE_INT64: pspec = g_param_spec_int64(prop_name, nick, blurb, minimum, maximum, default_value, flags); break; case G_TYPE_UINT64: pspec = g_param_spec_uint64(prop_name, nick, blurb, minimum, maximum, default_value, flags); break; } } break; case G_TYPE_BOOLEAN: { gboolean default_value; if (!gjs_parse_args(cx, method_name, "b", argc, argv, "default_value", &default_value)) goto out; default_value = JSVAL_TO_BOOLEAN(argv[0]); pspec = g_param_spec_boolean(prop_name, nick, blurb, default_value, flags); } break; case G_TYPE_ENUM: { JSObject *gtype_jsobj; GType gtype; GIEnumInfo *info; gint64 default_value; if (!gjs_parse_args(cx, method_name, "ot", argc, argv, "gtype", >ype_jsobj, "default_value", &default_value)) goto out; gtype = gjs_gtype_get_actual_gtype(cx, gtype_jsobj); if (gtype == G_TYPE_NONE) { gjs_throw(cx, "Passed invalid GType to GParamSpecEnum constructor"); goto out; } info = g_irepository_find_by_gtype(g_irepository_get_default(), gtype); if (!_gjs_enum_value_is_valid(cx, info, default_value)) goto out; pspec = g_param_spec_enum(prop_name, nick, blurb, gtype, default_value, flags); } break; case G_TYPE_FLAGS: { JSObject *gtype_jsobj; GType gtype; gint64 default_value; if (!gjs_parse_args(cx, method_name, "ot", argc, argv, "gtype", >ype_jsobj, "default_value", &default_value)) goto out; gtype = gjs_gtype_get_actual_gtype(cx, gtype_jsobj); if (gtype == G_TYPE_NONE) { gjs_throw(cx, "Passed invalid GType to GParamSpecFlags constructor"); goto out; } if (!_gjs_flags_value_is_valid(cx, gtype, default_value)) goto out; pspec = g_param_spec_flags(prop_name, nick, blurb, gtype, default_value, flags); } break; case G_TYPE_FLOAT: case G_TYPE_DOUBLE: { gfloat minimum, maximum, default_value; if (!gjs_parse_args(cx, "GObject.ParamSpec.float", "fff", argc, argv, "minimum", &minimum, "maximum", &maximum, "default_value", &default_value)) goto out; if (prop_type == G_TYPE_FLOAT) pspec = g_param_spec_float(prop_name, nick, blurb, minimum, maximum, default_value, flags); else pspec = g_param_spec_double(prop_name, nick, blurb, minimum, maximum, default_value, flags); } break; case G_TYPE_STRING: { gchar *default_value; if (!gjs_parse_args(cx, method_name, "s", argc, argv, "default_value", &default_value)) goto out; pspec = g_param_spec_string(prop_name, nick, blurb, default_value, flags); g_free (default_value); } break; case G_TYPE_PARAM: pspec = g_param_spec_param(prop_name, nick, blurb, prop_type, flags); break; case G_TYPE_BOXED: pspec = g_param_spec_boxed(prop_name, nick, blurb, prop_type, flags); break; case G_TYPE_POINTER: pspec = g_param_spec_pointer(prop_name, nick, blurb, flags); break; case G_TYPE_OBJECT: pspec = g_param_spec_object(prop_name, nick, blurb, prop_type, flags); break; default: gjs_throw(cx, "Could not create param spec for type '%s'", g_type_name(prop_gtype)); goto out; } ret = JS_TRUE; jsval foo = OBJECT_TO_JSVAL(gjs_param_from_g_param(cx, pspec)); JS_SET_RVAL(cx, vp, foo); out: g_free(method_name); g_free(prop_name); g_free(nick); g_free(blurb); return ret; }
static void nm_access_point_class_init (NMAccessPointClass *ap_class) { GObjectClass *object_class = G_OBJECT_CLASS (ap_class); g_type_class_add_private (ap_class, sizeof (NMAccessPointPrivate)); /* virtual methods */ object_class->constructed = constructed; object_class->get_property = get_property; object_class->dispose = dispose; object_class->finalize = finalize; /* properties */ /** * NMAccessPoint:flags: * * The flags of the access point. **/ g_object_class_install_property (object_class, PROP_FLAGS, g_param_spec_uint (NM_ACCESS_POINT_FLAGS, "", "", NM_802_11_AP_FLAGS_NONE, NM_802_11_AP_FLAGS_PRIVACY, NM_802_11_AP_FLAGS_NONE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMAccessPoint:wpa-flags: * * The WPA flags of the access point. **/ g_object_class_install_property (object_class, PROP_WPA_FLAGS, g_param_spec_uint (NM_ACCESS_POINT_WPA_FLAGS, "", "", 0, G_MAXUINT32, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMAccessPoint:rsn-flags: * * The RSN flags of the access point. **/ g_object_class_install_property (object_class, PROP_RSN_FLAGS, g_param_spec_uint (NM_ACCESS_POINT_RSN_FLAGS, "", "", 0, G_MAXUINT32, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMAccessPoint:ssid: * * The SSID of the access point. **/ g_object_class_install_property (object_class, PROP_SSID, g_param_spec_boxed (NM_ACCESS_POINT_SSID, "", "", NM_TYPE_SSID, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMAccessPoint:frequency: * * The frequency of the access point. **/ g_object_class_install_property (object_class, PROP_FREQUENCY, g_param_spec_uint (NM_ACCESS_POINT_FREQUENCY, "", "", 0, 10000, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMAccessPoint:bssid: * * The BSSID of the access point. **/ g_object_class_install_property (object_class, PROP_BSSID, g_param_spec_string (NM_ACCESS_POINT_BSSID, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMAccessPoint:hw-address: * * The hardware address of the access point. **/ g_object_class_install_property (object_class, PROP_HW_ADDRESS, g_param_spec_string (NM_ACCESS_POINT_HW_ADDRESS, "", "", NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMAccessPoint:mode: * * The mode of the access point; either "infrastructure" (a central * coordinator of the wireless network allowing clients to connect) or * "ad-hoc" (a network with no central controller). **/ g_object_class_install_property (object_class, PROP_MODE, g_param_spec_uint (NM_ACCESS_POINT_MODE, "", "", NM_802_11_MODE_ADHOC, NM_802_11_MODE_INFRA, NM_802_11_MODE_INFRA, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMAccessPoint:max-bitrate: * * The maximum bit rate of the access point in kbit/s. **/ g_object_class_install_property (object_class, PROP_MAX_BITRATE, g_param_spec_uint (NM_ACCESS_POINT_MAX_BITRATE, "", "", 0, G_MAXUINT32, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMAccessPoint:strength: * * The current signal strength of the access point. **/ g_object_class_install_property (object_class, PROP_STRENGTH, g_param_spec_uchar (NM_ACCESS_POINT_STRENGTH, "", "", 0, G_MAXUINT8, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); /** * NMAccessPoint:last-seen: * * The timestamp (in CLOCK_BOOTTIME seconds) for the last time the * access point was found in scan results. A value of -1 means the * access point has not been found in a scan. * * Since: 1.2 **/ g_object_class_install_property (object_class, PROP_LAST_SEEN, g_param_spec_int (NM_ACCESS_POINT_LAST_SEEN, "", "", -1, G_MAXINT, -1, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); }