You are here: C++ Support Classes > dtSearch Namespace > Classes > DStringProperty Class
dtSearch Text Retrieval Engine Programmer's Reference
DStringProperty Class

Manages conversion among character encodings (Ansi, Unicode, UTF-8).

File: dstringproperty.h 

Namespace: dtSearch 

class DStringProperty;
No members matching the current filter
No members matching the current filter
No members matching the current filter
No members matching the current filter

Set and get functions are provided for each encoding type. DStringProperty stores text internally in a DString in UTF-8, the same format that the dtSearch Engine uses. 

The dtSearch Engine's C++ support classes use DStringProperty to provide easy access to strings passed to or from the dtSearch Engine. For example, DSearchJob uses a DStringProperty, "Request" for the search request string. Any changes to Request are automatically reflected in dtsSearchJob.request. The following code sets up a search job using a Unicode string to initialize the "request":

DSearchJob searchJob; searchJob.Request.setW(L"Unicode search request");


"W", "A", "U8", and "Ui" versions of "set" and "get" functions are provided to get or set the string value as Unicode (W), Ansi (A), UTF-8 (U8), or TCHAR or CString (Ui). 

Implementation Details: 

A DStringProperty maintains a text buffer, value, with a UTF-8 representation of the text. 

DStringProperty is designed to be associated with a structure element, so that set*() or get*() calls will provide easy access to the contents of a string in a structure. A string member of a structure can be either a char * (a pointer to a memory location) or a char[N], a fixed-length buffer of N bytes. DStringProperty has constructors that will work with either variation. 

Each time the string is changed, potentially causing reallocation of the buffer, the const char * string pointer is updated to point to the new buffer. 

In this example, DStringProperty is declared to manage the dtsSearchJob.request string:

dtsSearchJob searchJob; DStringProperty xrequest(&searchJob.request); // Now any change to xrequest automatically causes searchJob.request to point to the // updated string xrequest.setW(L"Unicode search request");

Each time a DStringProperty changes, it calls onValueChange, which sets *pValue to the new string buffer in value. This keeps the string pointer in the API structure consistent with the contents of the string buffer.

Copyright (c) 1995-2022 dtSearch Corp. All rights reserved.