00001
00002
00003
00004
00005
00006
00008
00010
00011
00012
00013 #ifndef _seDRMBase_h
00014 #define _seDRMBase_h
00015
00021 #include "seObject.h"
00022 #include "seHelperDRM.h"
00023
00024 #include "drm.h"
00025
00026 namespace sedris {
00027
00029 #define DRMBASE_RET_FIELDS(_c, _f) const SE_Fields *flds; \
00030 getFields(&flds); \
00031 return (flds->u._c._f)
00032
00033 #define DRMBASE_ALLOC_FIELDS SE_Fields *flds = getWritableFields();
00034
00035 #define DRMBASE_SET_FIELDS(_c, _f, _v) DRMBASE_ALLOC_FIELDS; \
00036 flds->u._c._f = _v
00037
00038 #define DRMBASE_SET_FIELDS_S(_c, _f, _s, _v) flds->u._c._f._s = _v
00039
00040 #define DRMBASE_ACC_FIELDS(_c, _f) flds->u._c._f
00041
00042
00072 class EXPORT_DLL seDRMBase : public seObject
00073 {
00074 public:
00075
00077 seDRMBase() {}
00078
00080 seDRMBase( const seObject &other )
00081 {
00082 other.cloneTo(*this);
00083 }
00084
00085 protected:
00086
00088 static void set_SE_Security_Constraints( SE_Security_Constraints &dest,
00089 const SE_Security_Constraints &src );
00090
00092 static void set_SE_Contact_Information( SE_Contact_Information &dest,
00093 const SE_Contact_Information &src );
00094
00096 static void set_SE_Text_Font( SE_Text_Font &dest,
00097 const SE_Text_Font &src );
00098
00100 static void set_EDCS_Attribute_Value( EDCS_Attribute_Value &dest,
00101 const EDCS_Attribute_Value &src );
00102
00104 static void set_SE_Single_Value( SE_Single_Value &dest,
00105 const SE_Single_Value &src );
00106
00108 static void set_SE_Single_Value( SE_Single_Value *&dest,
00109 SE_Short_Integer_Positive &dest_count,
00110 const SE_Single_Value *array,
00111 SE_Short_Integer_Positive count );
00112
00114 static void set_SE_Interval_Value( SE_Interval_Value *&dest,
00115 SE_Short_Integer_Positive &dest_count,
00116 const SE_Interval_Value *array,
00117 SE_Short_Integer_Positive count );
00118
00120 static void set_SE_String( SE_String *&dest,
00121 SE_Short_Integer_Positive &dest_count,
00122 const SE_String *array,
00123 SE_Short_Integer_Positive count );
00124
00126 static void set_SE_String( SE_String *&dest,
00127 SE_Integer_Unsigned &dest_count,
00128 const SE_String *array,
00129 SE_Integer_Unsigned count );
00130
00132 static void set_SE_Image_MIP_Extents( SE_Image_MIP_Extents *&dest,
00133 SE_Short_Integer_Positive &dest_count,
00134 const SE_Image_MIP_Extents *array,
00135 SE_Short_Integer_Positive count );
00136
00138 static void set_EDCS_Enumerant_Code( EDCS_Enumerant_Code *&dest,
00139 SE_Short_Integer_Positive &dest_count,
00140 const EDCS_Enumerant_Code *array,
00141 SE_Short_Integer_Positive count );
00142
00144 static void set_SE_Short_Integer( SE_Short_Integer *&dest,
00145 SE_Short_Integer_Positive &des_count,
00146 const SE_Short_Integer *array,
00147 SE_Short_Integer_Positive count );
00148 };
00149
00150
00151 }
00152
00153 #endif // _seDRMBase_h