[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/djGithub0727/node-java/master/src/javaObject.h [Back]  [Original]

#ifndef _javaobject_h_
#define _javaobject_h_

#include 
#include 
#include 
#include 
#include 
#include "methodCallBaton.h"

class Java;

class JavaObject : public Nan::ObjectWrap {
public:
  static void Init(v8::Handle target);
  static v8::Local New(Java* java, jobject obj);
  static v8::Local NewProxy(Java* java, jobject obj, DynamicProxyData* dynamicProxyData);

  jobject getObject() { return m_obj; }
  jclass getClass() { return m_class; }

  void Ref() { Nan::ObjectWrap::Ref(); }
  void Unref() { Nan::ObjectWrap::Unref(); }

protected:
  JavaObject(Java* java, jobject obj);
  ~JavaObject();

private:
  static NAN_METHOD(methodCall);
  static NAN_METHOD(methodCallSync);
  static NAN_METHOD(methodCallPromise);
  static NAN_GETTER(fieldGetter);
  static NAN_SETTER(fieldSetter);
  static NAN_INDEX_GETTER(indexGetter);

  static std::map sFunctionTemplates;
  Java* m_java;
  jobject m_obj;
  jclass m_class;
};

class JavaProxyObject : public JavaObject {
public:
  static void init();
  static v8::Local New(Java* java, jobject obj, DynamicProxyData* dynamicProxyData);

private:
  JavaProxyObject(Java* java, jobject obj, DynamicProxyData* dynamicProxyData);
  ~JavaProxyObject();
  static NAN_METHOD(doUnref);
  static NAN_GETTER(invocationHandlerGetter);

  static Nan::Persistent s_proxyCt;
  DynamicProxyData* m_dynamicProxyData;
};

#endif


Web Proxy Viewer  |  New URL  |  Original Page