Integration of OCCT 6.5.0 from SVN
[occt.git] / src / LDOM / LDOMString.cxx
CommitLineData
7fd59977 1// File: LDOMString.cxx
2// Created: 25.06.01 15:24:17
3// Author: Alexander GRIGORIEV
4// Copyright: OpenCascade 2001
5// History:
6
7#include <LDOMString.hxx>
8#include <LDOM_MemManager.hxx>
9
10//=======================================================================
11//function : CreateDirectString
12//purpose : Only for hashed strings!!
13//=======================================================================
14
15LDOMString LDOMString::CreateDirectString (const char * aValue,
16 const LDOM_MemManager& aDoc)
17{
18 LDOMString aResult;
19 aResult.myPtrDoc = &aDoc;
20 aResult.SetDirect (LDOMBasicString::LDOM_AsciiHashed, aValue);
21 return aResult;
22}
23
24//=======================================================================
25//function : LDOMString
26//purpose : Copy from another string with allocation in the document
27//=======================================================================
28
29LDOMString::LDOMString (const LDOMBasicString& anOther,
30 const Handle(LDOM_MemManager)& aDoc)
31 : myPtrDoc (&aDoc -> Self())
32{
33 myType = anOther.Type();
34 switch (myType)
35 {
36 case LDOM_Integer:
37 anOther.GetInteger (myVal.i);
38 break;
39 case LDOM_AsciiFree:
40 myType = LDOM_AsciiDoc;
41 case LDOM_AsciiDocClear:
42 case LDOM_AsciiDoc:
43 {
44 const char * aString = anOther.GetString ();
45 Standard_Integer aLen = strlen (aString) + 1;
46 myVal.ptr = ((LDOM_MemManager *) myPtrDoc) -> Allocate (aLen);
47 memcpy (myVal.ptr, aString, aLen);
48 }
49 break;
50 case LDOM_AsciiHashed:
51 myVal.ptr = (void *)anOther.GetString ();
52 break;
53 default:
54 myType = LDOM_NULL;
55 }
56}
57
58//=======================================================================
59//function : LDOMString
60//purpose : Copy from another with allocation in the document if necessary
61//=======================================================================
62/*
63LDOMString::LDOMString (const LDOMString& anOther, const LDOM_Document& aDoc)
64 : myPtrDoc (&aDoc.myMemManager -> Self())
65{
66 switch (anOther.Type())
67 {
68 case LDOM_Integer:
69 myType = LDOM_Integer;
70 anOther.GetInteger (myVal.i);
71 break;
72 case LDOM_AsciiDoc:
73 if (aDoc == anOther.getOwnerDocument())
74 case LDOM_AsciiHashed:
75 myVal.ptr = (void *)anOther.GetString ();
76 else {
77 case LDOM_AsciiFree:
78 const char * aString = anOther.GetString ();
79 Standard_Integer aLen = strlen (aString) + 1;
80 myVal.ptr = aDoc.AllocMem (aLen);
81 memcpy (myVal.ptr, aString, aLen);
82 myType = LDOM_AsciiDoc;
83 }
84 break;
85 default: ;
86 }
87}
88*/