bool CNodeLiveWriterRef::IsValid() const { if (m_nodeId == XMLCPB_INVALID_ID) return false; CNodeLiveWriter* pNode = m_Writer.GetNodeLive( m_nodeId ); return (pNode->IsValid() && pNode->GetSafeCheckID() == m_safecheckID); }
CNodeLiveWriter* CNodeLiveWriterRef::GetNode() const { if (m_nodeId == XMLCPB_INVALID_ID) return NULL; CNodeLiveWriter* pNode = m_Writer.GetNodeLive( m_nodeId ); if (!pNode->IsValid() || pNode->GetSafeCheckID() != m_safecheckID) { assert( false ); return NULL; } return pNode; }
void CNodeLiveWriterRef::CopyFrom( const CNodeLiveWriterRef &other ) { m_nodeId = other.m_nodeId; m_pNode_Debug = other.m_pNode_Debug; m_safecheckID = other.m_safecheckID; if (m_nodeId != XMLCPB_INVALID_ID) { CNodeLiveWriter* pNode = m_Writer.GetNodeLive( m_nodeId ); if (!pNode->IsValid() || pNode->GetSafeCheckID() != m_safecheckID) { assert( false ); m_nodeId = XMLCPB_INVALID_ID; m_pNode_Debug = NULL; } } }
CNodeLiveWriterRef::CNodeLiveWriterRef( CWriter &Writer, NodeLiveID nodeId ) : m_Writer(Writer) { m_nodeId = nodeId; m_pNode_Debug = NULL; if (m_nodeId == XMLCPB_INVALID_ID) return; CNodeLiveWriter* pNode = m_Writer.GetNodeLive( m_nodeId ); if (!pNode->IsValid()) { assert( false ); return; } m_pNode_Debug = pNode; m_safecheckID = pNode->GetSafeCheckID(); }