TempEncodingHelper Class Reference

use this class to manage strings where the character encoding must be specified and may be different than the actual encoding in the string More...

#include <QoreString.h>

List of all members.

Public Member Functions

DLLLOCAL TempEncodingHelper (const QoreString *s, const QoreEncoding *qe, ExceptionSink *xsink)
 converts the given string to the required encoding if necessary
DLLLOCAL TempEncodingHelper ()
 creates an empty TempEncodingHelperObject that may be initialized with TempEncodingHelper::set() later
DLLLOCAL ~TempEncodingHelper ()
 deletes any temporary string being managed by the object
DLLLOCAL int set (const QoreString *s, const QoreEncoding *qe, ExceptionSink *xsink)
 discards any current state and sets and converts (if necessary) a new string to the desired encoding
DLLLOCAL bool is_temp () const
 returns true if a temporary string is being managed
DLLLOCAL const QoreStringoperator-> ()
 returns the string being managed
DLLLOCAL const QoreStringoperator* ()
 returns the string being managed
DLLLOCAL operator bool () const
 returns false if the object is empty (for example, if a Qore-language exception was thrown in the constructor), true if not
DLLLOCAL char * giveBuffer ()
 returns a char pointer of the string, the caller owns the pointer returned (it must be manually freed)

Detailed Description

use this class to manage strings where the character encoding must be specified and may be different than the actual encoding in the string

this class calls QoreString::convertEncoding() if necessary and manages any temporary string created by this call. the destructor will delete any temporary string if necessary. Note that the constructor may add Qore-language exception information to the "xsink" parameter in case character set encoding conversion was necessary and failed

See also:
QoreString
    // ensure a string is in UTF-8 encoding
    TempEncodingHelper utf8_str(str, QCS_UTF8, xsink);
    if (!str) // !str is only true if an exception has been thrown in the conversion
    return 0;
    printf("%s\n", utf8_str->getBuffer());

Constructor & Destructor Documentation

DLLLOCAL TempEncodingHelper::TempEncodingHelper ( const QoreString s,
const QoreEncoding qe,
ExceptionSink xsink 
) [inline]

converts the given string to the required encoding if necessary

Parameters:
s a pointer to the QoreString input value
qe the QoreEncoding required
xsink if an error occurs, the Qore-language exception information will be added here

Member Function Documentation

DLLLOCAL char* TempEncodingHelper::giveBuffer (  )  [inline]

returns a char pointer of the string, the caller owns the pointer returned (it must be manually freed)

Returns:
a char pointer of the string, the caller owns the pointer returned

References QoreString::getBuffer(), and QoreString::giveBuffer().

DLLLOCAL TempEncodingHelper::operator bool (  )  const [inline]

returns false if the object is empty (for example, if a Qore-language exception was thrown in the constructor), true if not

Returns:
false if the object is empty, true if not
DLLLOCAL int TempEncodingHelper::set ( const QoreString s,
const QoreEncoding qe,
ExceptionSink xsink 
) [inline]

discards any current state and sets and converts (if necessary) a new string to the desired encoding

note that the return value is the opposite of most qore functions because it was implemented incorrectly; the documentation has been changed to reflect the incorrect implementation; the implementation was not fixed in order to preserve source compatibility

Parameters:
s a pointer to the QoreString input value
qe the QoreEncoding required
xsink if an error occurs, the Qore-language exception information will be added here
Returns:
1=OK, 0=an error occurred and a Qore-language exception was raised

The documentation for this class was generated from the following file:

Generated on 14 Jun 2010 for Qore Programming Language by  doxygen 1.6.1