CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
MvdXmlUtils.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2022 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23
24#if !defined(ODA_ODMVDXMLUTILS_H_INCLUDED_)
25#define ODA_ODMVDXMLUTILS_H_INCLUDED_
26
27#if _MSC_VER > 1000
28#pragma once
29#endif // _MSC_VER > 1000
30
31#include "OdaCommon.h"
32#include "OdResult.h"
33#include "MvdXmlRoot.h"
34
35namespace OdMvdXml
36{
40 template<typename T>
41 OdResult inFieldsArray(OdArray<OdSmartPtr<T> >& container, TiXmlNode* pParent, const char* pItemName)
42 {
43 for (TiXmlElement* pChild = pParent->FirstChildElement(); pChild; pChild = pChild->NextSiblingElement())
44 {
45 const char* name = pChild->Value();
46 if (odStrICmpA(pItemName, name) == 0)
47 {
48 OdSmartPtr<T> pObj = T::createObject();
49 if (pObj.isNull())
50 return eNullPtr;
51
52 RETURNNOTOK(pObj->inFields(pChild));
53
54 container.append(pObj);
55 }
56 }
57 return eOk;
58 }
59
60 template<typename T>
61 OdResult outFieldsArray(OdArray<OdSmartPtr<T> >& container, TiXmlNode* pParent, const char* pGroupName)
62 {
63 if (container.length() > 0)
64 {
65 TiXmlNode* pItem;
66 if (pGroupName)
67 {
68 pItem = new TiXmlElement(pGroupName);
69 pParent->LinkEndChild(pItem);
70 }
71 else
72 pItem = pParent;
73
74 for (OdSmartPtr<T> item : container)
75 {
76 RETURNNOTOK(item->outFields(pItem));
77 }
78 }
79 return eOk;
80 }
81
82}
83
84#endif // !defined(ODA_ODMVDXMLUTILS_H_INCLUDED_)
#define RETURNNOTOK(expr)
Definition: MvdXmlCommon.h:47
#define odStrICmpA(str, str2)
Definition: OdPlatform.h:416
OdResult
Definition: OdResult.h:29
bool isNull() const
Definition: BaseObjectPtr.h:86
GLuint const GLchar * name
Definition: gles2_ext.h:265
OdResult outFieldsArray(OdArray< OdSmartPtr< T > > &container, TiXmlNode *pParent, const char *pGroupName)
Definition: MvdXmlUtils.h:61
OdResult inFieldsArray(OdArray< OdSmartPtr< T > > &container, TiXmlNode *pParent, const char *pItemName)
Definition: MvdXmlUtils.h:41