0023024: Update headers of OCCT files
[occt.git] / src / Standard / Standard_Persistent_proto.hxx
1 // Copyright (c) 1998-1999 Matra Datavision
2 // Copyright (c) 1999-2012 OPEN CASCADE SAS
3 //
4 // The content of this file is subject to the Open CASCADE Technology Public
5 // License Version 6.5 (the "License"). You may not use the content of this file
6 // except in compliance with the License. Please obtain a copy of the License
7 // at http://www.opencascade.org and read it completely before using this file.
8 //
9 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
10 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
11 //
12 // The Original Code and all software distributed under the License is
13 // distributed on an "AS IS" basis, without warranty of any kind, and the
14 // Initial Developer hereby disclaims all such warranties, including without
15 // limitation, any warranties of merchantability, fitness for a particular
16 // purpose or non-infringement. Please see the License for the specific terms
17 // and conditions governing the rights and limitations under the License.
18
19 #ifndef _Standard_Persistent_proto_HeaderFile
20 #define _Standard_Persistent_proto_HeaderFile
21
22 #ifndef _Standard_Macro_HeaderFile
23 #include <Standard_Macro.hxx>
24 #endif
25 #ifndef _Standard_DefineAlloc_HeaderFile
26 #include <Standard_DefineAlloc.hxx>
27 #endif
28 #ifndef _Standard_PrimitiveTypes_HeaderFile
29 #include <Standard_PrimitiveTypes.hxx>
30 #endif
31 #ifndef _Standard_HeaderFile
32 #include <Standard.hxx>
33 #endif
34
35 class Handle_Standard_Persistent;
36 class Standard_Type;
37 class Handle_Standard_Type;
38 class Standard_Type;
39
40 class Storage_stCONSTclCOM;
41 Standard_EXPORT const Handle_Standard_Type& Standard_Persistent_Type_();
42
43 class Standard_Persistent
44 {
45 friend class Handle(Standard_Persistent);
46 friend class Storage_Schema;
47
48 private:
49   Standard_Integer count;
50   Standard_Integer _typenum;
51   Standard_Integer _refnum;
52 public:
53   
54   DEFINE_STANDARD_ALLOC
55
56   Standard_EXPORT virtual Handle_Standard_Persistent This() const;
57   Standard_EXPORT virtual Handle_Standard_Persistent ShallowCopy () const;
58   Standard_EXPORT virtual void Delete() const;
59   Standard_EXPORT virtual ~Standard_Persistent();
60   
61   Standard_EXPORT Standard_Persistent& operator= (const Standard_Persistent&);
62                   Standard_Persistent() : count(0),_typenum(0),_refnum(0) {};
63                   Standard_Persistent(const Standard_Persistent&) : count(0),_typenum(0),_refnum(0) {};
64                   Standard_Persistent(const Storage_stCONSTclCOM&) : count(0),_typenum(0),_refnum(0) {}
65
66   Standard_EXPORT virtual const Handle_Standard_Type& DynamicType() const;
67   Standard_EXPORT         Standard_Boolean            IsKind(const Handle_Standard_Type&)const;
68   Standard_EXPORT         Standard_Boolean            IsInstance(const Handle_Standard_Type&)const;  
69   Standard_EXPORT virtual void                        ShallowDump(Standard_OStream& ) const;
70 };
71
72 #include <Handle_Standard_Persistent.hxx>
73
74 #endif
75
76
77
78
79
80
81
82