示例#1
0
/* Implements svn_ra_serf__request_body_delegate_t */
static svn_error_t*
create_merge_body(serf_bucket_t **bkt,
                  void *baton,
                  serf_bucket_alloc_t *alloc,
                  apr_pool_t *pool /* request pool */,
                  apr_pool_t *scratch_pool)
{
  merge_context_t *ctx = baton;
  serf_bucket_t *body_bkt;

  body_bkt = serf_bucket_aggregate_create(alloc);

  svn_ra_serf__add_xml_header_buckets(body_bkt, alloc);
  svn_ra_serf__add_open_tag_buckets(body_bkt, alloc, "D:merge",
                                    "xmlns:D", "DAV:",
                                    SVN_VA_NULL);
  svn_ra_serf__add_open_tag_buckets(body_bkt, alloc, "D:source", SVN_VA_NULL);
  svn_ra_serf__add_open_tag_buckets(body_bkt, alloc, "D:href", SVN_VA_NULL);

  svn_ra_serf__add_cdata_len_buckets(body_bkt, alloc,
                                     ctx->merge_resource_url,
                                     strlen(ctx->merge_resource_url));

  svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:href");
  svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:source");

  svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc,
                                     "D:no-auto-merge", SVN_VA_NULL);
  svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc,
                                     "D:no-checkout", SVN_VA_NULL);

  svn_ra_serf__add_open_tag_buckets(body_bkt, alloc, "D:prop", SVN_VA_NULL);
  svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc,
                                     "D:checked-in", SVN_VA_NULL);
  svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc,
                                     "D:" SVN_DAV__VERSION_NAME, SVN_VA_NULL);
  svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc,
                                     "D:resourcetype", SVN_VA_NULL);
  svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc,
                                     "D:" SVN_DAV__CREATIONDATE, SVN_VA_NULL);
  svn_ra_serf__add_empty_tag_buckets(body_bkt, alloc,
                                     "D:creator-displayname", SVN_VA_NULL);
  svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:prop");

  svn_ra_serf__merge_lock_token_list(ctx->lock_tokens, NULL, body_bkt,
                                     alloc, pool);

  svn_ra_serf__add_close_tag_buckets(body_bkt, alloc, "D:merge");

  *bkt = body_bkt;

  return SVN_NO_ERROR;
}
示例#2
0
static svn_error_t *
create_options_body(serf_bucket_t **body_bkt,
                    void *baton,
                    serf_bucket_alloc_t *alloc,
                    apr_pool_t *pool)
{
  serf_bucket_t *body;
  body = serf_bucket_aggregate_create(alloc);
  svn_ra_serf__add_xml_header_buckets(body, alloc);
  svn_ra_serf__add_open_tag_buckets(body, alloc, "D:options",
                                    "xmlns:D", "DAV:",
                                    NULL);
  svn_ra_serf__add_tag_buckets(body, "D:activity-collection-set", NULL, alloc);
  svn_ra_serf__add_close_tag_buckets(body, alloc, "D:options");

  *body_bkt = body;
  return SVN_NO_ERROR;
}