HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GDT_ParmDataItem.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: GDT_ParmDataItem.h ( GU Library, C++)
7  *
8  * COMMENTS: Represents geometry delta in parameter.
9  */
10 
11 #ifndef __GDT_ParmDataItem__
12 #define __GDT_ParmDataItem__
13 
14 #include "GDT_API.h"
15 #include "GDT_Detail.h"
16 #include <PRM/PRM_Parm.h>
17 #include <PRM/PRM_Type.h>
18 
20 {
21 public:
23  : myDelta(0)
24  {}
25 
26  // We gain ownership of this delta, and will free it on completion.
28  : myDelta(delta)
29  {}
30 
31  virtual ~GDT_ParmDataItem()
32  {
33  delete myDelta;
34  }
35 
37  { return PRM_Type::PRM_DATA_GEODELTA; }
38  virtual const char *getDataTypeToken() const { return "geodelta"; }
39 
40  virtual bool saveAscii(std::ostream &os) const;
41  virtual bool saveBinary(std::ostream &os) const;
42 
43  virtual int64 getMemoryUsage() const
44  {
45  return sizeof(this)
46  // TODO: Memory usage of GDT_Detail
47  // + (myDelta ? myDelta->getMemoryUsage() : 0)
48  ;
49  }
50 
51  /// The parameters delta, can be null.
52  const GDT_Detail *delta() const { return myDelta; }
53 
54  /// Steals the delta & resets this to null. Care must be taken
55  /// that the parent handle is unique or you may destroy deltas
56  /// held by other parametrs.
57  GDT_Detail *steal() { GDT_Detail *result = myDelta; myDelta = 0; return result; }
58 
59 private:
60  GDT_Detail *myDelta;
61 };
62 
63 #endif
virtual bool saveBinary(std::ostream &os) const =0
#define GDT_API
Definition: GDT_API.h:10
virtual int64 getMemoryUsage() const
virtual ~GDT_ParmDataItem()
long long int64
Definition: SYS_Types.h:100
virtual bool saveAscii(std::ostream &os) const =0
GDT_ParmDataItem(GDT_Detail *delta)
GDT_Detail * steal()
virtual const char * getDataTypeToken() const
virtual PRM_Type::PRM_DataType getDataType() const
PRM_DataType
Definition: PRM_Type.h:112
const GDT_Detail * delta() const
The parameters delta, can be null.