/*
******************************************************************************
*
*   Copyright (C) 2015, International Business Machines
*   Corporation and others.  All Rights Reserved.
*
******************************************************************************
*
* File: cstr.h
*/

#ifndef CSTR_H
#define CSTR_H

#include "unicode/unistr.h"
#include "unicode/uobject.h"
#include "unicode/utypes.h"

#include "charstr.h"

/**
 * ICU-internal class CStr, a small helper class to facilitate passing UnicodStrings
 * to functions needing (const char *) strings, such as printf().
 *
 * It is intended primarily for use in debugging or in tests. Uses platform 
 * default code page conversion, which will do the best job possible,
 * but may be lossy, depending on the platform.
 *
 * Example Usage:
 *   UnicodeString s = whatever;
 *   printf("%s", CStr(s)());
 *
 *   The explicit call to the CStr() constructor creates a temporary object.
 *   Operator () on the temporary object returns a (const char *) pointer.
 *   The lifetime of the (const char *) data is that of the temporary object,
 *   which works well when passing it as a parameter to another function, such as printf.
 */

U_NAMESPACE_BEGIN

class U_COMMON_API CStr : public UMemory {
  public:
    CStr(const UnicodeString &in);
    ~CStr();
    const char * operator ()() const;

  private:
    CharString s;
    CStr(const CStr &other);               //  Forbid copying of this class.
    CStr &operator =(const CStr &other);   //  Forbid assignment.
};

U_NAMESPACE_END

#endif
