summaryrefslogtreecommitdiff
path: root/gpr/source/lib/dng_sdk/dng_string.h
diff options
context:
space:
mode:
Diffstat (limited to 'gpr/source/lib/dng_sdk/dng_string.h')
-rw-r--r--gpr/source/lib/dng_sdk/dng_string.h165
1 files changed, 165 insertions, 0 deletions
diff --git a/gpr/source/lib/dng_sdk/dng_string.h b/gpr/source/lib/dng_sdk/dng_string.h
new file mode 100644
index 0000000..41608f1
--- /dev/null
+++ b/gpr/source/lib/dng_sdk/dng_string.h
@@ -0,0 +1,165 @@
+/*****************************************************************************/
+// Copyright 2006-2007 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in
+// accordance with the terms of the Adobe license agreement accompanying it.
+/*****************************************************************************/
+
+/* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_string.h#2 $ */
+/* $DateTime: 2012/07/31 22:04:34 $ */
+/* $Change: 840853 $ */
+/* $Author: tknoll $ */
+
+/** \file
+ * Text string representation.
+ */
+
+/*****************************************************************************/
+
+#ifndef __dng_string__
+#define __dng_string__
+
+/*****************************************************************************/
+
+#include "dng_types.h"
+#include "dng_memory.h"
+
+/*****************************************************************************/
+
+class dng_string
+ {
+
+ private:
+
+ // Always stored internally as a UTF-8 encoded string.
+
+ dng_memory_data fData;
+
+ public:
+
+ dng_string ();
+
+ dng_string (const dng_string &s);
+
+ dng_string & operator= (const dng_string &s);
+
+ ~dng_string ();
+
+ const char * Get () const;
+
+ bool IsASCII () const;
+
+ void Set (const char *s);
+
+ void Set_ASCII (const char *s);
+
+ void Set_UTF8 (const char *s);
+
+ uint32 Get_SystemEncoding (dng_memory_data &buffer) const;
+
+ void Set_SystemEncoding (const char *s);
+
+ bool ValidSystemEncoding () const;
+
+ void Set_JIS_X208_1990 (const char *s);
+
+ static uint32 DecodeUTF8 (const char *&s,
+ uint32 maxBytes = 6,
+ bool *isValid = NULL);
+
+ static bool IsUTF8 (const char *s);
+
+ void Set_UTF8_or_System (const char *s);
+
+ uint32 Get_UTF16 (dng_memory_data &buffer) const;
+
+ void Set_UTF16 (const uint16 *s);
+
+ void Clear ();
+
+ void Truncate (uint32 maxBytes);
+
+ bool TrimTrailingBlanks ();
+
+ bool TrimLeadingBlanks ();
+
+ bool IsEmpty () const;
+
+ bool NotEmpty () const
+ {
+ return !IsEmpty ();
+ }
+
+ uint32 Length () const;
+
+ bool operator== (const dng_string &s) const;
+
+ bool operator!= (const dng_string &s) const
+ {
+ return !(*this == s);
+ }
+
+ // A utility for doing case insensitive comparisons on strings...
+
+ static bool Matches (const char *t,
+ const char *s,
+ bool case_sensitive = false);
+
+ // ...wrapped up for use with dng_string.
+
+ bool Matches (const char *s,
+ bool case_sensitive = false) const;
+
+ bool StartsWith (const char *s,
+ bool case_sensitive = false) const;
+
+ bool EndsWith (const char *s,
+ bool case_sensitive = false) const;
+
+ bool Contains (const char *s,
+ bool case_sensitive = false,
+ int32 *match_offset = NULL) const;
+
+ bool Replace (const char *old_string,
+ const char *new_string,
+ bool case_sensitive = true);
+
+ bool TrimLeading (const char *s,
+ bool case_sensitive = false);
+
+ void Append (const char *s);
+
+ void SetUppercase ();
+
+ void SetLowercase ();
+
+ void SetLineEndings (char ending);
+
+ void SetLineEndingsToNewLines ()
+ {
+ SetLineEndings ('\n');
+ }
+
+ void SetLineEndingsToReturns ()
+ {
+ SetLineEndings ('\r');
+ }
+
+ void StripLowASCII ();
+
+ void ForceASCII ();
+
+ int32 Compare (const dng_string &s) const;
+
+ // A utility to convert fields of numbers into comma separated numbers.
+
+ void NormalizeAsCommaSeparatedNumbers ();
+
+ };
+
+/*****************************************************************************/
+
+#endif
+
+/*****************************************************************************/