*/
public class IoTString {
- private:
- Array<char> array;
-
- IoTString() {}
+private:
+ Array<char> *array;
+ IoTString() {}
/**
* Builds an IoTString object around the char array. This
* constructor makes a copy, so the caller is free to modify the char array.
*/
-
- public:
- IoTString(Array<char> * _array) { array.init(_array); }
- ~IoTString() {}
-
+
+public:
+ IoTString(Array<char> *_array) : array(new Array<char>(_array)) {}
+ ~IoTString() {}
+
/**
* Internal method to grab a reference to our char array. Caller
* must not modify it.
*/
-
- Array<char> * internalBytes() { return &array; }
-
+
+ Array<char> *internalBytes() { return array; }
+
/**
* Returns a copy of the underlying char string.
*/
-
- Array<char> * getBytes() { return new Array<Char>(&array); }
+
+ Array<char> *getBytes() { return new Array<Char>(&array); }
/**
* Returns the length in chars of the IoTString.
*/
-
+
int length() { return array->length(); }
+ friend IoTString *IoTString_shallow(Array<char> *_array);
+};
+
+IoTString *IoTString_shallow(Array<char> *_array) {
+ IoTString *str = new IoTString();
+ str->array = _array;
+ return str;
}
#endif