Imported Upstream version 1.0.0
[platform/upstream/iotivity.git] / service / things-manager / sdk / java / jni / jniutil / inc / jni_string.h
1 /* *****************************************************************
2  *
3  * Copyright 2015 Samsung Electronics All Rights Reserved.
4  *
5  *
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  ******************************************************************/
20
21 /**
22   * @file
23   * This file contains the declaration of JString class and its members related to JString.
24   */
25
26 #ifndef JNI_STRING_H_
27 #define JNI_STRING_H_
28
29 #include <string>
30
31 #include "jni_object.h"
32
33 /**
34  * This class inherits JObject class and provides a set of functions for JNI String.
35  */
36 class JString : public JObject
37 {
38     public:
39         /**
40          * constructor
41          */
42         JString(JNIEnv *env, jstring value);
43         /**
44          * constructor
45          */
46         JString(JNIEnv *env, const char *value);
47         /**
48          * constructor
49          */
50         JString(JNIEnv *env, const std::string &value);
51         /**
52          * destructor
53          */
54         ~JString();
55
56         /**
57          * Function to get the string value and set it.
58          *
59          * @param value - String value to set to a private member variable.
60          *
61          * @return bool - true on success
62          */
63         bool getValue(std::string &value);
64
65         /**
66          * Function to get the private string value.
67          *
68          * @return  C String value.
69          */
70         const char *c_str();
71
72     private:
73         std::string m_cstr;
74 };
75 #endif //JNI_STRING_H_