dime  0.9.1
Portable DXF file library
Loading...
Searching...
No Matches
Base.h
1/**************************************************************************\
2 * Copyright (c) Kongsberg Oil & Gas Technologies AS
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met:
8 *
9 * Redistributions of source code must retain the above copyright notice,
10 * this list of conditions and the following disclaimer.
11 *
12 * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * Neither the name of the copyright holder nor the names of its
17 * contributors may be used to endorse or promote products derived from
18 * this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31\**************************************************************************/
32
33#ifndef DIME_BASE_H
34#define DIME_BASE_H
35
36#include <dime/Basic.h>
37#include <stddef.h> // for size_t
38
39class dimeMemHandler;
40
41class DIME_DLL_API dimeBase
42{
43public:
44 enum {
45 dimeBaseType = 1,
46 dimeRecordType,
47 dimeStringRecordType,
48 dimeFloatRecordType,
49 dimeDoubleRecordType,
50 dimeInt8RecordType,
51 dimeInt16RecordType,
52 dimeInt32RecordType,
53 dimeHexRecordType,
54 dimeRecordHolderType,
55 dimeClassType,
56 dimeUnknownClassType,
57 dimeObjectType,
58 dimeUnknownObjectType,
59 dimeEntityType,
60 dimeUnknownEntityType,
61 dimePolylineType,
62 dimeVertexType,
63 dimeFaceEntityType,
64 dimeExtrusionEntityType,
65 dime3DFaceType,
66 dimeSolidType,
67 dimeTraceType,
68 dimeLineType,
69 dimeTextType,
70 dimePointType,
71 dimeBlockType,
72 dimeInsertType,
73 dimeCircleType,
74 dimeArcType,
75 dimeLWPolylineType,
76 dimeEllipseType,
77 dimeSplineType,
78 dimeSectionType,
79 dimeUnknownSectionType,
80 dimeEntitiesSectionType,
81 dimeBlocksSectionType,
82 dimeTablesSectionType,
83 dimeHeaderSectionType,
84 dimeClassesSectionType,
85 dimeObjectsSectionType,
86 dimeTableType,
87 dimeTableEntryType,
88 dimeUnknownTableType,
89 dimeUCSTableType,
90 dimeLayerTableType,
91
92 // this should be last
93 dimeLastTypeTag
94 };
95 dimeBase(void);
96 virtual ~dimeBase();
97
98 virtual int typeId() const = 0;
99 virtual bool isOfType(const int thetypeid) const;
100public:
101 void *operator new(size_t size, dimeMemHandler *memhandler = NULL,
102 const int alignment = 4);
103 void operator delete(void *ptr);
104
105}; // class dimeBase
106
107#endif // ! DIME_BASE_H
108
The dimeBase class is the superclass for most classes in Dime.
Definition Base.h:42
virtual int typeId() const =0
The dimeMemHandler class is a special-purpose memory manager.
Definition MemHandler.h:39