// This is a generated file, modify: generate/templates/templates/struct_header.h #ifndef GITCHECKOUTOPTIONS_H #define GITCHECKOUTOPTIONS_H #include #include #include #include #include #include "async_baton.h" #include "callback_wrapper.h" #include "reference_counter.h" #include "nodegit_wrapper.h" extern "C" { #include } #include "../include/diff_file.h" #include "../include/strarray.h" #include "../include/tree.h" #include "../include/index.h" #include "../include/checkout_perfdata.h" using namespace node; using namespace v8; class GitCheckoutOptions; struct GitCheckoutOptionsTraits { typedef GitCheckoutOptions cppClass; typedef git_checkout_options cType; static const bool isDuplicable = false; static void duplicate(git_checkout_options **dest, git_checkout_options *src) { Nan::ThrowError("duplicate called on GitCheckoutOptions which cannot be duplicated"); } static const bool isSingleton = false; static const bool isFreeable = true; static void free(git_checkout_options *raw) { unsigned long referenceCount = 0; if (referenceCount == 0) { ::free(raw); // :: to avoid calling this free recursively } } }; class GitCheckoutOptions : public NodeGitWrapper { // grant full access to base class friend class NodeGitWrapper; public: GitCheckoutOptions(git_checkout_options* raw, bool selfFreeing, v8::Local owner = v8::Local()); static void InitializeComponent (v8::Local target); static int notify_cb_cppCallback ( git_checkout_notify_t why , const char * path , const git_diff_file * baseline , const git_diff_file * target , const git_diff_file * workdir , void * payload ); static void notify_cb_async(void *baton); static void notify_cb_promiseCompleted(bool isFulfilled, AsyncBaton *_baton, v8::Local result); struct NotifyCbBaton : public AsyncBatonWithResult { git_checkout_notify_t why; const char * path; const git_diff_file * baseline; const git_diff_file * target; const git_diff_file * workdir; void * payload; NotifyCbBaton(const int &defaultResult) : AsyncBatonWithResult(defaultResult) { } }; static GitCheckoutOptions * notify_cb_getInstanceFromBaton ( NotifyCbBaton *baton); static int progress_cb_cppCallback ( const char * path , size_t completed_steps , size_t total_steps , void * payload ); static void progress_cb_async(void *baton); static void progress_cb_promiseCompleted(bool isFulfilled, AsyncBaton *_baton, v8::Local result); struct ProgressCbBaton : public AsyncBatonWithResult { const char * path; size_t completed_steps; size_t total_steps; void * payload; ProgressCbBaton(const int &defaultResult) : AsyncBatonWithResult(defaultResult) { } }; static GitCheckoutOptions * progress_cb_getInstanceFromBaton ( ProgressCbBaton *baton); static int perfdata_cb_cppCallback ( const git_checkout_perfdata * perfdata , void * payload ); static void perfdata_cb_async(void *baton); static void perfdata_cb_promiseCompleted(bool isFulfilled, AsyncBaton *_baton, v8::Local result); struct PerfdataCbBaton : public AsyncBatonWithResult { const git_checkout_perfdata * perfdata; void * payload; PerfdataCbBaton(const int &defaultResult) : AsyncBatonWithResult(defaultResult) { } }; static GitCheckoutOptions * perfdata_cb_getInstanceFromBaton ( PerfdataCbBaton *baton); private: GitCheckoutOptions(); ~GitCheckoutOptions(); void ConstructFields(); static NAN_GETTER(GetVersion); static NAN_SETTER(SetVersion); static NAN_GETTER(GetCheckoutStrategy); static NAN_SETTER(SetCheckoutStrategy); static NAN_GETTER(GetDisableFilters); static NAN_SETTER(SetDisableFilters); static NAN_GETTER(GetDirMode); static NAN_SETTER(SetDirMode); static NAN_GETTER(GetFileMode); static NAN_SETTER(SetFileMode); static NAN_GETTER(GetFileOpenFlags); static NAN_SETTER(SetFileOpenFlags); static NAN_GETTER(GetNotifyFlags); static NAN_SETTER(SetNotifyFlags); CallbackWrapper notify_cb; static NAN_GETTER(GetNotifyCb); static NAN_SETTER(SetNotifyCb); Nan::Persistent notify_payload; static NAN_GETTER(GetNotifyPayload); static NAN_SETTER(SetNotifyPayload); CallbackWrapper progress_cb; static NAN_GETTER(GetProgressCb); static NAN_SETTER(SetProgressCb); Nan::Persistent progress_payload; static NAN_GETTER(GetProgressPayload); static NAN_SETTER(SetProgressPayload); Nan::Persistent paths; static NAN_GETTER(GetPaths); static NAN_SETTER(SetPaths); Nan::Persistent baseline; static NAN_GETTER(GetBaseline); static NAN_SETTER(SetBaseline); Nan::Persistent baseline_index; static NAN_GETTER(GetBaselineIndex); static NAN_SETTER(SetBaselineIndex); static NAN_GETTER(GetTargetDirectory); static NAN_SETTER(SetTargetDirectory); static NAN_GETTER(GetAncestorLabel); static NAN_SETTER(SetAncestorLabel); static NAN_GETTER(GetOurLabel); static NAN_SETTER(SetOurLabel); static NAN_GETTER(GetTheirLabel); static NAN_SETTER(SetTheirLabel); CallbackWrapper perfdata_cb; static NAN_GETTER(GetPerfdataCb); static NAN_SETTER(SetPerfdataCb); Nan::Persistent perfdata_payload; static NAN_GETTER(GetPerfdataPayload); static NAN_SETTER(SetPerfdataPayload); }; #endif