12e5b6d6dSopenharmony_ci// © 2017 and later: Unicode, Inc. and others.
22e5b6d6dSopenharmony_ci// License & terms of use: http://www.unicode.org/copyright.html
32e5b6d6dSopenharmony_ci/*
42e5b6d6dSopenharmony_ci*******************************************************************************
52e5b6d6dSopenharmony_ci*
62e5b6d6dSopenharmony_ci*   Copyright (C) 2003, International Business Machines
72e5b6d6dSopenharmony_ci*   Corporation and others.  All Rights Reserved.
82e5b6d6dSopenharmony_ci*
92e5b6d6dSopenharmony_ci*******************************************************************************
102e5b6d6dSopenharmony_ci*
112e5b6d6dSopenharmony_ci* File uprinter.h
122e5b6d6dSopenharmony_ci*
132e5b6d6dSopenharmony_ci* Modification History:
142e5b6d6dSopenharmony_ci*
152e5b6d6dSopenharmony_ci*   Date        Name        Description
162e5b6d6dSopenharmony_ci*   03/18/2003  weiv        Creation.
172e5b6d6dSopenharmony_ci*******************************************************************************
182e5b6d6dSopenharmony_ci*/
192e5b6d6dSopenharmony_ci
202e5b6d6dSopenharmony_ci#ifndef COLPROBE_UPRINTER_H
212e5b6d6dSopenharmony_ci#define COLPROBE_UPRINTER_H
222e5b6d6dSopenharmony_ci
232e5b6d6dSopenharmony_ci#include "line.h"
242e5b6d6dSopenharmony_ci
252e5b6d6dSopenharmony_ci#include "unicode/ustdio.h"
262e5b6d6dSopenharmony_ci#include "unicode/unistr.h"
272e5b6d6dSopenharmony_ci#include "unicode/ustring.h"
282e5b6d6dSopenharmony_ci
292e5b6d6dSopenharmony_ci
302e5b6d6dSopenharmony_ciclass UPrinter {
312e5b6d6dSopenharmony_ci  UFILE *out;
322e5b6d6dSopenharmony_ci  UChar buffer[256];
332e5b6d6dSopenharmony_ci  UBool _on;
342e5b6d6dSopenharmony_ci  char _locale[256];
352e5b6d6dSopenharmony_cipublic:
362e5b6d6dSopenharmony_ci  UPrinter(FILE *file, const char *locale, const char *encoding, UBool transliterateNonPrintable=true);
372e5b6d6dSopenharmony_ci  UPrinter(const char *name, const char *locale, const char *encoding, UTransliterator *trans, UBool transliterateNonPrintable);
382e5b6d6dSopenharmony_ci  ~UPrinter();
392e5b6d6dSopenharmony_ci  void log(const UnicodeString &string, UBool nl = false);
402e5b6d6dSopenharmony_ci  void log(const UChar *string, UBool nl = false);
412e5b6d6dSopenharmony_ci  //void log(const char *string, UBool nl = false);
422e5b6d6dSopenharmony_ci  void log(const Line *line, UBool nl = false);
432e5b6d6dSopenharmony_ci  void log(const char *fmt, ...);
442e5b6d6dSopenharmony_ci  void off(void);
452e5b6d6dSopenharmony_ci  void on(void);
462e5b6d6dSopenharmony_ci  UBool isOn(void) {
472e5b6d6dSopenharmony_ci    return _on;
482e5b6d6dSopenharmony_ci  };
492e5b6d6dSopenharmony_ci};
502e5b6d6dSopenharmony_ci
512e5b6d6dSopenharmony_ci
522e5b6d6dSopenharmony_ci
532e5b6d6dSopenharmony_ci#endif // #ifndef COLPROBE_UPRINTER_H
54