mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-25 04:35:17 +00:00
52 lines
1.3 KiB
C
52 lines
1.3 KiB
C
|
#pragma once
|
||
|
|
||
|
#include "container/seadTreeNode.h"
|
||
|
#include "hostio/seadHostIOReflexible.h"
|
||
|
|
||
|
namespace sead::hostio
|
||
|
{
|
||
|
class Node : public Reflexible
|
||
|
{
|
||
|
public:
|
||
|
NodeClassType getNodeClassType() const override { return Reflexible::NodeClassType::Node; }
|
||
|
|
||
|
#ifdef SEAD_DEBUG
|
||
|
public:
|
||
|
Node();
|
||
|
Node(Heap* heap, IDisposer::HeapNullOption heap_null_option);
|
||
|
~Node() override { disposeHostIOImpl_(); }
|
||
|
|
||
|
void appendChild(Node* node);
|
||
|
void insertAfterSelf(Node* node);
|
||
|
void insertBeforeSelf(Node* node);
|
||
|
void detachAll();
|
||
|
void detach();
|
||
|
void destroy() { detachAll(); }
|
||
|
Node* getParentNode() const;
|
||
|
Node* getChildNode() const;
|
||
|
Node* getNextNode() const;
|
||
|
Node* getPrevNode() const;
|
||
|
|
||
|
bool isAppended() const;
|
||
|
|
||
|
Reflexible* searchNode(const SafeString& name) override;
|
||
|
void calcURL(BufferedSafeString* url) const override { calcURLImpl_(url, true); }
|
||
|
|
||
|
protected:
|
||
|
void genChildNode(Context* context) override;
|
||
|
bool isHaveChild() const override { return mTreeNode.child() != nullptr; }
|
||
|
void disposeHostIO() override
|
||
|
{
|
||
|
disposeHostIOImpl_();
|
||
|
Reflexible::disposeHostIO();
|
||
|
}
|
||
|
|
||
|
private:
|
||
|
void disposeHostIOImpl_();
|
||
|
void calcURLImpl_(BufferedSafeString* url, bool) const;
|
||
|
|
||
|
TTreeNode<Node*> mTreeNode;
|
||
|
#endif
|
||
|
};
|
||
|
} // namespace sead::hostio
|