$darkmode
Libical API Documentation 4.0 STABLE VERSION Visit the v3.0 documentation
vcardproperty.h
Go to the documentation of this file.
1 /*======================================================================
2  FILE: vcardproperty.h
3  CREATOR: Ken Murchison 24 Aug 2022
4 
5  SPDX-FileCopyrightText: 2022, Fastmail Pty. Ltd. (https://fastmail.com)
6  SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
7  ======================================================================*/
8 
14 #ifndef VCARDPROPERTY_H
15 #define VCARDPROPERTY_H
16 
17 #include "libical_vcard_export.h"
18 #include "vcardderivedproperty.h" /* To get vcardproperty_kind enumerations */
19 
20 #include <stdarg.h> /* for va_... */
21 
22 LIBICAL_VCARD_EXPORT vcardproperty *vcardproperty_new(vcardproperty_kind kind);
23 
29 LIBICAL_VCARD_EXPORT vcardproperty *vcardproperty_clone(const vcardproperty *old);
30 
31 LIBICAL_VCARD_EXPORT vcardproperty *vcardproperty_new_from_string(const char *str);
32 
33 LIBICAL_VCARD_EXPORT const char *vcardproperty_as_vcard_string(vcardproperty *prop);
34 
35 LIBICAL_VCARD_EXPORT char *vcardproperty_as_vcard_string_r(vcardproperty *prop);
36 
37 LIBICAL_VCARD_EXPORT void vcardproperty_free(vcardproperty *prop);
38 
39 LIBICAL_VCARD_EXPORT vcardproperty_kind vcardproperty_isa(const vcardproperty *property);
40 
41 LIBICAL_VCARD_EXPORT bool vcardproperty_isa_property(void *property);
42 
43 LIBICAL_VCARD_EXPORT void vcardproperty_add_parameters(struct vcardproperty_impl *prop, va_list args);
44 
45 LIBICAL_VCARD_EXPORT void vcardproperty_add_parameter(vcardproperty *prop, vcardparameter *parameter);
46 
47 LIBICAL_VCARD_EXPORT void vcardproperty_set_parameter(vcardproperty *prop, vcardparameter *parameter);
48 
49 LIBICAL_VCARD_EXPORT void vcardproperty_set_parameter_from_string(vcardproperty *prop,
50  const char *name,
51  const char *value);
52 LIBICAL_VCARD_EXPORT const char *vcardproperty_get_parameter_as_string(vcardproperty *prop,
53  const char *name);
54 
55 LIBICAL_VCARD_EXPORT char *vcardproperty_get_parameter_as_string_r(vcardproperty *prop,
56  const char *name);
57 
67 LIBICAL_VCARD_EXPORT void vcardproperty_remove_parameter_by_kind(vcardproperty *prop,
68  vcardparameter_kind kind);
69 
83 LIBICAL_VCARD_EXPORT void vcardproperty_remove_parameter_by_name(vcardproperty *prop,
84  const char *name);
85 
94 LIBICAL_VCARD_EXPORT void vcardproperty_remove_parameter_by_ref(vcardproperty *prop,
95  vcardparameter *param);
96 
97 LIBICAL_VCARD_EXPORT int vcardproperty_count_parameters(const vcardproperty *prop);
98 
99 /* Iterate through the parameters */
100 LIBICAL_VCARD_EXPORT vcardparameter *vcardproperty_get_first_parameter(vcardproperty *prop,
101  vcardparameter_kind kind);
102 LIBICAL_VCARD_EXPORT vcardparameter *vcardproperty_get_next_parameter(vcardproperty *prop,
103  vcardparameter_kind kind);
104 /* Access the value of the property */
105 LIBICAL_VCARD_EXPORT void vcardproperty_set_value(vcardproperty *prop, vcardvalue *value);
106 LIBICAL_VCARD_EXPORT void vcardproperty_set_value_from_string(vcardproperty *prop, const char *str,
107  const char *type);
108 
109 LIBICAL_VCARD_EXPORT vcardvalue *vcardproperty_get_value(const vcardproperty *prop);
110 LIBICAL_VCARD_EXPORT const char *vcardproperty_get_value_as_string(const vcardproperty *prop);
111 LIBICAL_VCARD_EXPORT char *vcardproperty_get_value_as_string_r(const vcardproperty *prop);
112 
116 LIBICAL_VCARD_EXPORT void vcardvalue_set_parent(vcardvalue *value, vcardproperty *property);
117 
122 LIBICAL_VCARD_EXPORT vcardproperty *vcardvalue_get_parent(const vcardvalue *value);
123 
124 /* Deal with X properties */
125 
126 LIBICAL_VCARD_EXPORT void vcardproperty_set_x_name(vcardproperty *prop, const char *name);
127 LIBICAL_VCARD_EXPORT const char *vcardproperty_get_x_name(const vcardproperty *prop);
128 
129 /* Deal with grouped properties */
130 
131 LIBICAL_VCARD_EXPORT void vcardproperty_set_group(vcardproperty *prop, const char *group);
132 LIBICAL_VCARD_EXPORT const char *vcardproperty_get_group(const vcardproperty *prop);
133 
138 LIBICAL_VCARD_EXPORT const char *vcardproperty_get_property_name(const vcardproperty *prop);
139 LIBICAL_VCARD_EXPORT char *vcardproperty_get_property_name_r(const vcardproperty *prop);
140 
141 LIBICAL_VCARD_EXPORT vcardvalue_kind vcardparameter_value_to_value_kind(vcardparameter_value value);
142 
147 LIBICAL_VCARD_EXPORT void vcardparameter_set_parent(vcardparameter *param, vcardproperty *property);
148 
153 LIBICAL_VCARD_EXPORT vcardproperty *vcardparameter_get_parent(const vcardparameter *param);
154 
155 /* Convert kinds to string and get default value type */
156 LIBICAL_VCARD_EXPORT vcardvalue_kind vcardproperty_kind_to_value_kind(vcardproperty_kind kind);
157 LIBICAL_VCARD_EXPORT vcardproperty_kind vcardproperty_value_kind_to_kind(vcardvalue_kind kind);
158 LIBICAL_VCARD_EXPORT const char *vcardproperty_kind_to_string(vcardproperty_kind kind);
159 LIBICAL_VCARD_EXPORT vcardproperty_kind vcardproperty_string_to_kind(const char *string);
160 
162 LIBICAL_VCARD_EXPORT bool vcardproperty_kind_is_valid(const vcardproperty_kind kind);
163 
164 LIBICAL_VCARD_EXPORT const char *vcardproperty_enum_to_string(int e);
165 LIBICAL_VCARD_EXPORT char *vcardproperty_enum_to_string_r(int e);
166 LIBICAL_VCARD_EXPORT int vcardproperty_kind_and_string_to_enum(const int kind, const char *str);
167 
168 LIBICAL_VCARD_EXPORT bool vcardproperty_enum_belongs_to_property(vcardproperty_kind kind, int e);
169 
174 LIBICAL_VCARD_EXPORT void vcardproperty_normalize(vcardproperty *prop);
175 
176 LIBICAL_VCARD_EXPORT bool vcardproperty_is_structured(vcardproperty_kind pkind);
177 LIBICAL_VCARD_EXPORT bool vcardproperty_is_multivalued(vcardproperty_kind pkind);
178 
179 LIBICAL_VCARD_EXPORT void vcardproperty_add_type_parameter(vcardproperty *prop,
180  vcardenumarray_element *type);
181 
182 #endif /*VCARDPROPERTY_H */
void vcardparameter_set_parent(vcardparameter *param, vcardproperty *property)
vcardproperty * vcardparameter_get_parent(const vcardparameter *param)
void vcardproperty_remove_parameter_by_name(vcardproperty *prop, const char *name)
Removes all parameters with the specified name.
void vcardproperty_remove_parameter_by_kind(vcardproperty *prop, vcardparameter_kind kind)
Removes all parameters with the specified kind.
const char * vcardproperty_get_property_name(const vcardproperty *prop)
void vcardproperty_normalize(vcardproperty *prop)
vcardproperty * vcardvalue_get_parent(const vcardvalue *value)
Definition: vcardvalue.c:1024
void vcardproperty_remove_parameter_by_ref(vcardproperty *prop, vcardparameter *param)
Removes the specified parameter reference from the property.
vcardproperty * vcardproperty_clone(const vcardproperty *old)
Deeply clones an vcardproperty.
Definition: vcardproperty.c:87
void vcardvalue_set_parent(vcardvalue *value, vcardproperty *property)
Definition: vcardvalue.c:1017
bool vcardproperty_kind_is_valid(const vcardproperty_kind kind)