7 * IoTString wraps the underlying char string.
8 * @author Brian Demsky <bdemsky@uci.edu>
18 * Builds an IoTString object around the char array. This
19 * constructor makes a copy, so the caller is free to modify the char array.
23 IoTString(Array<char> *_array) : array(new Array<char>(_array)) {}
25 IoTString(const char *_array) {
26 int32_t len = strlen(_array);
27 array = new Array<char>(len);
28 strcpy(array->internalArray(), _array);
31 IoTString(IoTString *string) : array(new Array<char>(string->array)) {
39 * Internal method to grab a reference to our char array. Caller
43 Array<char> *internalBytes() { return array; }
46 * Returns a copy of the underlying char string.
49 Array<char> *getBytes() { return new Array<char>(array); }
52 * Returns the length in chars of the IoTString.
55 bool equals(IoTString *str) {
56 uint strlength = str->array->length();
57 uint thislength = array->length();
58 if (strlength != thislength)
61 int result = memcmp(str->array->internalArray(), array->internalArray(), strlength);
65 int length() { return array->length(); }
66 friend IoTString *IoTString_shallow(Array<char> *_array);
69 IoTString *IoTString_shallow(Array<char> *_array) {
70 IoTString *str = new IoTString();