1 /*===========================================================================
2 *
3 *                            PUBLIC DOMAIN NOTICE
4 *               National Center for Biotechnology Information
5 *
6 *  This software/database is a "United States Government Work" under the
7 *  terms of the United States Copyright Act.  It was written as part of
8 *  the author's official duties as a United States Government employee and
9 *  thus cannot be copyrighted.  This software/database is freely available
10 *  to the public for use. The National Library of Medicine and the U.S.
11 *  Government have not placed any restriction on its use or reproduction.
12 *
13 *  Although all reasonable efforts have been taken to ensure the accuracy
14 *  and reliability of the software and data, the NLM and the U.S.
15 *  Government do not and cannot warrant the performance or results that
16 *  may be obtained by using this software or data. The NLM and the U.S.
17 *  Government disclaim all warranties, express or implied, including
18 *  warranties of performance, merchantability or fitness for any particular
19 *  purpose.
20 *
21 *  Please cite the author in any work or product based on this material.
22 *
23 * ===========================================================================
24 *
25 */
26 
27 #ifndef _h_kfg_properties_
28 #define _h_kfg_properties_
29 
30 #ifndef _h_kfg_extern_
31 #include <kfg/extern.h>
32 #endif
33 
34 #ifndef _h_kfg_config_
35 #include <kfg/config.h>
36 #endif
37 
38 #ifndef _h_kfg_ngc_
39 #include <kfg/ngc.h>
40 #endif
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
46 
47 /* get/set HTTP proxy path */
48 KFG_EXTERN rc_t CC KConfig_Get_Http_Proxy_Path
49     ( const KConfig *self, char *buffer, size_t buffer_size, size_t *written );
50 KFG_EXTERN rc_t CC KConfig_Set_Http_Proxy_Path
51     ( KConfig *self, const char *value );
52 
53 /* get/set enabled-state for HTTP proxy */
54 KFG_EXTERN rc_t CC KConfig_Get_Http_Proxy_Enabled
55     ( const KConfig *self, bool *enabled, bool dflt );
56 KFG_EXTERN rc_t CC KConfig_Set_Http_Proxy_Enabled
57     ( KConfig *self, bool enabled );
58 
59 /* get/set priority of environmnet vs. configuration for HTTP proxy */
60 KFG_EXTERN rc_t CC KConfig_Has_Http_Proxy_Env_Higher_Priority
61     ( const KConfig *self, bool *enabled );
62 KFG_EXTERN rc_t CC KConfig_Set_Http_Proxy_Env_Higher_Priority
63     ( KConfig *self, bool enabled );
64 
65 
66 /* get the %HOME% path from config
67  */
68 KFG_EXTERN rc_t CC KConfig_Get_Home( const KConfig *self, char * buffer, size_t buffer_size, size_t * written );
69 
70 /* get/set the default path for proposing a path for ngc-imports
71  */
72 KFG_EXTERN rc_t CC KConfig_Get_Default_User_Path( const KConfig *self, char * buffer, size_t buffer_size, size_t * written );
73 KFG_EXTERN rc_t CC KConfig_Set_Default_User_Path( const KConfig *self, const char * value );
74 
75 /* get/set the enabled-state for the 3 repository-categories
76  */
77 KFG_EXTERN rc_t CC KConfig_Get_Remote_Access_Enabled
78     ( const KConfig *self, bool * enabled );
79 KFG_EXTERN rc_t CC KConfig_Get_Remote_Main_Cgi_Access_Enabled
80     ( const KConfig *self, bool * enabled );
81 KFG_EXTERN rc_t CC KConfig_Get_Remote_Aux_Ncbi_Access_Enabled
82     ( const KConfig *self, bool * enabled );
83 
84 KFG_EXTERN rc_t CC KConfig_Set_Remote_Access_Enabled( KConfig *self, bool enabled );
85 
86 KFG_EXTERN rc_t CC KConfig_Get_Site_Access_Enabled( const KConfig *self, bool * enabled );
87 KFG_EXTERN rc_t CC KConfig_Set_Site_Access_Enabled( KConfig *self, bool enabled );
88 
89 KFG_EXTERN rc_t CC KConfig_Get_User_Access_Enabled( const KConfig *self, bool * enabled );
90 KFG_EXTERN rc_t CC KConfig_Set_User_Access_Enabled( KConfig *self, bool enabled );
91 
92 /* get/set the use of all valid certificates
93  */
94 KFG_EXTERN rc_t CC KConfig_Get_Allow_All_Certs( const KConfig *self, bool * enabled );
95 KFG_EXTERN rc_t CC KConfig_Set_Allow_All_Certs( KConfig *self, bool enabled );
96 
97 /* get/set the the cache-enabled-state for the public/protected repositories
98  */
99 KFG_EXTERN rc_t CC KConfig_Get_User_Public_Enabled( const KConfig *self, bool * enabled );
100 KFG_EXTERN rc_t CC KConfig_Set_User_Public_Enabled( KConfig *self, bool enabled );
101 
102 KFG_EXTERN rc_t CC KConfig_Get_User_Public_Cached( const KConfig *self, bool * enabled );
103 KFG_EXTERN rc_t CC KConfig_Set_User_Public_Cached( KConfig *self, bool enabled );
104 
105 KFG_EXTERN rc_t CC KConfig_Get_User_Protected_Cached( const KConfig *self, bool * enabled, const char * name );
106 KFG_EXTERN rc_t CC KConfig_Set_User_Protected_Cached( KConfig *self, bool enabled, const char * name );
107 
108 
109 /* get/set the the cache-location for the public/protected repositories
110  */
111 KFG_EXTERN rc_t CC KConfig_Get_User_Public_Cache_Location( const KConfig *self,
112     char * value, size_t value_size, size_t * written );
113 KFG_EXTERN rc_t CC KConfig_Set_User_Public_Cache_Location( KConfig *self, const char * value );
114 
115 
116 /* Query protected repositories
117  */
118 KFG_EXTERN rc_t CC KConfigGetProtectedRepositoryCount( const KConfig *self,
119     uint32_t * count );
120 KFG_EXTERN rc_t CC KConfigGetProtectedRepositoryName( const KConfig *self,
121     uint32_t id, char * buffer, size_t buffer_size, size_t * written );
122 KFG_EXTERN rc_t CC KConfigGetProtectedRepositoryPathById( const KConfig *self,
123     uint32_t id, char * buffer, size_t buffer_size, size_t * written );
124 KFG_EXTERN rc_t CC KConfigSetProtectedRepositoryPathById( KConfig *self, uint32_t id, const char * value );
125 
126 KFG_EXTERN rc_t CC KConfigGetProtectedRepositoryIdByName( const KConfig *self,
127     const char * name, uint32_t * id );
128 KFG_EXTERN rc_t CC KConfigGetProtectedRepositoryPathByName( const KConfig *self,
129     const char * name, char * buffer, size_t buffer_size, size_t * written );
130 KFG_EXTERN rc_t CC KConfigGetProtectedRepositoryDescriptionByName(
131     const KConfig *self,
132     const char * name, char * buffer, size_t buffer_size, size_t * written );
133 
134 KFG_EXTERN rc_t CC KConfigDoesProtectedRepositoryExist( const KConfig *self, const char * name, bool * res );
135 
136 
137 KFG_EXTERN rc_t CC KConfigGetProtectedRepositoryEnabledById( const KConfig *self, uint32_t id, bool * enabled );
138 KFG_EXTERN rc_t CC KConfigSetProtectedRepositoryEnabledById( KConfig *self, uint32_t id, bool enabled );
139 
140 KFG_EXTERN rc_t CC KConfigGetProtectedRepositoryCachedById( const KConfig *self, uint32_t id, bool * enabled );
141 KFG_EXTERN rc_t CC KConfigSetProtectedRepositoryCachedById( KConfig *self, uint32_t id, bool enabled );
142 
143 /* reads /tools/prefetch/download_to_cache
144    return true if not found */
145 KFG_EXTERN rc_t CC KConfig_Get_Prefetch_Download_To_Cache ( const KConfig *self, bool * download_to_cache );
146 KFG_EXTERN rc_t CC KConfig_Set_Prefetch_Download_To_Cache ( KConfig *self, bool download_to_cache );
147 
148 
149 /* reads /libs/cloud/accept_aws_charges
150    returns false if not found  */
151 KFG_EXTERN rc_t CC KConfig_Get_User_Accept_Aws_Charges ( const KConfig *self, bool * accepts_charges );
152 KFG_EXTERN rc_t CC KConfig_Set_User_Accept_Aws_Charges ( KConfig *self, bool accepts_charges );
153 
154 /* reads /libs/cloud/accept_gcp_charges
155    returns false if not found  */
156 KFG_EXTERN rc_t CC KConfig_Get_User_Accept_Gcp_Charges ( const KConfig *self, bool * accepts_charges );
157 KFG_EXTERN rc_t CC KConfig_Set_User_Accept_Gcp_Charges ( KConfig *self, bool accepts_charges );
158 
159 /* reads /libs/cloud/report_instance_identity
160    returns false if not found  */
161 KFG_EXTERN rc_t CC KConfig_Get_Report_Cloud_Instance_Identity ( const KConfig *self, bool * value );
162 KFG_EXTERN rc_t CC KConfig_Set_Report_Cloud_Instance_Identity ( KConfig *self, bool value );
163 
164 /* reads /libs/temp_cache */
165 KFG_EXTERN rc_t CC KConfig_Get_Temp_Cache ( const KConfig *self, char * buffer, size_t buffer_size, size_t * written );
166 KFG_EXTERN rc_t CC KConfig_Set_Temp_Cache ( KConfig *self, const char * value );
167 
168 /* reads /gcp/credential_file */
169 KFG_EXTERN rc_t KConfig_Get_Gcp_Credential_File ( const KConfig *self, char * buffer, size_t buffer_size, size_t * written );
170 KFG_EXTERN rc_t KConfig_Set_Gcp_Credential_File ( KConfig *self, const char * value );
171 
172 /* reads /aws/credential_file */
173 KFG_EXTERN rc_t KConfig_Get_Aws_Credential_File ( const KConfig *self, char * buffer, size_t buffer_size, size_t * written );
174 KFG_EXTERN rc_t KConfig_Set_Aws_Credential_File ( KConfig *self, const char * value );
175 
176 /* reads /aws/profile, returns "default" if missing or empty */
177 KFG_EXTERN rc_t KConfig_Get_Aws_Profile ( const KConfig *self, char * buffer, size_t buffer_size, size_t * written );
178 KFG_EXTERN rc_t KConfig_Set_Aws_Profile ( KConfig *self, const char * value );
179 
180 /* reads /libs/cache_amount, returns 0 if missing or empty */
181 KFG_EXTERN rc_t CC KConfig_Get_Cache_Amount ( const KConfig *self, uint32_t * value );
182 KFG_EXTERN rc_t CC KConfig_Set_Cache_Amount( KConfig *self, uint32_t value );
183 
184 /* getters/setters for cachetee-integration into vfs-manager */
185 KFG_EXTERN rc_t CC KConfig_Get_CacheTeeVersion( const KConfig *self, uint32_t * value, uint32_t dflt );
186 KFG_EXTERN rc_t CC KConfig_Set_CacheTeeVersion( KConfig *self, uint32_t value );
187 KFG_EXTERN rc_t CC KConfig_Get_CacheBlockSize( const KConfig *self, size_t * value, size_t dflt );
188 KFG_EXTERN rc_t CC KConfig_Set_CacheBlockSize( KConfig *self, size_t value );
189 KFG_EXTERN rc_t CC KConfig_Get_CachePageCount( const KConfig *self, uint32_t * value, uint32_t dflt );
190 KFG_EXTERN rc_t CC KConfig_Set_CachePageCount( KConfig *self, uint32_t value );
191 KFG_EXTERN rc_t CC KConfig_Get_CacheClusterFactorBits( const KConfig *self, uint32_t * value, uint32_t dflt );
192 KFG_EXTERN rc_t CC KConfig_Set_CacheClusterFactorBits( KConfig *self, uint32_t value );
193 KFG_EXTERN rc_t CC KConfig_Get_CachePageSizeBits( const KConfig *self, uint32_t * value, uint32_t dflt );
194 KFG_EXTERN rc_t CC KConfig_Set_CachePageSizeBits( KConfig *self, uint32_t value );
195 KFG_EXTERN rc_t CC KConfig_Get_CacheLogUseCWD( const KConfig *self, bool * value, bool dflt );
196 KFG_EXTERN rc_t CC KConfig_Set_CacheLogUseCWD( KConfig *self, bool value );
197 KFG_EXTERN rc_t CC KConfig_Get_CacheLogAppend( const KConfig *self, bool * value, bool dflt );
198 KFG_EXTERN rc_t CC KConfig_Set_CacheLogAppend( KConfig *self, bool value );
199 KFG_EXTERN rc_t CC KConfig_Get_CacheLogTimed( const KConfig *self, bool * value, bool dflt );
200 KFG_EXTERN rc_t CC KConfig_Set_CacheLogTimed( KConfig *self, bool value );
201 KFG_EXTERN rc_t CC KConfig_Get_CacheLogOuter( const KConfig *self, bool * value, bool dflt );
202 KFG_EXTERN rc_t CC KConfig_Set_CacheLogOuter( KConfig *self, bool value );
203 KFG_EXTERN rc_t CC KConfig_Get_CacheLogInner( const KConfig *self, bool * value, bool dflt );
204 KFG_EXTERN rc_t CC KConfig_Set_CacheLogInner( KConfig *self, bool value );
205 
206 KFG_EXTERN rc_t CC KConfig_Get_CacheDebug( const KConfig *self, bool * value, bool dflt );
207 KFG_EXTERN rc_t CC KConfig_Set_CacheDebug( KConfig *self, bool value );
208 
209 KFG_EXTERN rc_t CC KConfig_Get_GUID( const KConfig *self, char * value, size_t value_size, size_t * written );
210 KFG_EXTERN rc_t CC KConfig_Set_GUID( KConfig *self, const char * value );
211 
212 KFG_EXTERN rc_t CC KConfig_Get_FullQuality( const KConfig *self, bool * value );
213 KFG_EXTERN rc_t CC KConfig_Set_FullQuality( KConfig *self, bool value );
214 
215 #ifdef __cplusplus
216 }
217 #endif
218 
219 #endif /* _h_kfg_properties_ */
220