replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / android / android_api / base / jni / JniOcResource.h
index 737dd5f..e05da82 100644 (file)
-/*\r
-* //******************************************************************\r
-* //\r
-* // Copyright 2015 Intel Corporation.\r
-* //\r
-* //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
-* //\r
-* // Licensed under the Apache License, Version 2.0 (the "License");\r
-* // you may not use this file except in compliance with the License.\r
-* // You may obtain a copy of the License at\r
-* //\r
-* //      http://www.apache.org/licenses/LICENSE-2.0\r
-* //\r
-* // Unless required by applicable law or agreed to in writing, software\r
-* // distributed under the License is distributed on an "AS IS" BASIS,\r
-* // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-* // See the License for the specific language governing permissions and\r
-* // limitations under the License.\r
-* //\r
-* //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
-*/\r
-\r
-#include "JniOcStack.h"\r
-#include "OCResource.h"\r
-#include "JniListenerManager.h"\r
-#include "JniOnGetListener.h"\r
-#include "JniOnPutListener.h"\r
-#include "JniOnPostListener.h"\r
-#include "JniOnDeleteListener.h"\r
-#include "JniOnObserveListener.h"\r
-#include "JniOcResourceIdentifier.h"\r
-\r
-#ifndef _Included_org_iotivity_base_OcResource\r
-#define _Included_org_iotivity_base_OcResource\r
-\r
-using namespace OC;\r
-\r
-class JniOcResource\r
-{\r
-public:\r
-    JniOcResource(std::shared_ptr<OCResource> resource);\r
-    ~JniOcResource();\r
-\r
-    OCStackResult get(JNIEnv* env, const QueryParamsMap &queryParametersMap, jobject jListener);\r
-    OCStackResult get(JNIEnv* env, const QueryParamsMap &queryParametersMap, jobject jListener,\r
-        QualityOfService QoS);\r
-    OCStackResult get(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,\r
-        const QueryParamsMap &queryParametersMap, jobject jListener);\r
-    OCStackResult get(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,\r
-        const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS);\r
-\r
-    OCStackResult put(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,\r
-        jobject jListener);\r
-    OCStackResult put(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,\r
-        jobject jListener, QualityOfService QoS);\r
-    OCStackResult put(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,\r
-        const OCRepresentation &representation, const QueryParamsMap &queryParametersMap, jobject jListener);\r
-    OCStackResult put(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,\r
-        const OCRepresentation &representation, const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS);\r
-\r
-    OCStackResult post(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,\r
-        jobject jListener);\r
-    OCStackResult post(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,\r
-        jobject jListener, QualityOfService QoS);\r
-    OCStackResult post(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,\r
-        const OCRepresentation &representation, const QueryParamsMap &queryParametersMap, jobject jListener);\r
-    OCStackResult post(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,\r
-        const OCRepresentation &representation, const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS);\r
-\r
-    OCStackResult deleteResource(JNIEnv* env, jobject jListener);\r
-    OCStackResult deleteResource(JNIEnv* env, jobject jListener, QualityOfService QoS);\r
-\r
-    OCStackResult observe(JNIEnv* env, ObserveType observeType, const QueryParamsMap &queryParametersMap,\r
-        jobject jListener);\r
-    OCStackResult observe(JNIEnv* env, ObserveType observeType, const QueryParamsMap &queryParametersMap,\r
-        jobject jListener, QualityOfService qos);\r
-\r
-    OCStackResult cancelObserve(JNIEnv* env);\r
-    OCStackResult cancelObserve(JNIEnv* env, QualityOfService qos);\r
-\r
-    void setHeaderOptions(const HeaderOptions &headerOptions);\r
-    void unsetHeaderOptions();\r
-    std::string host();\r
-    std::string uri();\r
-    OCConnectivityType connectivityType() const;\r
-    bool isObservable();\r
-    std::vector< std::string >         getResourceTypes() const;\r
-    std::vector< std::string >         getResourceInterfaces(void) const;\r
-    OCResourceIdentifier uniqueIdentifier() const;\r
-    std::string sid() const;\r
-\r
-    JniOnGetListener* addOnGetListener(JNIEnv* env, jobject jListener);\r
-    JniOnPutListener* addOnPutListener(JNIEnv* env, jobject jListener);\r
-    JniOnPostListener* addOnPostListener(JNIEnv* env, jobject jListener);\r
-    JniOnDeleteListener* addOnDeleteListener(JNIEnv* env, jobject jListener);\r
-    JniOnObserveListener* addOnObserveListener(JNIEnv* env, jobject jListener);\r
-\r
-    void removeOnGetListener(JNIEnv* env, jobject jListener);\r
-    void removeOnPutListener(JNIEnv* env, jobject jListener);\r
-    void removeOnPostListener(JNIEnv* env, jobject jListener);\r
-    void removeOnDeleteListener(JNIEnv* env, jobject jListener);\r
-    void removeOnObserveListener(JNIEnv* env, jobject jListener);\r
-\r
-    std::shared_ptr<OCResource> getOCResource();\r
-\r
-    static JniOcResource* getJniOcResourcePtr(JNIEnv *env, jobject thiz);\r
-\r
-private:\r
-    JniListenerManager<JniOnGetListener> m_onGetManager;\r
-    JniListenerManager<JniOnPutListener> m_onPutManager;\r
-    JniListenerManager<JniOnPostListener> m_onPostManager;\r
-    JniListenerManager<JniOnDeleteListener> m_onDeleteManager;\r
-    JniListenerManager<JniOnObserveListener> m_onObserveManager;\r
-\r
-    std::shared_ptr<OCResource> m_sharedResource;\r
-};\r
-\r
-/* DO NOT EDIT THIS FILE BEYOND THIS LINE - it is machine generated */\r
-\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    get\r
-    * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get\r
-        (JNIEnv *, jobject, jobject, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    get1\r
-    * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;I)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get1\r
-        (JNIEnv *, jobject, jobject, jobject, jint);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    get2\r
-    * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get2\r
-        (JNIEnv *, jobject, jstring, jstring, jobject, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    get3\r
-    * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;I)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get3\r
-        (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jint);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    put\r
-    * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put\r
-        (JNIEnv *, jobject, jobject, jobject, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    put1\r
-    * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;I)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put1\r
-        (JNIEnv *, jobject, jobject, jobject, jobject, jint);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    put2\r
-    * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put2\r
-        (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    put3\r
-    * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;I)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put3\r
-        (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject, jint);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    post\r
-    * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post\r
-        (JNIEnv *, jobject, jobject, jobject, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    post1\r
-    * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post1\r
-        (JNIEnv *, jobject, jobject, jobject, jobject, jint);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    post2\r
-    * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post2\r
-        (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    post3\r
-    * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post3\r
-        (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject, jint);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    deleteResource\r
-    * Signature: (Lorg/iotivity/base/OcResource/OnDeleteListener;)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_deleteResource\r
-        (JNIEnv *, jobject, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    deleteResource1\r
-    * Signature: (Lorg/iotivity/base/OcResource/OnDeleteListener;I)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_deleteResource1\r
-        (JNIEnv *, jobject, jobject, jint);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    observe\r
-    * Signature: (Lorg/iotivity/base/ObserveType;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_observe\r
-        (JNIEnv *, jobject, jint, jobject, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    observe1\r
-    * Signature: (Lorg/iotivity/base/ObserveType;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;I)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_observe1\r
-        (JNIEnv *, jobject, jint, jobject, jobject, jint);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    cancelObserve\r
-    * Signature: ()V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_cancelObserve\r
-        (JNIEnv *, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    cancelObserve1\r
-    * Signature: (I)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_cancelObserve1\r
-        (JNIEnv *, jobject, jint);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    setHeaderOptions\r
-    * Signature: ([Lorg/iotivity/OcHeaderOption;)V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_setHeaderOptions\r
-        (JNIEnv *, jobject, jobjectArray);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    unsetHeaderOptions\r
-    * Signature: ()V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_unsetHeaderOptions\r
-        (JNIEnv *, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    getHost\r
-    * Signature: ()Ljava/lang/String;\r
-    */\r
-    JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getHost\r
-        (JNIEnv *, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    getUri\r
-    * Signature: ()Ljava/lang/String;\r
-    */\r
-    JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getUri\r
-        (JNIEnv *, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    getConnectivityTypeN\r
-    * Signature: ()I\r
-    */\r
-    JNIEXPORT jint JNICALL Java_org_iotivity_base_OcResource_getConnectivityTypeN\r
-        (JNIEnv *, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    isObservable\r
-    * Signature: ()Z\r
-    */\r
-    JNIEXPORT jboolean JNICALL Java_org_iotivity_base_OcResource_isObservable\r
-        (JNIEnv *, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    getResourceTypes\r
-    * Signature: ()Ljava/util/List;\r
-    */\r
-    JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getResourceTypes\r
-        (JNIEnv *, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    getResourceInterfaces\r
-    * Signature: ()Ljava/util/List;\r
-    */\r
-    JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getResourceInterfaces\r
-        (JNIEnv *, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    getUniqueIdentifier\r
-    * Signature: ()Lorg/iotivity/base/OcResourceIdentifier;\r
-    */\r
-    JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getUniqueIdentifier\r
-        (JNIEnv *, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    getServerId\r
-    * Signature: ()Ljava/lang/String;\r
-    */\r
-    JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getServerId\r
-        (JNIEnv *, jobject);\r
-\r
-    /*\r
-    * Class:     org_iotivity_base_OcResource\r
-    * Method:    dispose\r
-    * Signature: ()V\r
-    */\r
-    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_dispose\r
-        (JNIEnv *, jobject);\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-#endif
\ No newline at end of file
+/*
+* //******************************************************************
+* //
+* // Copyright 2015 Intel Corporation.
+* //
+* //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+* //
+* // Licensed under the Apache License, Version 2.0 (the "License");
+* // you may not use this file except in compliance with the License.
+* // You may obtain a copy of the License at
+* //
+* //      http://www.apache.org/licenses/LICENSE-2.0
+* //
+* // Unless required by applicable law or agreed to in writing, software
+* // distributed under the License is distributed on an "AS IS" BASIS,
+* // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* // See the License for the specific language governing permissions and
+* // limitations under the License.
+* //
+* //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+*/
+
+#include "JniOcStack.h"
+#include "OCResource.h"
+#include "JniListenerManager.h"
+#include "JniOnGetListener.h"
+#include "JniOnPutListener.h"
+#include "JniOnPostListener.h"
+#include "JniOnDeleteListener.h"
+#include "JniOnObserveListener.h"
+#include "JniOcResourceIdentifier.h"
+#ifdef WITH_MQ
+#include "JniOnMQTopicFoundListener.h"
+#include "JniOnMQSubscribeListener.h"
+#endif
+
+#ifndef _Included_org_iotivity_base_OcResource
+#define _Included_org_iotivity_base_OcResource
+
+using namespace OC;
+
+class JniOcResource
+{
+public:
+    JniOcResource(std::shared_ptr<OCResource> resource);
+    ~JniOcResource();
+
+    OCStackResult get(JNIEnv* env, const QueryParamsMap &queryParametersMap, jobject jListener);
+    OCStackResult get(JNIEnv* env, const QueryParamsMap &queryParametersMap, jobject jListener,
+        QualityOfService QoS);
+    OCStackResult get(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
+        const QueryParamsMap &queryParametersMap, jobject jListener);
+    OCStackResult get(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
+        const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS);
+
+    OCStackResult put(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,
+        jobject jListener);
+    OCStackResult put(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,
+        jobject jListener, QualityOfService QoS);
+    OCStackResult put(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
+        const OCRepresentation &representation, const QueryParamsMap &queryParametersMap, jobject jListener);
+    OCStackResult put(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
+        const OCRepresentation &representation, const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS);
+
+    OCStackResult post(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,
+        jobject jListener);
+    OCStackResult post(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,
+        jobject jListener, QualityOfService QoS);
+    OCStackResult post(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
+        const OCRepresentation &representation, const QueryParamsMap &queryParametersMap, jobject jListener);
+    OCStackResult post(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
+        const OCRepresentation &representation, const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS);
+
+    OCStackResult deleteResource(JNIEnv* env, jobject jListener);
+    OCStackResult deleteResource(JNIEnv* env, jobject jListener, QualityOfService QoS);
+
+    OCStackResult observe(JNIEnv* env, ObserveType observeType, const QueryParamsMap &queryParametersMap,
+        jobject jListener);
+    OCStackResult observe(JNIEnv* env, ObserveType observeType, const QueryParamsMap &queryParametersMap,
+        jobject jListener, QualityOfService qos);
+
+    OCStackResult cancelObserve(JNIEnv* env);
+    OCStackResult cancelObserve(JNIEnv* env, QualityOfService qos);
+
+    void setHeaderOptions(const HeaderOptions &headerOptions);
+    void unsetHeaderOptions();
+    std::string host();
+    std::string uri();
+    OCConnectivityType connectivityType() const;
+    bool isObservable();
+    std::vector< std::string >  getResourceTypes() const;
+    std::vector< std::string >  getResourceInterfaces(void) const;
+    OCResourceIdentifier uniqueIdentifier() const;
+    std::string sid() const;
+    std::string deviceName() const;
+
+    JniOnGetListener* addOnGetListener(JNIEnv* env, jobject jListener);
+    JniOnPutListener* addOnPutListener(JNIEnv* env, jobject jListener);
+    JniOnPostListener* addOnPostListener(JNIEnv* env, jobject jListener);
+    JniOnDeleteListener* addOnDeleteListener(JNIEnv* env, jobject jListener);
+    JniOnObserveListener* addOnObserveListener(JNIEnv* env, jobject jListener);
+
+    void removeOnGetListener(JNIEnv* env, jobject jListener);
+    void removeOnPutListener(JNIEnv* env, jobject jListener);
+    void removeOnPostListener(JNIEnv* env, jobject jListener);
+    void removeOnDeleteListener(JNIEnv* env, jobject jListener);
+    void removeOnObserveListener(JNIEnv* env, jobject jListener);
+
+    std::shared_ptr<OCResource> getOCResource();
+
+    static JniOcResource* getJniOcResourcePtr(JNIEnv *env, jobject thiz);
+
+#ifdef WITH_MQ
+    JniOnMQTopicFoundListener* addOnTopicFoundListener(JNIEnv* env, jobject jListener);
+    void removeOnTopicFoundListener(JNIEnv* env, jobject jListener);
+
+    JniOnMQSubscribeListener* addOnMQTopicSubscribeListener(JNIEnv* env, jobject jListener);
+    void removeOnMQTopicSubscribeListener(JNIEnv* env, jobject jListener);
+
+    OCStackResult discoveryMQTopics(JNIEnv* env, const QueryParamsMap &queryParametersMap,
+                                    jobject jListener, QualityOfService QoS);
+    OCStackResult createMQTopic(JNIEnv* env, const OCRepresentation &representation,
+                                const std::string &targetUri,
+                                const QueryParamsMap &queryParametersMap,
+                                jobject jListener, QualityOfService QoS);
+#endif
+#ifdef MQ_SUBSCRIBER
+    OCStackResult subscribeMQTopic(JNIEnv* env, const QueryParamsMap &queryParametersMap,
+                                   jobject jListener, QualityOfService QoS);
+    OCStackResult unsubscribeMQTopic(QualityOfService QoS);
+    OCStackResult requestMQPublish(JNIEnv* env, const QueryParamsMap &queryParametersMap,
+                                   jobject jListener, QualityOfService QoS);
+#endif
+#ifdef MQ_PUBLISHER
+    OCStackResult publishMQTopic(JNIEnv* env, const OCRepresentation &representation,
+                                 const QueryParamsMap &queryParametersMap,
+                                 jobject jListener, QualityOfService QoS);
+#endif
+
+private:
+    JniListenerManager<JniOnGetListener> m_onGetManager;
+    JniListenerManager<JniOnPutListener> m_onPutManager;
+    JniListenerManager<JniOnPostListener> m_onPostManager;
+    JniListenerManager<JniOnDeleteListener> m_onDeleteManager;
+    JniListenerManager<JniOnObserveListener> m_onObserveManager;
+#ifdef WITH_MQ
+    JniListenerManager<JniOnMQTopicFoundListener> m_onFoundTopicResourceManager;
+    JniListenerManager<JniOnMQSubscribeListener> m_onSubcribeTopicManager;
+#endif
+
+    std::shared_ptr<OCResource> m_sharedResource;
+};
+
+/* DO NOT EDIT THIS FILE BEYOND THIS LINE - it is machine generated */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    get
+    * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get
+        (JNIEnv *, jobject, jobject, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    get1
+    * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;I)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get1
+        (JNIEnv *, jobject, jobject, jobject, jint);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    get2
+    * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get2
+        (JNIEnv *, jobject, jstring, jstring, jobject, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    get3
+    * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;I)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get3
+        (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jint);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    put
+    * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put
+        (JNIEnv *, jobject, jobject, jobject, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    put1
+    * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;I)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put1
+        (JNIEnv *, jobject, jobject, jobject, jobject, jint);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    put2
+    * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put2
+        (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    put3
+    * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;I)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put3
+        (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject, jint);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    post
+    * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post
+        (JNIEnv *, jobject, jobject, jobject, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    post1
+    * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post1
+        (JNIEnv *, jobject, jobject, jobject, jobject, jint);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    post2
+    * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post2
+        (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    post3
+    * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post3
+        (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject, jint);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    deleteResource
+    * Signature: (Lorg/iotivity/base/OcResource/OnDeleteListener;)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_deleteResource
+        (JNIEnv *, jobject, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    deleteResource1
+    * Signature: (Lorg/iotivity/base/OcResource/OnDeleteListener;I)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_deleteResource1
+        (JNIEnv *, jobject, jobject, jint);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    observe
+    * Signature: (Lorg/iotivity/base/ObserveType;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_observe
+        (JNIEnv *, jobject, jint, jobject, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    observe1
+    * Signature: (Lorg/iotivity/base/ObserveType;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;I)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_observe1
+        (JNIEnv *, jobject, jint, jobject, jobject, jint);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    cancelObserve1
+    * Signature: (I)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_cancelObserve1
+        (JNIEnv *, jobject, jint);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    setHeaderOptions
+    * Signature: ([Lorg/iotivity/OcHeaderOption;)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_setHeaderOptions
+        (JNIEnv *, jobject, jobjectArray);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    unsetHeaderOptions
+    * Signature: ()V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_unsetHeaderOptions
+        (JNIEnv *, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    getHost
+    * Signature: ()Ljava/lang/String;
+    */
+    JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getHost
+        (JNIEnv *, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    getUri
+    * Signature: ()Ljava/lang/String;
+    */
+    JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getUri
+        (JNIEnv *, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    getConnectivityTypeN
+    * Signature: ()I
+    */
+    JNIEXPORT jint JNICALL Java_org_iotivity_base_OcResource_getConnectivityTypeN
+        (JNIEnv *, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    isObservable
+    * Signature: ()Z
+    */
+    JNIEXPORT jboolean JNICALL Java_org_iotivity_base_OcResource_isObservable
+        (JNIEnv *, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    getResourceTypes
+    * Signature: ()Ljava/util/List;
+    */
+    JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getResourceTypes
+        (JNIEnv *, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    getResourceInterfaces
+    * Signature: ()Ljava/util/List;
+    */
+    JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getResourceInterfaces
+        (JNIEnv *, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    getUniqueIdentifier
+    * Signature: ()Lorg/iotivity/base/OcResourceIdentifier;
+    */
+    JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getUniqueIdentifier
+        (JNIEnv *, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    getServerId
+    * Signature: ()Ljava/lang/String;
+    */
+    JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getServerId
+        (JNIEnv *, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    getDeviceName
+    * Signature: ()Ljava/lang/String;
+    */
+    JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getDeviceName
+        (JNIEnv *, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    dispose
+    * Signature: ()V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_dispose
+        (JNIEnv *, jobject);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    subscribeMQTopicImpl
+    * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;I)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_subscribeMQTopicImpl
+        (JNIEnv *, jobject, jobject, jobject, jint);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    unsubscribeMQTopicImpl
+    * Signature: (I)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_unsubscribeMQTopicImpl
+        (JNIEnv *, jobject, jint);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    requestMQPublishImpl
+    * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_requestMQPublishImpl
+        (JNIEnv *, jobject, jobject, jobject, jint);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    publishMQTopicImpl
+    * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map
+    *             ;Lorg/iotivity/base/OcResource/OnPostListener;I)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_publishMQTopicImpl
+        (JNIEnv *, jobject, jobject, jobject, jobject, jint);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    discoveryMQTopicsImpl
+    * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnMQTopicFoundListener;I)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_discoveryMQTopicsImpl
+        (JNIEnv *, jobject, jobject, jobject, jint);
+
+    /*
+    * Class:     org_iotivity_base_OcResource
+    * Method:    createMQTopicImpl
+    * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/String;Ljava/util/Map
+    *             ;Lorg/iotivity/base/OcPlatform/OnMQTopicCreatedListener;I)V
+    */
+    JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_createMQTopicImpl
+        (JNIEnv *, jobject, jobject, jstring, jobject, jobject, jint);
+
+#ifdef __cplusplus
+}
+#endif
+#endif