6 |
|
|
7 |
|
#include <cxx/standard.hh> |
8 |
|
|
9 |
< |
#include <apr_tables.h> |
9 |
> |
#include <api/apr/array.hpp> |
10 |
|
|
11 |
|
#include "Client.hpp" |
12 |
|
|
13 |
+ |
namespace api |
14 |
+ |
{ |
15 |
+ |
|
16 |
+ |
namespace Apr |
17 |
+ |
{ |
18 |
+ |
|
19 |
+ |
template <> |
20 |
+ |
Array<const char *>::Array(_L<cse::String>::ConstIterator begin, _L<cse::String>::ConstIterator end) |
21 |
+ |
{ |
22 |
+ |
_forall (_L<cse::String>::ConstIterator, string, begin, end) |
23 |
+ |
Push() = string->NullTerminate(); |
24 |
+ |
} |
25 |
+ |
|
26 |
+ |
} |
27 |
+ |
|
28 |
+ |
} |
29 |
+ |
|
30 |
|
namespace Subversion |
31 |
|
{ |
32 |
|
|
34 |
|
{ |
35 |
|
CheckError(::svn_client_create_context(&context, pool)); |
36 |
|
|
37 |
< |
::apr_array_header_t *providers(::apr_array_make(pool, 5, sizeof (::svn_auth_provider_object_t *))); |
37 |
> |
api::Apr::Array< ::svn_auth_provider_object_t *> providers; |
38 |
|
|
39 |
|
#ifdef _WIN32 |
40 |
< |
::svn_client_get_windows_simple_provider(reinterpret_cast< ::svn_auth_provider_object_t **>(::apr_array_push(providers)), pool); |
40 |
> |
::svn_client_get_windows_simple_provider(&providers.Push(), pool); |
41 |
|
#endif |
42 |
< |
::svn_client_get_simple_provider(reinterpret_cast< ::svn_auth_provider_object_t **>(::apr_array_push(providers)), pool); |
43 |
< |
::svn_client_get_username_provider(reinterpret_cast< ::svn_auth_provider_object_t **>(::apr_array_push(providers)), pool); |
44 |
< |
::svn_client_get_ssl_server_trust_file_provider(reinterpret_cast< ::svn_auth_provider_object_t **>(::apr_array_push(providers)), pool); |
45 |
< |
::svn_client_get_ssl_client_cert_file_provider(reinterpret_cast< ::svn_auth_provider_object_t **>(::apr_array_push(providers)), pool); |
46 |
< |
::svn_client_get_ssl_client_cert_pw_file_provider(reinterpret_cast< ::svn_auth_provider_object_t **>(::apr_array_push(providers)), pool); |
42 |
> |
::svn_client_get_simple_provider(&providers.Push(), pool); |
43 |
> |
::svn_client_get_username_provider(&providers.Push(), pool); |
44 |
> |
::svn_client_get_ssl_server_trust_file_provider(&providers.Push(), pool); |
45 |
> |
::svn_client_get_ssl_client_cert_file_provider(&providers.Push(), pool); |
46 |
> |
::svn_client_get_ssl_client_cert_pw_file_provider(&providers.Push(), pool); |
47 |
|
::svn_auth_open(&context->auth_baton, providers, pool); |
48 |
|
} |
49 |
|
|
95 |
|
return entries; |
96 |
|
} |
97 |
|
|
98 |
+ |
void Client::Update(const _L<cse::String> &paths) |
99 |
+ |
{ |
100 |
+ |
::svn_opt_revision_t revision = { ::svn_opt_revision_head }; |
101 |
+ |
api::Apr::Pool pool; |
102 |
+ |
|
103 |
+ |
CheckError(::svn_client_update2(NULL, api::Apr::Array<const char *>(paths.Begin(), paths.End()), &revision, false, true, context, pool)); |
104 |
+ |
} |
105 |
+ |
|
106 |
|
} |