5
// Jeffrey Stedfast <jeff@xamarin.com>
6
// Alan McGovern <alan@xamarin.com>
8
// Copyright (c) 2012 Xamarin Inc.
10
// Permission is hereby granted, free of charge, to any person obtaining a copy
11
// of this software and associated documentation files (the "Software"), to deal
12
// in the Software without restriction, including without limitation the rights
13
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
// copies of the Software, and to permit persons to whom the Software is
15
// furnished to do so, subject to the following conditions:
17
// The above copyright notice and this permission notice shall be included in
18
// all copies or substantial portions of the Software.
20
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
30
using System.Threading;
31
using System.Collections;
32
using System.Runtime.InteropServices;
34
using MonoDevelop.Core;
35
using MonoDevelop.VersionControl;
36
using MonoDevelop.VersionControl.Subversion.Gui;
38
using svn_revnum_t = System.Int32;
40
namespace MonoDevelop.VersionControl.Subversion.Unix {
42
public class LibSvnClient0 : LibSvnClient {
43
private const string svnclientlib = "libsvn_client-1.so.0";
45
public override IntPtr client_root_url_from_path (ref IntPtr url, string path_or_url, IntPtr ctx, IntPtr pool)
47
return svn_client_root_url_from_path (ref url, path_or_url, ctx, pool);
50
public override void config_ensure (string config_dir, IntPtr pool)
52
svn_config_ensure (config_dir, pool);
55
public override void config_get_config (ref IntPtr cfg_hash, string config_dir, IntPtr pool)
57
svn_config_get_config (ref cfg_hash, config_dir, pool);
60
public override void auth_open (out IntPtr auth_baton, IntPtr providers, IntPtr pool)
62
svn_auth_open (out auth_baton, providers, pool);
65
public override void auth_set_parameter (IntPtr auth_baton, string name, IntPtr value)
67
svn_auth_set_parameter (auth_baton, name, value);
70
public override IntPtr auth_get_parameter (IntPtr auth_baton, string name)
72
return svn_auth_get_parameter (auth_baton, name);
75
public override void client_get_simple_provider (IntPtr item, IntPtr pool)
77
svn_client_get_simple_provider (item, pool);
80
public override void client_get_simple_prompt_provider (IntPtr item, svn_auth_simple_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool)
82
svn_client_get_simple_prompt_provider (item, prompt_func, prompt_batton, retry_limit, pool);
85
public override void client_get_username_provider (IntPtr item, IntPtr pool)
87
svn_client_get_username_provider (item, pool);
90
public override void client_get_username_prompt_provider (IntPtr item, svn_auth_username_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool)
92
svn_client_get_username_prompt_provider (item, prompt_func, prompt_batton, retry_limit, pool);
95
public override void client_get_ssl_server_trust_file_provider (IntPtr item, IntPtr pool)
97
svn_client_get_ssl_server_trust_file_provider (item, pool);
100
public override void client_get_ssl_client_cert_file_provider (IntPtr item, IntPtr pool)
102
svn_client_get_ssl_client_cert_file_provider (item, pool);
105
public override void client_get_ssl_client_cert_pw_file_provider (IntPtr item, IntPtr pool)
107
svn_client_get_ssl_client_cert_pw_file_provider (item, pool);
110
public override void client_get_ssl_server_trust_prompt_provider (IntPtr item, svn_auth_ssl_server_trust_prompt_func_t prompt_func, IntPtr prompt_batton, IntPtr pool)
112
svn_client_get_ssl_server_trust_prompt_provider (item, prompt_func, prompt_batton, pool);
115
public override void client_get_ssl_client_cert_prompt_provider (IntPtr item, svn_auth_ssl_client_cert_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool)
117
svn_client_get_ssl_client_cert_prompt_provider (item, prompt_func, prompt_batton, retry_limit, pool);
120
public override void client_get_ssl_client_cert_pw_prompt_provider (IntPtr item, svn_auth_ssl_client_cert_pw_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool)
122
svn_client_get_ssl_client_cert_pw_prompt_provider (item, prompt_func, prompt_batton, retry_limit, pool);
125
public override IntPtr client_version ()
127
return svn_client_version ();
130
public override IntPtr client_create_context (out IntPtr ctx, IntPtr pool)
132
return svn_client_create_context (out ctx, pool);
135
public override IntPtr client_ls (out IntPtr dirents, string path_or_url,
136
ref Rev revision, int recurse, IntPtr ctx,
139
return svn_client_ls (out dirents, path_or_url, ref revision, recurse, ctx, pool);
142
public override IntPtr client_status (IntPtr result_rev, string path, ref Rev revision,
143
svn_wc_status_func2_t status_func, IntPtr status_baton,
144
bool recurse, bool get_all, bool update, bool no_ignore,
145
bool ignore_externals, IntPtr ctx, IntPtr pool)
147
return svn_client_status2 (result_rev, path, ref revision, status_func,
148
status_baton, recurse, get_all, update,
149
no_ignore, ignore_externals, ctx, pool);
152
public override IntPtr client_log (IntPtr apr_array_header_t_targets,
153
ref Rev rev_start, ref Rev rev_end,
154
int discover_changed_paths,
155
int strict_node_history,
156
svn_log_message_receiver_t receiver,
157
IntPtr receiver_baton,
158
IntPtr ctx, IntPtr pool)
160
return svn_client_log (apr_array_header_t_targets, ref rev_start, ref rev_end,
161
discover_changed_paths, strict_node_history, receiver,
162
receiver_baton,ctx, pool);
165
public override IntPtr time_from_cstring (out long aprtime, string time, IntPtr pool)
167
return svn_time_from_cstring (out aprtime, time, pool);
170
public override IntPtr client_url_from_path (ref IntPtr url, string path_or_url, IntPtr pool)
172
return svn_client_url_from_path (ref url, path_or_url, pool);
175
public override IntPtr client_cat2 (IntPtr stream, string path_or_url,
176
ref Rev peg_revision,
178
IntPtr ctx, IntPtr pool)
180
return svn_client_cat2 (stream, path_or_url, ref peg_revision, ref revision, ctx, pool);
183
public override IntPtr stream_create (IntPtr baton, IntPtr pool)
185
return svn_stream_create (baton, pool);
188
//public override IntPtr stream_set_read (IntPtr stream, svn_readwrite_fn_t reader);
190
public override IntPtr stream_set_write (IntPtr stream, svn_readwrite_fn_t writer)
192
return svn_stream_set_write (stream, writer);
195
public override IntPtr client_update (IntPtr result_rev, string path, ref Rev revision,
196
bool recurse, IntPtr ctx, IntPtr pool)
198
return svn_client_update (result_rev, path, ref revision, recurse, ctx, pool);
201
public override IntPtr client_delete (ref IntPtr commit_info_p, IntPtr apr_array_header_t_targets,
202
int force, IntPtr ctx, IntPtr pool)
204
return svn_client_delete (ref commit_info_p, apr_array_header_t_targets, force, ctx, pool);
207
public override IntPtr client_add3 (string path, int recurse, int force, int no_ignore, IntPtr ctx, IntPtr pool)
209
return svn_client_add3 (path, recurse, force, no_ignore, ctx, pool);
212
public override IntPtr client_commit (ref IntPtr svn_client_commit_info_t_commit_info,
213
IntPtr apr_array_header_t_targets, int nonrecursive,
214
IntPtr ctx, IntPtr pool)
216
return svn_client_commit (ref svn_client_commit_info_t_commit_info, apr_array_header_t_targets,
217
nonrecursive, ctx, pool);
220
public override IntPtr client_revert (IntPtr apr_array_header_t_targets, int recursive,
221
IntPtr ctx, IntPtr pool)
223
return svn_client_revert (apr_array_header_t_targets, recursive, ctx, pool);
226
public override IntPtr client_resolved (string path, int recursive, IntPtr ctx, IntPtr pool)
228
return svn_client_resolved (path, recursive, ctx, pool);
231
public override IntPtr client_move (ref IntPtr commit_info_p, string srcPath, ref Rev rev,
232
string destPath, int force, IntPtr ctx, IntPtr pool)
234
return svn_client_move (ref commit_info_p, srcPath, ref rev, destPath, force, ctx, pool);
237
public override IntPtr client_checkout (IntPtr result_rev, string url, string path, ref Rev rev,
238
bool recurse, IntPtr ctx, IntPtr pool)
240
return svn_client_checkout (result_rev, url, path, ref rev, recurse, ctx, pool);
243
public override IntPtr client_mkdir2 (ref IntPtr commit_info, IntPtr apr_array_paths, IntPtr ctx, IntPtr pool)
245
return svn_client_mkdir2 (ref commit_info, apr_array_paths, ctx, pool);
248
public override IntPtr client_diff (IntPtr diff_options, string path1, ref Rev revision1,
249
string path2, ref Rev revision2, int recurse,
250
int ignore_ancestry, int no_diff_deleted,
251
IntPtr outfile, IntPtr errfile,
252
IntPtr ctx, IntPtr pool)
254
return svn_client_diff (diff_options, path1, ref revision1, path2, ref revision2, recurse, ignore_ancestry,
255
no_diff_deleted, outfile, errfile, ctx, pool);
258
public override IntPtr client_merge_peg2 (
262
ref Rev peg_revision,
263
string target_wcpath,
265
bool ignore_ancestry,
268
IntPtr merge_options,
272
// svn_boolean_t == int
273
return svn_client_merge_peg2 (source, ref revision1, ref revision2, ref peg_revision, target_wcpath,
274
recurse ? 1: 0, ignore_ancestry ? 1 : 0, force ? 1 : 0, dry_run ? 1 : 0,
275
merge_options, ctx, pool);
278
public override IntPtr client_lock (IntPtr apr_array_header_t_targets, string comment, int steal_lock, IntPtr ctx, IntPtr pool)
280
return svn_client_lock (apr_array_header_t_targets, comment, steal_lock, ctx, pool);
283
public override IntPtr client_unlock (IntPtr apr_array_header_t_targets, int break_lock, IntPtr ctx, IntPtr pool)
285
return svn_client_unlock (apr_array_header_t_targets, break_lock, ctx, pool);
288
public override IntPtr client_prop_get (out IntPtr value, string name, string target, ref Rev revision, int recurse, IntPtr ctx, IntPtr pool)
290
return svn_client_prop_get (out value, name, target, ref revision, recurse, ctx, pool);
293
public override IntPtr client_blame (string path, ref Rev rev_start, ref Rev rev_end, svn_client_blame_receiver_t receiver, System.IntPtr baton, System.IntPtr ctx, System.IntPtr pool)
295
return svn_client_blame (path, ref rev_start, ref rev_end, receiver, baton, ctx, pool);
298
public override void strerror (int statcode, byte[] buf, int bufsize)
300
svn_strerror (statcode, buf, bufsize);
303
public override IntPtr path_internal_style (string path, IntPtr pool)
305
return svn_path_internal_style (path, pool);
308
[DllImport(svnclientlib)] static extern IntPtr svn_client_root_url_from_path (ref IntPtr url, string path_or_url, IntPtr ctx, IntPtr pool);
309
[DllImport(svnclientlib)] static extern IntPtr svn_config_ensure (string config_dir, IntPtr pool);
310
[DllImport(svnclientlib)] static extern IntPtr svn_config_get_config (ref IntPtr cfg_hash, string config_dir, IntPtr pool);
311
[DllImport(svnclientlib)] static extern void svn_auth_open (out IntPtr auth_baton, IntPtr providers, IntPtr pool);
312
[DllImport(svnclientlib)] static extern void svn_auth_set_parameter (IntPtr auth_baton, string name, IntPtr value);
313
[DllImport(svnclientlib)] static extern IntPtr svn_auth_get_parameter (IntPtr auth_baton, string name);
314
[DllImport(svnclientlib)] static extern void svn_client_get_simple_provider (IntPtr item, IntPtr pool);
315
[DllImport(svnclientlib)] static extern void svn_client_get_simple_prompt_provider (IntPtr item, svn_auth_simple_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool);
316
[DllImport(svnclientlib)] static extern void svn_client_get_username_provider (IntPtr item, IntPtr pool);
317
[DllImport(svnclientlib)] static extern void svn_client_get_username_prompt_provider (IntPtr item, svn_auth_username_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool);
318
[DllImport(svnclientlib)] static extern void svn_client_get_ssl_server_trust_file_provider (IntPtr item, IntPtr pool);
319
[DllImport(svnclientlib)] static extern void svn_client_get_ssl_client_cert_file_provider (IntPtr item, IntPtr pool);
320
[DllImport(svnclientlib)] static extern void svn_client_get_ssl_client_cert_pw_file_provider (IntPtr item, IntPtr pool);
321
[DllImport(svnclientlib)] static extern void svn_client_get_ssl_server_trust_prompt_provider (IntPtr item, svn_auth_ssl_server_trust_prompt_func_t prompt_func, IntPtr prompt_batton, IntPtr pool);
322
[DllImport(svnclientlib)] static extern void svn_client_get_ssl_client_cert_prompt_provider (IntPtr item, svn_auth_ssl_client_cert_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool);
323
[DllImport(svnclientlib)] static extern void svn_client_get_ssl_client_cert_pw_prompt_provider (IntPtr item, svn_auth_ssl_client_cert_pw_prompt_func_t prompt_func, IntPtr prompt_batton, int retry_limit, IntPtr pool);
325
[DllImport(svnclientlib)] static extern IntPtr svn_client_version();
327
[DllImport(svnclientlib)] static extern IntPtr svn_client_create_context(out IntPtr ctx, IntPtr pool);
329
[DllImport(svnclientlib)] static extern IntPtr svn_client_ls (out IntPtr dirents, string path_or_url,
330
ref Rev revision, int recurse, IntPtr ctx,
333
[DllImport(svnclientlib)] static extern IntPtr svn_client_status2 (IntPtr svn_revnum_t, string path, ref Rev revision,
334
svn_wc_status_func2_t status_func, IntPtr status_baton,
335
[MarshalAs (UnmanagedType.Bool)] bool recurse,
336
[MarshalAs (UnmanagedType.Bool)] bool get_all,
337
[MarshalAs (UnmanagedType.Bool)] bool update,
338
[MarshalAs (UnmanagedType.Bool)] bool no_ignore,
339
[MarshalAs (UnmanagedType.Bool)] bool ignore_externals,
340
IntPtr ctx, IntPtr pool);
342
[DllImport(svnclientlib)] static extern IntPtr svn_client_log (IntPtr apr_array_header_t_targets,
343
ref Rev rev_start, ref Rev rev_end,
344
int discover_changed_paths,
345
int strict_node_history,
346
svn_log_message_receiver_t receiver,
347
IntPtr receiver_baton,
348
IntPtr ctx, IntPtr pool);
350
[DllImport(svnclientlib)] static extern IntPtr svn_time_from_cstring (out long aprtime, string time, IntPtr pool);
352
[DllImport(svnclientlib)] static extern IntPtr svn_client_url_from_path (ref IntPtr url, string path_or_url, IntPtr pool);
354
[DllImport(svnclientlib)] static extern IntPtr svn_client_cat2 (IntPtr stream, string path_or_url,
355
ref Rev peg_revision,
357
IntPtr ctx, IntPtr pool);
359
[DllImport(svnclientlib)] static extern IntPtr svn_stream_create (IntPtr baton, IntPtr pool);
361
//[DllImport(svnclientlib)] static extern IntPtr svn_stream_set_read (IntPtr stream, svn_readwrite_fn_t reader);
363
[DllImport(svnclientlib)] static extern IntPtr svn_stream_set_write (IntPtr stream, svn_readwrite_fn_t writer);
365
[DllImport(svnclientlib)] static extern IntPtr svn_client_update (IntPtr result_rev, string path, ref Rev revision,
366
[MarshalAs (UnmanagedType.Bool)] bool recurse,
367
IntPtr ctx, IntPtr pool);
369
[DllImport(svnclientlib)] static extern IntPtr svn_client_delete (ref IntPtr commit_info_p, IntPtr apr_array_header_t_targets,
370
int force, IntPtr ctx, IntPtr pool);
372
[DllImport(svnclientlib)] static extern IntPtr svn_client_add3 (string path, int recurse, int force, int no_ignore, IntPtr ctx, IntPtr pool);
374
[DllImport(svnclientlib)] static extern IntPtr svn_client_commit (ref IntPtr svn_client_commit_info_t_commit_info,
375
IntPtr apr_array_header_t_targets, int nonrecursive,
376
IntPtr ctx, IntPtr pool);
378
[DllImport(svnclientlib)] static extern IntPtr svn_client_revert (IntPtr apr_array_header_t_targets, int recursive,
379
IntPtr ctx, IntPtr pool);
381
[DllImport(svnclientlib)] static extern IntPtr svn_client_resolved (string path, int recursive, IntPtr ctx, IntPtr pool);
383
[DllImport(svnclientlib)] static extern IntPtr svn_client_move (ref IntPtr commit_info_p, string srcPath, ref Rev rev,
384
string destPath, int force, IntPtr ctx, IntPtr pool);
386
[DllImport(svnclientlib)] static extern IntPtr svn_client_checkout (IntPtr result_rev, string url, string path, ref Rev rev,
387
[MarshalAs (UnmanagedType.Bool)] bool recurse,
388
IntPtr ctx, IntPtr pool);
390
[DllImport(svnclientlib)] static extern IntPtr svn_client_mkdir2 (ref IntPtr commit_info, IntPtr apr_array_paths, IntPtr ctx, IntPtr pool);
392
[DllImport(svnclientlib)] static extern IntPtr svn_client_diff (IntPtr diff_options, string path1,
393
ref Rev revision1, string path2,
394
ref Rev revision2, int recurse,
402
[DllImport(svnclientlib)] static extern IntPtr svn_client_merge_peg2 (string source,
405
ref Rev peg_revision,
406
string target_wcpath,
411
IntPtr merge_options,
415
[DllImport(svnclientlib)] static extern IntPtr svn_client_lock (IntPtr apr_array_header_t_targets, string comment, int steal_lock, IntPtr ctx, IntPtr pool);
417
[DllImport(svnclientlib)] static extern IntPtr svn_client_unlock (IntPtr apr_array_header_t_targets, int break_lock, IntPtr ctx, IntPtr pool);
419
[DllImport(svnclientlib)] static extern IntPtr svn_client_prop_get (out IntPtr value, string name, string target, ref Rev revision, int recurse, IntPtr ctx, IntPtr pool);
421
[DllImport(svnclientlib)] static extern IntPtr svn_client_blame (string path, ref Rev rev_start, ref Rev rev_end, svn_client_blame_receiver_t receiver, IntPtr baton, IntPtr ctx, IntPtr pool);
423
[DllImport(svnclientlib)] static extern void svn_strerror (int statcode, byte[] buf, int bufsize);
425
[DllImport(svnclientlib)] static extern IntPtr svn_path_internal_style (string path, IntPtr pool);
b'\\ No newline at end of file'