1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-16 10:08:36 +03:00
occt/src/LDOM/LDOMBasicString.hxx
abv d5f74e42d6 0024624: Lost word in license statement in source files
License statement text corrected; compiler warnings caused by Bison 2.41 disabled for MSVC; a few other compiler warnings on 54-bit Windows eliminated by appropriate type cast
Wrong license statements corrected in several files.
Copyright and license statements added in XSD and GLSL files.
Copyright year updated in some files.
Obsolete documentation files removed from DrawResources.
2014-02-20 16:15:17 +04:00

135 lines
4.4 KiB
C++

// Created on: 2001-06-26
// Created by: Alexander GRIGORIEV
// Copyright (c) 2001-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef LDOMBasicString_HeaderFile
#define LDOMBasicString_HeaderFile
#include <Standard_Type.hxx>
#include <Standard_Macro.hxx>
#include <TCollection_AsciiString.hxx>
#include <TCollection_ExtendedString.hxx>
class Handle(LDOM_MemManager);
class LDOM_NullPtr;
class TCollection_AsciiString;
class TCollection_ExtendedString;
// Block of comments describing class LDOMBasicString
//
class LDOMBasicString
{
friend class LDOM_MemManager;
friend class LDOM_Node;
public:
enum StringType {
LDOM_NULL = 0,
LDOM_Integer,
// LDOM_Real,
LDOM_AsciiFree, // String not connected to any container
LDOM_AsciiDoc, // String connected to LDOM_Document (container)
LDOM_AsciiDocClear, // --"--"--, consists of only XML-valid chars
LDOM_AsciiHashed // String connected to hash table
};
Standard_EXPORT ~LDOMBasicString ();
StringType Type () const { return myType; }
Standard_EXPORT Standard_Boolean
GetInteger (Standard_Integer& aResult) const;
// Conversion to Integer (only for LDOM_Integer)
const char *
GetString () const { return myType == LDOM_Integer ||
myType == LDOM_NULL ?
"" : (const char *) myVal.ptr; }
// Conversion to char * (only for LDOM_Ascii*)
Standard_EXPORT Standard_Boolean
equals (const LDOMBasicString& anOther) const;
// Compare two strings by content
Standard_EXPORT LDOMBasicString&
operator = (const LDOM_NullPtr *);
Standard_EXPORT LDOMBasicString&
operator = (const LDOMBasicString& anOther);
Standard_Boolean
operator == (const LDOM_NullPtr *) const
{ return myType==LDOM_NULL; }
Standard_Boolean
operator != (const LDOM_NullPtr *) const
{ return myType!=LDOM_NULL; }
Standard_Boolean
operator == (const LDOMBasicString& anOther) const
{
return myType==anOther.myType && myVal.i==anOther.myVal.i;
}
Standard_Boolean
operator != (const LDOMBasicString& anOther) const
{
return myType!=anOther.myType || myVal.i!=anOther.myVal.i;
}
// AGV auxiliary API
Standard_EXPORT operator TCollection_AsciiString () const;
Standard_EXPORT operator TCollection_ExtendedString () const;
LDOMBasicString ()
: myType (LDOM_NULL) { myVal.ptr = NULL; }
// Empty constructor
Standard_EXPORT LDOMBasicString (const LDOMBasicString& anOther);
// Copy constructor
LDOMBasicString (const Standard_Integer aValue)
: myType (LDOM_Integer) { myVal.i = aValue; }
Standard_EXPORT LDOMBasicString (const char * aValue);
// Create LDOM_AsciiFree
Standard_EXPORT LDOMBasicString (const char * aValue,
const Handle(LDOM_MemManager)& aDoc);
// Create LDOM_AsciiDoc
Standard_EXPORT LDOMBasicString (const char * aValue,
const Standard_Integer aLen,
const Handle(LDOM_MemManager)& aDoc);
// Create LDOM_AsciiDoc
protected:
// ---------- PROTECTED METHODS ----------
void SetDirect (const StringType aType, const char * aValue)
{ myType = aType; myVal.ptr = (void *) aValue; }
protected:
// ---------- PROTECTED FIELDS ----------
StringType myType;
union {
int i;
void * ptr;
} myVal;
friend char * db_pretty_print (const LDOMBasicString *, int, char *);
};
#endif