/////////////////////////////////////////////////////////////////////////////// // 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. /////////////////////////////////////////////////////////////////////////////// #ifndef _DAI_AGGR_ORDERED_H #define _DAI_AGGR_ORDERED_H #include "OdPlatformSettings.h" #include "OdaCommon.h" #include "daiAggr.h" #include "impl/daiAggrCommonInstance.h" #include "daiAggrMemberAccess.h" #include "daiUtils/daiUnset.h" #include "daiError/daiException.h" #define STL_USING_ALGORITHM #include "OdaSTL.h" #include "TD_PackPush.h" namespace OdDAI { /** \details Class for containers defined within a schema. */ class DAI_EXPORT AggrOrdered : public Aggr { public: /** \details Provides aggregate item by index. \param index [in] an index item. \returns Returns an OdRxValue of aggregate element. */ OdRxValue getByIndex(int index) const; // /** \details Puts aggregate item by index. \param index [in] an index item to put. \param element [in] a value for item set. */ void putByIndex(int index, const OdRxValue& element); // /** \details Insert aggregate item to specified position. \param index [in] an index item to insert. \param element [in] a value for item set. */ void insertByIndex(int index, const OdRxValue& element); // /** \details Creates a child aggregate by index. \param index [in] an index where aggregate create to. \param newAggr [in/out] output parameter. If succeeded it should filled by a pointer of new child aggregate. */ void createAggrInstanceByIndex(int index, Aggr*& newAggr); /** \details Get value bound. \param index [in] An index of value. \returns Value bound. */ int getValueBoundByIndex(int index); // /** \details Templated method provides aggregate item by index. \param index [in] an index item. \returns Returns a typed reference of aggregate element. */ template const TItem& getByIndex(int index) const; // /** \details Templated method puts aggregate item by index. \param index [in] an index item to put. \param element [in] a templated value for item set. */ template void putByIndex(int index, const TItem& element); // //DOM-IGNORE-BEGIN class InternalOps; protected: AggrOrdered(AggrInstance* defaultInstance); ////DOM-IGNORE-END }; } #include "impl/daiAggrOrderedInstance.hpp" //DOM-IGNORE-END #include "TD_PackPop.h" #endif // _DAI_AGGR_H