blob: dbcbf7e6fc993cd607902656fc61638768f07e92 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
// File: BinMDocStd_XLinkDriver.cxx
// Created: Thu May 13 16:11:34 2004
// Author: Sergey ZARITCHNY <szy@opencascade.com>
// Copyright: Open CasCade S.A. 2004
#include <BinMDocStd_XLinkDriver.ixx>
#include <CDM_MessageDriver.hxx>
#include <TDF_Attribute.hxx>
#include <TDocStd_XLink.hxx>
#include <BinMDF_ADriver.hxx>
#include <BinObjMgt_Persistent.hxx>
#include <BinObjMgt_RRelocationTable.hxx>
#include <BinObjMgt_SRelocationTable.hxx>
//=======================================================================
//function : BinMDocStd_XLinkDriver
//purpose :
//=======================================================================
BinMDocStd_XLinkDriver::BinMDocStd_XLinkDriver
(const Handle(CDM_MessageDriver)& theMsgDriver)
: BinMDF_ADriver (theMsgDriver, STANDARD_TYPE(TDocStd_XLink)->Name())
{
}
//=======================================================================
//function : NewEmpty
//purpose :
//=======================================================================
Handle(TDF_Attribute) BinMDocStd_XLinkDriver::NewEmpty() const
{
return new TDocStd_XLink();
}
//=======================================================================
//function : Paste
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean BinMDocStd_XLinkDriver::Paste
(const BinObjMgt_Persistent& theSource,
const Handle(TDF_Attribute)& theTarget,
BinObjMgt_RRelocationTable& ) const
{
TCollection_AsciiString aStr;
Standard_Boolean ok = theSource >> aStr;
if(ok) {
Handle(TDocStd_XLink) anAtt = Handle(TDocStd_XLink)::DownCast(theTarget);
anAtt->DocumentEntry(aStr);
aStr.Clear();
ok = theSource >> aStr;
if(ok)
anAtt->LabelEntry(aStr);
}
return ok;
}
//=======================================================================
//function : Paste
//purpose : transient -> persistent (store)
//=======================================================================
void BinMDocStd_XLinkDriver::Paste (const Handle(TDF_Attribute)& theSource,
BinObjMgt_Persistent& theTarget,
BinObjMgt_SRelocationTable& ) const
{
Handle(TDocStd_XLink) anAtt = Handle(TDocStd_XLink)::DownCast(theSource);
theTarget << anAtt->DocumentEntry() << anAtt->LabelEntry();
}
|