Difference between revisions of "Data Overview"

From reSIProcate
Jump to navigation Jump to search
(Added info about Data::from and lowercase/uppercase)
 
(2 intermediate revisions by 2 users not shown)
Line 7: Line 7:
  
 
Data is internally aware of its content length and is not guaranteed
 
Data is internally aware of its content length and is not guaranteed
to be null terminated. Date::data() returns a raw pointer to internal
+
to be null terminated. Data::data() returns a raw pointer of type const char*
memory. Data::c_str() also returns a raw pointer to internal memory,
+
to internal memory. Data::c_str() also returns a raw pointer of type const char*
but will guarantee that the internal buffer is null terminated, by
+
to internal memory, but will guarantee that the internal buffer is null terminated, by
copying it if necessary.
+
copying it if necessary.
 +
c_str() is generally necessary only when transitioning to another string representation, like char* or std::string.
 +
 
 +
Data::empty() returns true if the Data is empty, and false otherwise. Data::size() returns a size_type with the length of the data.
 +
 
 +
Data::lowercase() and Data::uppercase() convert the Data in place (modifies the object they are called on) to be be either all lower or all upper case. These calls also return a reference to the modified Data object.
 +
 
 +
Data::from() is a static function that can be used to create a Data from any object
 +
that defines the operator<<.
 +
For example, one can convert from a resiprocate URI to a data using:
 +
 
 +
Uri uri;
 +
Data result = Data::from(uri);
 +
 
 +
Use this same technique to create a Data from any type defining operator<<.

Latest revision as of 14:06, 3 June 2005

Data is resiprocate's string class. It is named Data rather than String for historical reasons. VOCAL had a reference counting version of Data. Resiprocate's version is not reference counting.

Data handles 8 bit character buffers.

Data is internally aware of its content length and is not guaranteed to be null terminated. Data::data() returns a raw pointer of type const char* to internal memory. Data::c_str() also returns a raw pointer of type const char* to internal memory, but will guarantee that the internal buffer is null terminated, by copying it if necessary. c_str() is generally necessary only when transitioning to another string representation, like char* or std::string.

Data::empty() returns true if the Data is empty, and false otherwise. Data::size() returns a size_type with the length of the data.

Data::lowercase() and Data::uppercase() convert the Data in place (modifies the object they are called on) to be be either all lower or all upper case. These calls also return a reference to the modified Data object.

Data::from() is a static function that can be used to create a Data from any object that defines the operator<<. For example, one can convert from a resiprocate URI to a data using:

Uri uri;
Data result = Data::from(uri);

Use this same technique to create a Data from any type defining operator<<.