Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1997 - 1997
//
// File: gnodera.hxx
//
//--------------------------------------------------------------------------
#ifndef __gnodera_hxx__
#define __gnodera_hxx__
#include "gelem.h"
#include "types.hxx"
class GNODERA;
// class GNODERA: node with dynamic array of children and
// parents for fast random access.
class GNODERA : public GNODE { public:
GNODERA(); virtual ~GNODERA();
virtual GEDGE*& PedgeSource(); virtual GEDGE*& PedgeSink(); virtual GEDGE* PedgeSource() const; virtual GEDGE* PedgeSink() const;
virtual UINT CSourceArc() const; virtual UINT CSinkArc() const;
UINT CnodeChild(); UINT CnodeParent(); VPGNODE& VpnodeChild() { return _vpnodeChild; }
// Insert a child/parent in position iChild/iParent
VOID InsertChild(UINT inodeChild, GNODE* pnodeChild); VOID InsertParent(UINT inodeParent, GNODE* pnodeParent);
// Insert a child/parent at the end of the child/parent vector
VOID InsertChild(GNODE* pnodeChild); VOID InsertParent(GNODE* pnodeParent);
// Delete the child/parent in position iChild/iParent
VOID DeleteChild(UINT inodeChild); VOID DeleteParent(UINT inodeParent);
// Test Child/Parent membership
BOOL BChild(GNODE* pnode); BOOL BParent(GNODE* pnode); UINT InodeChild(GNODE* pnode); UINT InodeParent(GNODE* pnode);
GNODE* PnodeParent(UINT inodeParent); GNODE* PnodeChild(UINT inodeChild);
GNODERA* PnoderaParent(UINT inodeParent); GNODERA* PnoderaChild(UINT inodeChild);
protected:
virtual GEDGE* PedgeOrdering(GEDGE * pgedge, BOOL bSource); virtual VOID ArcDeath(GEDGE * pgedge, BOOL bSource);
protected: GEDGLNK _glkArcs;
VPGNODE _vpnodeChild; VPGNODE _vpnodeParent; };
#endif
|