1 // Created on: 2001-06-26
2 // Created by: Alexander GRIGORIEV
3 // Copyright (c) 2001-2012 OPEN CASCADE SAS
5 // The content of this file is subject to the Open CASCADE Technology Public
6 // License Version 6.5 (the "License"). You may not use the content of this file
7 // except in compliance with the License. Please obtain a copy of the License
8 // at http://www.opencascade.org and read it completely before using this file.
10 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 // The Original Code and all software distributed under the License is
14 // distributed on an "AS IS" basis, without warranty of any kind, and the
15 // Initial Developer hereby disclaims all such warranties, including without
16 // limitation, any warranties of merchantability, fitness for a particular
17 // purpose or non-infringement. Please see the License for the specific terms
18 // and conditions governing the rights and limitations under the License.
22 #ifndef LDOMBasicString_HeaderFile
23 #define LDOMBasicString_HeaderFile
25 #include <Standard_Type.hxx>
26 #include <Standard_Macro.hxx>
27 #include <TCollection_AsciiString.hxx>
28 #include <TCollection_ExtendedString.hxx>
30 class Handle(LDOM_MemManager);
32 class TCollection_AsciiString;
33 class TCollection_ExtendedString;
35 // Block of comments describing class LDOMBasicString
40 friend class LDOM_MemManager;
41 friend class LDOM_Node;
47 LDOM_AsciiFree, // String not connected to any container
48 LDOM_AsciiDoc, // String connected to LDOM_Document (container)
49 LDOM_AsciiDocClear, // --"--"--, consists of only XML-valid chars
50 LDOM_AsciiHashed // String connected to hash table
53 Standard_EXPORT ~LDOMBasicString ();
55 StringType Type () const { return myType; }
57 Standard_EXPORT Standard_Boolean
58 GetInteger (Standard_Integer& aResult) const;
59 // Conversion to Integer (only for LDOM_Integer)
62 GetString () const { return myType == LDOM_Integer ||
64 "" : (const char *) myVal.ptr; }
65 // Conversion to char * (only for LDOM_Ascii*)
67 Standard_EXPORT Standard_Boolean
68 equals (const LDOMBasicString& anOther) const;
69 // Compare two strings by content
71 Standard_EXPORT LDOMBasicString&
72 operator = (const LDOM_NullPtr *);
74 Standard_EXPORT LDOMBasicString&
75 operator = (const LDOMBasicString& anOther);
78 operator == (const LDOM_NullPtr *) const
79 { return myType==LDOM_NULL; }
81 operator != (const LDOM_NullPtr *) const
82 { return myType!=LDOM_NULL; }
85 operator == (const LDOMBasicString& anOther) const
87 return myType==anOther.myType && myVal.i==anOther.myVal.i;
91 operator != (const LDOMBasicString& anOther) const
93 return myType!=anOther.myType || myVal.i!=anOther.myVal.i;
97 Standard_EXPORT operator TCollection_AsciiString () const;
99 Standard_EXPORT operator TCollection_ExtendedString () const;
102 : myType (LDOM_NULL) { myVal.ptr = NULL; }
105 Standard_EXPORT LDOMBasicString (const LDOMBasicString& anOther);
108 LDOMBasicString (const Standard_Integer aValue)
109 : myType (LDOM_Integer) { myVal.i = aValue; }
111 Standard_EXPORT LDOMBasicString (const char * aValue);
112 // Create LDOM_AsciiFree
114 Standard_EXPORT LDOMBasicString (const char * aValue,
115 const Handle(LDOM_MemManager)& aDoc);
116 // Create LDOM_AsciiDoc
118 Standard_EXPORT LDOMBasicString (const char * aValue,
119 const Standard_Integer aLen,
120 const Handle(LDOM_MemManager)& aDoc);
121 // Create LDOM_AsciiDoc
124 // ---------- PROTECTED METHODS ----------
125 void SetDirect (const StringType aType, const char * aValue)
126 { myType = aType; myVal.ptr = (void *) aValue; }
130 // ---------- PROTECTED FIELDS ----------
137 friend char * db_pretty_print (const LDOMBasicString *, int, char *);