tabbing
[iotcloud.git] / version2 / src / C / IoTString.h
index 00dd8e6f770c33f4bfd7509d355c16a4fb492f64..bbd0c775df095b87fdb5a1748e3669bddc8220f6 100644 (file)
  */
 
 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