Subversion
svn_types_impl.h
Go to the documentation of this file.
1 /**
2  * @copyright
3  * ====================================================================
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements. See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership. The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License. You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied. See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  * ====================================================================
21  * @endcopyright
22  *
23  * @file svn_types_impl.h
24  * @brief Subversion's data types (common implementation)
25  *
26  * @warning This is a @b private implementation-specific header file.
27  * User code should include @ref svn_types.h instead.
28  */
29 
30 /* NOTE:
31  * This file *must not* include or depend on any other header except
32  * the C standard library headers.
33  */
34 
35 #ifndef SVN_TYPES_IMPL_H
36 #define SVN_TYPES_IMPL_H
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif /* __cplusplus */
41 
42 
43 #ifndef DOXYGEN
44 /* Forward declaration of the error object. */
45 struct svn_error_t;
46 #endif
47 
48 
49 /** The various types of nodes in the Subversion filesystem. */
50 typedef enum svn_node_kind_t
51 {
52  /** absent */
54 
55  /** regular file */
57 
58  /** directory */
60 
61  /** something's here, but we don't know what */
63 
64  /**
65  * symbolic link
66  * @note This value is not currently used by the public API.
67  * @since New in 1.8.
68  */
71 
72 
73 /** Generic three-state property to represent an unknown value for values
74  * that are just like booleans. The values have been set deliberately to
75  * make tristates disjoint from #svn_boolean_t.
76  *
77  * @note It is unsafe to use apr_pcalloc() to allocate these, since '0' is
78  * not a valid value.
79  *
80  * @since New in 1.7. */
81 /* NOTE: Update svnxx/tristate.hpp when changing this enum. */
82 typedef enum svn_tristate_t
83 {
84  /** state known to be false (the constant does not evaulate to false) */
86  /** state known to be true */
88  /** state could be true or false */
91 
92 
93 /** A revision number. */
94 /* NOTE: Update svnxx/revision.hpp when changing this typedef. */
95 typedef long int svn_revnum_t;
96 
97 /** The 'official' invalid revision number. */
98 /* NOTE: Update svnxx/revision.hpp when changing this definition. */
99 #define SVN_INVALID_REVNUM ((svn_revnum_t) -1)
100 
101 
102 /** The concept of depth for directories.
103  *
104  * @note This is similar to, but not exactly the same as, the WebDAV
105  * and LDAP concepts of depth.
106  *
107  * @since New in 1.5.
108  */
109 /* NOTE: Update svnxx/depth.hpp when changing this enum. */
110 typedef enum svn_depth_t
111 {
112  /* The order of these depths is important: the higher the number,
113  the deeper it descends. This allows us to compare two depths
114  numerically to decide which should govern. */
115 
116  /** Depth undetermined or ignored. In some contexts, this means the
117  client should choose an appropriate default depth. The server
118  will generally treat it as #svn_depth_infinity. */
120 
121  /** Exclude (i.e., don't descend into) directory D.
122  @note In Subversion 1.5, svn_depth_exclude is *not* supported
123  anywhere in the client-side (libsvn_wc/libsvn_client/etc) code;
124  it is only supported as an argument to set_path functions in the
125  ra and repos reporters. (This will enable future versions of
126  Subversion to run updates, etc, against 1.5 servers with proper
127  svn_depth_exclude behavior, once we get a chance to implement
128  client-side support for svn_depth_exclude.)
129  */
131 
132  /** Just the named directory D, no entries. Updates will not pull in
133  any files or subdirectories not already present. */
135 
136  /** D + its file children, but not subdirs. Updates will pull in any
137  files not already present, but not subdirectories. */
139 
140  /** D + immediate children (D and its entries). Updates will pull in
141  any files or subdirectories not already present; those
142  subdirectories' this_dir entries will have depth-empty. */
144 
145  /** D + all descendants (full recursion from D). Updates will pull
146  in any files or subdirectories not already present; those
147  subdirectories' this_dir entries will have depth-infinity.
148  Equivalent to the pre-1.5 default update behavior. */
150 
151 } svn_depth_t;
152 
153 #ifdef __cplusplus
154 }
155 #endif /* __cplusplus */
156 
157 #endif /* SVN_TYPES_IMPL_H */
svn_depth_unknown
@ svn_depth_unknown
Depth undetermined or ignored.
Definition: svn_types_impl.h:119
svn_depth_empty
@ svn_depth_empty
Just the named directory D, no entries.
Definition: svn_types_impl.h:134
svn_error_t
Subversion error object.
Definition: svn_types.h:180
svn_node_none
@ svn_node_none
absent
Definition: svn_types_impl.h:53
svn_depth_files
@ svn_depth_files
D + its file children, but not subdirs.
Definition: svn_types_impl.h:138
svn_tristate_true
@ svn_tristate_true
state known to be true
Definition: svn_types_impl.h:87
svn_depth_immediates
@ svn_depth_immediates
D + immediate children (D and its entries).
Definition: svn_types_impl.h:143
svn_node_unknown
@ svn_node_unknown
something's here, but we don't know what
Definition: svn_types_impl.h:62
svn_node_dir
@ svn_node_dir
directory
Definition: svn_types_impl.h:59
svn_tristate_t
svn_tristate_t
Generic three-state property to represent an unknown value for values that are just like booleans.
Definition: svn_types_impl.h:82
svn_depth_t
svn_depth_t
The concept of depth for directories.
Definition: svn_types_impl.h:110
svn_depth_exclude
@ svn_depth_exclude
Exclude (i.e., don't descend into) directory D.
Definition: svn_types_impl.h:130
svn_tristate_false
@ svn_tristate_false
state known to be false (the constant does not evaulate to false)
Definition: svn_types_impl.h:85
svn_revnum_t
long int svn_revnum_t
A revision number.
Definition: svn_types_impl.h:95
svn_node_kind_t
svn_node_kind_t
The various types of nodes in the Subversion filesystem.
Definition: svn_types_impl.h:50
svn_node_file
@ svn_node_file
regular file
Definition: svn_types_impl.h:56
svn_node_symlink
@ svn_node_symlink
symbolic link
Definition: svn_types_impl.h:69
svn_tristate_unknown
@ svn_tristate_unknown
state could be true or false
Definition: svn_types_impl.h:89
svn_depth_infinity
@ svn_depth_infinity
D + all descendants (full recursion from D).
Definition: svn_types_impl.h:149