Libical API Documentation 4.0 UNRELEASED Go to the stable 3.0 documentation
Loading...
Searching...
No Matches
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
13
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
22LIBICAL_VCARD_EXPORT vcardproperty *vcardproperty_new(vcardproperty_kind kind);
23
29LIBICAL_VCARD_EXPORT vcardproperty *vcardproperty_clone(const vcardproperty *old);
30
31LIBICAL_VCARD_EXPORT vcardproperty *vcardproperty_new_from_string(const char *str);
32
33LIBICAL_VCARD_EXPORT const char *vcardproperty_as_vcard_string(vcardproperty *prop);
34
35LIBICAL_VCARD_EXPORT char *vcardproperty_as_vcard_string_r(vcardproperty *prop);
36
37LIBICAL_VCARD_EXPORT void vcardproperty_free(vcardproperty *prop);
38
39LIBICAL_VCARD_EXPORT vcardproperty_kind vcardproperty_isa(const vcardproperty *property);
40
41LIBICAL_VCARD_EXPORT bool vcardproperty_isa_property(void *property);
42
43LIBICAL_VCARD_EXPORT void vcardproperty_add_parameters(struct vcardproperty_impl *prop, va_list args);
44
45LIBICAL_VCARD_EXPORT void vcardproperty_add_parameter(vcardproperty *prop, vcardparameter *parameter);
46
47LIBICAL_VCARD_EXPORT void vcardproperty_set_parameter(vcardproperty *prop, vcardparameter *parameter);
48
49LIBICAL_VCARD_EXPORT void vcardproperty_set_parameter_from_string(vcardproperty *prop,
50 const char *name,
51 const char *value);
52LIBICAL_VCARD_EXPORT const char *vcardproperty_get_parameter_as_string(vcardproperty *prop,
53 const char *name);
54
55LIBICAL_VCARD_EXPORT char *vcardproperty_get_parameter_as_string_r(vcardproperty *prop,
56 const char *name);
57
67LIBICAL_VCARD_EXPORT void vcardproperty_remove_parameter_by_kind(vcardproperty *prop,
68 vcardparameter_kind kind);
69
83LIBICAL_VCARD_EXPORT void vcardproperty_remove_parameter_by_name(vcardproperty *prop,
84 const char *name);
85
94LIBICAL_VCARD_EXPORT void vcardproperty_remove_parameter_by_ref(vcardproperty *prop,
95 vcardparameter *param);
96
97LIBICAL_VCARD_EXPORT int vcardproperty_count_parameters(const vcardproperty *prop);
98
99/* Iterate through the parameters */
100LIBICAL_VCARD_EXPORT vcardparameter *vcardproperty_get_first_parameter(vcardproperty *prop,
101 vcardparameter_kind kind);
102LIBICAL_VCARD_EXPORT vcardparameter *vcardproperty_get_next_parameter(vcardproperty *prop,
103 vcardparameter_kind kind);
104/* Access the value of the property */
105LIBICAL_VCARD_EXPORT void vcardproperty_set_value(vcardproperty *prop, vcardvalue *value);
106LIBICAL_VCARD_EXPORT void vcardproperty_set_value_from_string(vcardproperty *prop, const char *str,
107 const char *type);
108
109LIBICAL_VCARD_EXPORT vcardvalue *vcardproperty_get_value(const vcardproperty *prop);
110LIBICAL_VCARD_EXPORT const char *vcardproperty_get_value_as_string(const vcardproperty *prop);
111LIBICAL_VCARD_EXPORT char *vcardproperty_get_value_as_string_r(const vcardproperty *prop);
112
116LIBICAL_VCARD_EXPORT void vcardvalue_set_parent(vcardvalue *value, vcardproperty *property);
117
122LIBICAL_VCARD_EXPORT vcardproperty *vcardvalue_get_parent(const vcardvalue *value);
123
124/* Deal with X properties */
125
126LIBICAL_VCARD_EXPORT void vcardproperty_set_x_name(vcardproperty *prop, const char *name);
127LIBICAL_VCARD_EXPORT const char *vcardproperty_get_x_name(const vcardproperty *prop);
128
129/* Deal with grouped properties */
130
131LIBICAL_VCARD_EXPORT void vcardproperty_set_group(vcardproperty *prop, const char *group);
132LIBICAL_VCARD_EXPORT const char *vcardproperty_get_group(const vcardproperty *prop);
133
138LIBICAL_VCARD_EXPORT const char *vcardproperty_get_property_name(const vcardproperty *prop);
139LIBICAL_VCARD_EXPORT char *vcardproperty_get_property_name_r(const vcardproperty *prop);
140
141LIBICAL_VCARD_EXPORT vcardvalue_kind vcardparameter_value_to_value_kind(vcardparameter_value value);
142
147LIBICAL_VCARD_EXPORT void vcardparameter_set_parent(vcardparameter *param, vcardproperty *property);
148
153LIBICAL_VCARD_EXPORT vcardproperty *vcardparameter_get_parent(const vcardparameter *param);
154
155/* Convert kinds to string and get default value type */
156LIBICAL_VCARD_EXPORT vcardvalue_kind vcardproperty_kind_to_value_kind(vcardproperty_kind kind);
157LIBICAL_VCARD_EXPORT vcardproperty_kind vcardproperty_value_kind_to_kind(vcardvalue_kind kind);
158LIBICAL_VCARD_EXPORT const char *vcardproperty_kind_to_string(vcardproperty_kind kind);
159LIBICAL_VCARD_EXPORT vcardproperty_kind vcardproperty_string_to_kind(const char *string);
160
162LIBICAL_VCARD_EXPORT bool vcardproperty_kind_is_valid(const vcardproperty_kind kind);
163
164LIBICAL_VCARD_EXPORT const char *vcardproperty_enum_to_string(int e);
165LIBICAL_VCARD_EXPORT char *vcardproperty_enum_to_string_r(int e);
166LIBICAL_VCARD_EXPORT int vcardproperty_kind_and_string_to_enum(const int kind, const char *str);
167
168LIBICAL_VCARD_EXPORT bool vcardproperty_enum_belongs_to_property(vcardproperty_kind kind, int e);
169
174LIBICAL_VCARD_EXPORT void vcardproperty_normalize(vcardproperty *prop);
175
176LIBICAL_VCARD_EXPORT bool vcardproperty_is_structured(vcardproperty_kind pkind);
177LIBICAL_VCARD_EXPORT bool vcardproperty_is_multivalued(vcardproperty_kind pkind);
178
179LIBICAL_VCARD_EXPORT void vcardproperty_add_type_parameter(vcardproperty *prop,
180 vcardenumarray_element *type);
181
182#endif /*VCARDPROPERTY_H */
void vcardproperty_remove_parameter_by_ref(vcardproperty *prop, vcardparameter *param)
Removes the specified parameter reference from the property.
const char * vcardproperty_get_property_name(const vcardproperty *prop)
vcardproperty * vcardvalue_get_parent(const vcardvalue *value)
bool vcardproperty_kind_is_valid(const vcardproperty_kind kind)
void vcardproperty_normalize(vcardproperty *prop)
void vcardproperty_remove_parameter_by_name(vcardproperty *prop, const char *name)
Removes all parameters with the specified name.
void vcardparameter_set_parent(vcardparameter *param, vcardproperty *property)
void vcardvalue_set_parent(vcardvalue *value, vcardproperty *property)
vcardproperty * vcardparameter_get_parent(const vcardparameter *param)
vcardproperty * vcardproperty_clone(const vcardproperty *old)
Deeply clones an vcardproperty.
void vcardproperty_remove_parameter_by_kind(vcardproperty *prop, vcardparameter_kind kind)
Removes all parameters with the specified kind.