1 // Created on: 2001-06-26
2 // Created by: Alexander GRIGORIEV
3 // Copyright (c) 2001-2014 OPEN CASCADE SAS
5 // This file is part of Open CASCADE Technology software library.
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
16 #ifndef LDOMBasicString_HeaderFile
17 #define LDOMBasicString_HeaderFile
19 #include <Standard_Macro.hxx>
20 #include <TCollection_AsciiString.hxx>
21 #include <TCollection_ExtendedString.hxx>
23 class LDOM_MemManager;
25 class TCollection_AsciiString;
26 class TCollection_ExtendedString;
28 // Block of comments describing class LDOMBasicString
33 friend class LDOM_MemManager;
34 friend class LDOM_Node;
40 LDOM_AsciiFree, // String not connected to any container
41 LDOM_AsciiDoc, // String connected to LDOM_Document (container)
42 LDOM_AsciiDocClear, // --"--"--, consists of only XML-valid chars
43 LDOM_AsciiHashed // String connected to hash table
46 Standard_EXPORT ~LDOMBasicString ();
48 StringType Type () const { return myType; }
50 Standard_EXPORT Standard_Boolean
51 GetInteger (Standard_Integer& aResult) const;
52 // Conversion to Integer (only for LDOM_Integer)
55 GetString () const { return myType == LDOM_Integer ||
57 "" : (const char *) myVal.ptr; }
58 // Conversion to char * (only for LDOM_Ascii*)
60 Standard_EXPORT Standard_Boolean
61 equals (const LDOMBasicString& anOther) const;
62 // Compare two strings by content
64 Standard_EXPORT LDOMBasicString&
65 operator = (const LDOM_NullPtr *);
67 Standard_EXPORT LDOMBasicString&
68 operator = (const LDOMBasicString& anOther);
71 operator == (const LDOM_NullPtr *) const
72 { return myType==LDOM_NULL; }
74 operator != (const LDOM_NullPtr *) const
75 { return myType!=LDOM_NULL; }
78 operator == (const LDOMBasicString& anOther) const
80 return myType==anOther.myType && myVal.i==anOther.myVal.i;
84 operator != (const LDOMBasicString& anOther) const
86 return myType!=anOther.myType || myVal.i!=anOther.myVal.i;
90 Standard_EXPORT operator TCollection_AsciiString () const;
92 Standard_EXPORT operator TCollection_ExtendedString () const;
95 : myType (LDOM_NULL) { myVal.ptr = NULL; }
98 Standard_EXPORT LDOMBasicString (const LDOMBasicString& anOther);
101 LDOMBasicString (const Standard_Integer aValue)
102 : myType (LDOM_Integer) { myVal.i = aValue; }
104 Standard_EXPORT LDOMBasicString (const char * aValue);
105 // Create LDOM_AsciiFree
107 Standard_EXPORT LDOMBasicString (const char * aValue,
108 const Handle(LDOM_MemManager)& aDoc);
109 // Create LDOM_AsciiDoc
111 Standard_EXPORT LDOMBasicString (const char * aValue,
112 const Standard_Integer aLen,
113 const Handle(LDOM_MemManager)& aDoc);
114 // Create LDOM_AsciiDoc
117 // ---------- PROTECTED METHODS ----------
118 void SetDirect (const StringType aType, const char * aValue)
119 { myType = aType; myVal.ptr = (void *) aValue; }
123 // ---------- PROTECTED FIELDS ----------
130 friend char * db_pretty_print (const LDOMBasicString *, int, char *);