49 kNTStructure = 1 << 2,
59 virtual eNodeType APICALL GetNodeType()
const = 0;
66 virtual eNodeType APICALL GetParentNodeType()
const = 0;
76 return const_cast< INode_v1 *
>( this )->GetParent();
78 virtual spINode APICALL GetParent() = 0;
91 virtual void APICALL SetName(
const char * name,
sizet nameLength ) = 0;
107 virtual void APICALL SetNameSpace(
const char * nameSpace,
sizet nameSpaceLength ) = 0;
119 virtual spIPath APICALL GetPath()
const = 0;
133 return const_cast< INode_v1 *
>( this )->QualifiersIterator();
147 virtual eNodeType APICALL GetQualifierNodeType(
const char * nameSpace,
sizet nameSpaceLength,
const char * name,
sizet nameLength )
const = 0;
161 return const_cast< INode_v1 *
>( this )->GetQualifier( nameSpace, nameSpaceLength, name, nameLength );
163 virtual spINode APICALL GetQualifier(
const char * nameSpace,
sizet nameSpaceLength,
const char * name,
sizet nameLength ) = 0;
180 auto node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );
181 if ( node )
return node->ConvertToSimpleNode();
186 auto node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );
187 if ( node )
return node->ConvertToSimpleNode();
206 auto node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );
207 if ( node )
return node->ConvertToStructureNode();
212 auto node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );
213 if ( node )
return node->ConvertToStructureNode();
232 auto node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );
233 if ( node )
return node->ConvertToArrayNode();
238 auto node = GetQualifier( nameSpace, nameSpaceLength, name, nameLength );
239 if ( node )
return node->ConvertToArrayNode();
253 virtual void APICALL InsertQualifier(
const spINode & node ) = 0;
265 virtual spINode APICALL ReplaceQualifier(
const spINode & node ) = 0;
276 virtual spINode APICALL RemoveQualifier(
const char * nameSpace,
sizet nameSpaceLength,
const char * name,
sizet nameLength ) = 0;
282 virtual bool APICALL IsArrayItem()
const = 0;
288 virtual bool APICALL IsQualifierNode()
const = 0;
294 virtual sizet APICALL GetIndex()
const = 0;
300 virtual bool APICALL HasQualifiers()
const = 0;
306 virtual bool APICALL HasContent()
const = 0;
312 virtual bool APICALL IsEmpty()
const = 0;
320 virtual bool APICALL HasChanged()
const = 0;
327 virtual void APICALL AcknowledgeChanges() const
__NOTHROW__ = 0;
334 virtual
void APICALL Clear(
bool contents = true,
bool qualifiers = true ) = 0;
342 return const_cast< INode_v1 *
>( this )->ConvertToSimpleNode();
353 return const_cast< INode_v1 *
>( this )->ConvertToStructureNode();
364 return const_cast< INode_v1 *
>( this )->ConvertToArrayNode();
375 return const_cast< INode_v1 *
>( this )->ConvertToMetadata();
377 virtual spIMetadata APICALL ConvertToMetadata() = 0;
388 virtual spINode APICALL Clone(
bool ignoreEmptyNodes =
false,
bool ignoreNodesWithOnlyQualifiers =
false )
const = 0;
401 return const_cast< INode_v1 *
>( this )->GetActualINode();
414 return const_cast< INode_v1 *
>( this )->GetINode_I();
427 return MakeShared(
const_cast< pINode_base >( ptr ) );
482 #ifdef FRIEND_CLASS_DECLARATION
483 FRIEND_CLASS_DECLARATION();
492 #if !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
496 :
public virtual INode
512 pvoid APICALL GetInterfacePointer(
uint64 interfaceID,
uint32 interfaceVersion );
514 virtual eNodeType APICALL GetParentNodeType() const;
515 virtual
spINode APICALL GetParent();
516 virtual
void APICALL SetName( const
char * name,
sizet nameLength );
518 virtual
void APICALL SetNameSpace( const
char * nameSpace,
sizet nameSpaceLength );
520 virtual
spIPath APICALL GetPath() const;
523 virtual eNodeType APICALL GetQualifierNodeType( const
char * nameSpace,
sizet nameSpaceLength, const
char * name,
sizet nameLength ) const;
524 virtual
spINode APICALL GetQualifier( const
char * nameSpace,
sizet nameSpaceLength, const
char * name,
sizet nameLength );
525 virtual
void APICALL InsertQualifier( const
spINode & node );
527 virtual
spINode APICALL RemoveQualifier( const
char * nameSpace,
sizet nameSpaceLength, const
char * name,
sizet nameLength );
528 virtual eNodeType APICALL GetNodeType() const;
529 virtual
bool APICALL IsArrayItem() const;
530 virtual
bool APICALL IsQualifierNode() const;
531 virtual
sizet APICALL GetIndex() const;
532 virtual
bool APICALL HasQualifiers() const;
533 virtual
bool APICALL HasContent() const;
534 virtual
bool APICALL IsEmpty() const;
535 virtual
bool APICALL HasChanged() const;
536 virtual
void APICALL AcknowledgeChanges() const
__NOTHROW__;
537 virtual
void APICALL Clear(
bool contents,
bool qualifiers );
538 virtual
spINode APICALL Clone(
bool ignoreEmptyNodes,
bool ignoreNodesWithOnlyQualifiers ) const;
539 virtual
void APICALL EnableThreadSafety() const
__NOTHROW__;
540 virtual
void APICALL DisableThreadSafety() const
__NOTHROW__;
541 virtual
bool APICALL IsThreadSafe() const;
581 #endif // !BUILDING_XMPCORE_LIB && !SOURCE_COMPILING_XMPCORE_LIB
584 #endif // __INode_h__