sass_context_wrapper.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include <stdlib.h>
  2. #include <nan.h>
  3. #include <condition_variable>
  4. #include "libsass/sass_context.h"
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. using namespace v8;
  9. void compile_data(struct Sass_Data_Context* dctx);
  10. void compile_file(struct Sass_File_Context* fctx);
  11. void compile_it(uv_work_t* req);
  12. struct sass_context_wrapper {
  13. // binding related
  14. bool is_sync;
  15. void* cookie;
  16. const char* prev;
  17. const char* file;
  18. std::mutex* importer_mutex;
  19. std::condition_variable* importer_condition_variable;
  20. // libsass related
  21. Sass_Import** imports;
  22. Sass_Data_Context* dctx;
  23. Sass_File_Context* fctx;
  24. // libuv related
  25. uv_async_t async;
  26. uv_work_t request;
  27. // v8 and nan related
  28. Persistent<Object> result;
  29. NanCallback* error_callback;
  30. NanCallback* success_callback;
  31. NanCallback* importer_callback;
  32. };
  33. struct sass_context_wrapper* sass_make_context_wrapper(void);
  34. void sass_wrapper_dispose(struct sass_context_wrapper*, char*);
  35. void sass_free_context_wrapper(struct sass_context_wrapper*);
  36. #ifdef __cplusplus
  37. }
  38. #endif