/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #pragma once #include #include #include // Additional user data may be written here, marked with "///USER INCLUDES" at the beginning and "///USER END" at the end class OdIdsIds; typedef OdSmartPtr OdIdsIdsPtr; typedef OdArray OdIdsIdsPtrArray; ODRX_DECLARE_VALUE_TYPE(OdIdsIdsPtrArray, ODIDS_DLLEXPORT) // Additional user data may be written here, marked with "///USER TYPEDEFS" at the beginning and "///USER END" at the end class ODIDS_DLLEXPORT OdIdsIds : public OdRxObject { // Additional user data may be written here, marked with "///USER CLASS START" at the beginning and "///USER END" at the end protected: xmlNode* _node = nullptr; OdAnsiString _documentationString; OdIdsIdsInfoPtr _info; OdIdsSpecificationsTypePtr _specifications; // Additional user data may be written here, marked with "///USER MEMBER DECLARATIONS" at the beginning and "///USER END" at the end public: ODRX_DECLARE_MEMBERS(OdIdsIds); OdIdsIds(); ~OdIdsIds(); void readXml(xmlNode* node); void writeXml(xmlNode* node) const; virtual void __load(bool markAsLoaded = true); inline void __load(bool markAsLoaded = true) const { const_cast(this)->__load(markAsLoaded); } bool isLoaded() const { return _node == nullptr; } OdAnsiString getXmlDocumentationString(){ if (!isLoaded()) { __load(); } return _documentationString; } void setXmlDocumentationString(OdAnsiString s) { if (!isLoaded()) { __load(); } _documentationString = s; } OdIdsIdsInfo* getInfo() { if(!isLoaded()) {__load();} return _info; } const OdIdsIdsInfo* getInfo() const { if(!isLoaded()) {__load();} return _info; } void setInfo(OdIdsIdsInfo* val) { if(!isLoaded()) {__load();} _info = val; } OdIdsSpecificationsType* getSpecifications() { if(!isLoaded()) {__load();} return _specifications; } const OdIdsSpecificationsType* getSpecifications() const { if(!isLoaded()) {__load();} return _specifications; } void setSpecifications(OdIdsSpecificationsType* val) { if(!isLoaded()) {__load();} _specifications = val; } };