1 | #include "PDFObjectParserDriver.h"
|
2 | #include "PDFObjectParser.h"
|
3 | #include "PDFObjectDriver.h"
|
4 | #include "RefCountPtr.h"
|
5 | #include "PDFObject.h"
|
6 | #include "ConstructorsHolder.h"
|
7 |
|
8 | using namespace v8;
|
9 |
|
10 |
|
11 |
|
12 | PDFObjectParserDriver::PDFObjectParserDriver()
|
13 | {
|
14 | PDFObjectParserInstance = NULL;
|
15 | }
|
16 |
|
17 | PDFObjectParserDriver::~PDFObjectParserDriver() {
|
18 | delete PDFObjectParserInstance;
|
19 | }
|
20 |
|
21 | DEF_SUBORDINATE_INIT(PDFObjectParserDriver::Init)
|
22 | {
|
23 | CREATE_ISOLATE_CONTEXT;
|
24 |
|
25 | Local<FunctionTemplate> t = NEW_FUNCTION_TEMPLATE_EXTERNAL(New);
|
26 |
|
27 | t->SetClassName(NEW_STRING("PDFObjectParserDriver"));
|
28 | t->InstanceTemplate()->SetInternalFieldCount(1);
|
29 |
|
30 | SET_PROTOTYPE_METHOD(t, "parseNewObject", ParseNewObject);
|
31 |
|
32 |
|
33 | EXPOSE_EXTERNAL_FOR_INIT(ConstructorsHolder, holder)
|
34 | SET_CONSTRUCTOR(holder->PDFObjectParser_constructor, t);
|
35 | SET_CONSTRUCTOR_TEMPLATE(holder->PDFObjectParser_constructor_template,t);
|
36 | }
|
37 |
|
38 | METHOD_RETURN_TYPE PDFObjectParserDriver::New(const ARGS_TYPE& args)
|
39 | {
|
40 | CREATE_ISOLATE_CONTEXT;
|
41 | CREATE_ESCAPABLE_SCOPE;
|
42 | EXPOSE_EXTERNAL_ARGS(ConstructorsHolder, externalHolder)
|
43 |
|
44 | PDFObjectParserDriver* driver = new PDFObjectParserDriver();
|
45 | driver->holder = externalHolder;
|
46 | driver->Wrap(args.This());
|
47 | SET_FUNCTION_RETURN_VALUE(args.This())
|
48 | }
|
49 |
|
50 | METHOD_RETURN_TYPE PDFObjectParserDriver::ParseNewObject(const ARGS_TYPE& args)
|
51 | {
|
52 | CREATE_ISOLATE_CONTEXT;
|
53 | CREATE_ESCAPABLE_SCOPE;
|
54 |
|
55 | PDFObjectParserDriver* self = ObjectWrap::Unwrap<PDFObjectParserDriver>(args.This());
|
56 |
|
57 | RefCountPtr<PDFObject> newObject = self->PDFObjectParserInstance->ParseNewObject();
|
58 |
|
59 | if(!newObject)
|
60 | SET_FUNCTION_RETURN_VALUE(UNDEFINED)
|
61 | else
|
62 | SET_FUNCTION_RETURN_VALUE(self->holder->GetInstanceFor(newObject.GetPtr()))
|
63 | } |
\ | No newline at end of file |