Files
huishou/node_modules/nodegit/include/merge.h
T
2026-07-27 13:37:48 +08:00

236 lines
5.6 KiB
C++

// This is a generated file, modify: generate/templates/templates/class_header.h
#ifndef GITMERGE_H
#define GITMERGE_H
#include <nan.h>
#include <string>
#include <queue>
#include <utility>
#include <unordered_map>
#include <sstream>
#include "async_baton.h"
#include "nodegit_wrapper.h"
#include "promise_completion.h"
#include "reference_counter.h"
extern "C" {
#include <git2.h>
}
#include "../include/typedefs.h"
#include "../include/repository.h"
#include "../include/annotated_commit.h"
#include "../include/merge_options.h"
#include "../include/checkout_options.h"
#include "../include/reference.h"
#include "../include/oid.h"
#include "../include/oidarray.h"
#include "../include/index.h"
#include "../include/commit.h"
#include "../include/tree.h"
using namespace node;
using namespace v8;
class GitMerge : public
Nan::ObjectWrap
{
public:
static void InitializeComponent (v8::Local<v8::Object> target);
private:
struct MergeBaton {
int error_code;
const git_error* error;
git_repository * repo;
const git_annotated_commit ** their_heads;
size_t their_heads_len;
git_merge_options * merge_opts;
git_checkout_options * checkout_opts;
};
class MergeWorker : public Nan::AsyncWorker {
public:
MergeWorker(
MergeBaton *_baton,
Nan::Callback *callback
) : Nan::AsyncWorker(callback)
, baton(_baton) {};
~MergeWorker() {};
void Execute();
void HandleOKCallback();
private:
MergeBaton *baton;
};
static NAN_METHOD(Merge);
struct AnalysisBaton {
int error_code;
const git_error* error;
git_merge_analysis_t * analysis_out;
git_merge_preference_t * preference_out;
git_repository * repo;
const git_annotated_commit ** their_heads;
size_t their_heads_len;
};
class AnalysisWorker : public Nan::AsyncWorker {
public:
AnalysisWorker(
AnalysisBaton *_baton,
Nan::Callback *callback
) : Nan::AsyncWorker(callback)
, baton(_baton) {};
~AnalysisWorker() {};
void Execute();
void HandleOKCallback();
private:
AnalysisBaton *baton;
};
static NAN_METHOD(Analysis);
struct AnalysisForRefBaton {
int error_code;
const git_error* error;
git_merge_analysis_t * analysis_out;
git_merge_preference_t * preference_out;
git_repository * repo;
git_reference * our_ref;
const git_annotated_commit ** their_heads;
size_t their_heads_len;
};
class AnalysisForRefWorker : public Nan::AsyncWorker {
public:
AnalysisForRefWorker(
AnalysisForRefBaton *_baton,
Nan::Callback *callback
) : Nan::AsyncWorker(callback)
, baton(_baton) {};
~AnalysisForRefWorker() {};
void Execute();
void HandleOKCallback();
private:
AnalysisForRefBaton *baton;
};
static NAN_METHOD(AnalysisForRef);
struct BaseBaton {
int error_code;
const git_error* error;
git_oid * out;
git_repository * repo;
const git_oid * one;
bool oneNeedsFree;
const git_oid * two;
bool twoNeedsFree;
};
class BaseWorker : public Nan::AsyncWorker {
public:
BaseWorker(
BaseBaton *_baton,
Nan::Callback *callback
) : Nan::AsyncWorker(callback)
, baton(_baton) {};
~BaseWorker() {};
void Execute();
void HandleOKCallback();
private:
BaseBaton *baton;
};
static NAN_METHOD(Base);
struct BasesBaton {
int error_code;
const git_error* error;
git_oidarray * out;
git_repository * repo;
const git_oid * one;
bool oneNeedsFree;
const git_oid * two;
bool twoNeedsFree;
};
class BasesWorker : public Nan::AsyncWorker {
public:
BasesWorker(
BasesBaton *_baton,
Nan::Callback *callback
) : Nan::AsyncWorker(callback)
, baton(_baton) {};
~BasesWorker() {};
void Execute();
void HandleOKCallback();
private:
BasesBaton *baton;
};
static NAN_METHOD(Bases);
struct CommitsBaton {
int error_code;
const git_error* error;
git_index * out;
git_repository * repo;
const git_commit * our_commit;
const git_commit * their_commit;
const git_merge_options * opts;
};
class CommitsWorker : public Nan::AsyncWorker {
public:
CommitsWorker(
CommitsBaton *_baton,
Nan::Callback *callback
) : Nan::AsyncWorker(callback)
, baton(_baton) {};
~CommitsWorker() {};
void Execute();
void HandleOKCallback();
private:
CommitsBaton *baton;
};
static NAN_METHOD(Commits);
struct TreesBaton {
int error_code;
const git_error* error;
git_index * out;
git_repository * repo;
const git_tree * ancestor_tree;
const git_tree * our_tree;
const git_tree * their_tree;
const git_merge_options * opts;
};
class TreesWorker : public Nan::AsyncWorker {
public:
TreesWorker(
TreesBaton *_baton,
Nan::Callback *callback
) : Nan::AsyncWorker(callback)
, baton(_baton) {};
~TreesWorker() {};
void Execute();
void HandleOKCallback();
private:
TreesBaton *baton;
};
static NAN_METHOD(Trees);
};
#endif