File indexing completed on 2026-09-17 09:22:20
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #ifndef _TDataStd_ByteArray_HeaderFile
0017 #define _TDataStd_ByteArray_HeaderFile
0018
0019 #include <Standard.hxx>
0020
0021 #include <NCollection_Array1.hxx>
0022 #include <NCollection_HArray1.hxx>
0023 #include <TDF_Attribute.hxx>
0024 #include <Standard_Integer.hxx>
0025 #include <Standard_OStream.hxx>
0026 #include <Standard_GUID.hxx>
0027
0028 class TDF_Label;
0029 class TDF_RelocationTable;
0030 class TDF_DeltaOnModification;
0031
0032
0033 class TDataStd_ByteArray : public TDF_Attribute
0034 {
0035 friend class TDataStd_DeltaOnModificationOfByteArray;
0036 DEFINE_STANDARD_RTTIEXT(TDataStd_ByteArray, TDF_Attribute)
0037 public:
0038
0039
0040
0041 Standard_EXPORT static const Standard_GUID& GetID();
0042
0043
0044
0045
0046
0047
0048 Standard_EXPORT static occ::handle<TDataStd_ByteArray> Set(const TDF_Label& label,
0049 const int lower,
0050 const int upper,
0051 const bool isDelta = false);
0052
0053
0054
0055 Standard_EXPORT static occ::handle<TDataStd_ByteArray> Set(const TDF_Label& label,
0056 const Standard_GUID& theGuid,
0057 const int lower,
0058 const int upper,
0059 const bool isDelta = false);
0060
0061
0062 Standard_EXPORT void Init(const int lower, const int upper);
0063
0064
0065
0066
0067 Standard_EXPORT void SetValue(const int index, const uint8_t value);
0068
0069
0070 Standard_EXPORT void SetID(const Standard_GUID& theGuid) override;
0071
0072
0073 Standard_EXPORT void SetID() override;
0074
0075
0076 Standard_EXPORT uint8_t Value(const int Index) const;
0077
0078 uint8_t operator()(const int Index) const { return Value(Index); }
0079
0080
0081 Standard_EXPORT int Lower() const;
0082
0083
0084 Standard_EXPORT int Upper() const;
0085
0086
0087 Standard_EXPORT int Length() const;
0088
0089 const occ::handle<NCollection_HArray1<uint8_t>>& InternalArray() const { return myValue; }
0090
0091
0092
0093
0094
0095
0096
0097 Standard_EXPORT void ChangeArray(const occ::handle<NCollection_HArray1<uint8_t>>& newArray,
0098 const bool isCheckItems = true);
0099
0100 bool GetDelta() const { return myIsDelta; }
0101
0102
0103 void SetDelta(const bool isDelta) { myIsDelta = isDelta; }
0104
0105 Standard_EXPORT TDataStd_ByteArray();
0106
0107 Standard_EXPORT const Standard_GUID& ID() const override;
0108
0109 Standard_EXPORT void Restore(const occ::handle<TDF_Attribute>& with) override;
0110
0111 Standard_EXPORT occ::handle<TDF_Attribute> NewEmpty() const override;
0112
0113 Standard_EXPORT void Paste(const occ::handle<TDF_Attribute>& into,
0114 const occ::handle<TDF_RelocationTable>& RT) const override;
0115
0116 Standard_EXPORT Standard_OStream& Dump(Standard_OStream& OS) const override;
0117
0118
0119
0120 Standard_EXPORT occ::handle<TDF_DeltaOnModification> DeltaOnModification(
0121 const occ::handle<TDF_Attribute>& anOldAttribute) const override;
0122
0123
0124 Standard_EXPORT void DumpJson(Standard_OStream& theOStream, int theDepth = -1) const override;
0125
0126 private:
0127 void RemoveArray() { myValue.Nullify(); }
0128
0129 private:
0130 occ::handle<NCollection_HArray1<uint8_t>> myValue;
0131 bool myIsDelta;
0132 Standard_GUID myID;
0133 };
0134
0135 #endif