如何在libgit2库的git_index_add_all()方法中传递void * payload对象?

时间:2015-12-02 11:11:46

标签: libgit2

我正在运行libgit2 v0.23.0。我正在调用方法git_index_add_all,它采用以下参数:

  • git_index * index
  • const git_strarray * pathspec
  • unsigned int flags
  • git_index_matched_pa​​th_cb回拨
  • void * payload

我无法了解如何创建上一个void *payload parameter

我的代码是:

 git_index *idx = NULL;
 git_index_matched_path_cb matched_cb = NULL;
 int error = 0;
 error = git_index_open(&idx, "repofolder/.git/index");
 char *paths[] = {"repofolder/*"};
 git_strarray arr = {paths, 1};
 error = git_index_add_all(idx, &arr, GIT_INDEX_ADD_DEFAULT,matched_cb, ?);

任何人都可以建议我,创建或获取有效负载类型对象的方法应该是什么?

1 个答案:

答案 0 :(得分:2)

payload参数是在C中创建闭包的标准方法。您的回调将接收您作为其payload参数放入的任何指针。它应该是指向回调执行其工作所需的任何变量/结构的指针。

如果您不需要任何数据,请传入NULL