// Copyright (c) 2024 Codemongous LLC. All Rights Reserved.

#pragma once

#include "ISCW_FSubobjectDataHandle.h"
#include "SCW_Base.h"
#include "SubobjectDataHandle.h"

struct FSubobjectDataHandle;

namespace Sourcify
{
	class SCW_FSubobjectDataHandle : public SCW_Base, public ISCW_FSubobjectDataHandle
	{
	public:
		SCW_FSubobjectDataHandle(FSubobjectDataHandle* InSubobjectDataHandle);

		ISCW_FSubobjectDataPtr GetData() const override;

		FSubobjectDataHandle& ToFSubobjectDataHandle();
		
		ISCW_FSubobjectDataHandlePtr ToFSubobjectDataHandlePtr() override;
		ISCW_FSubobjectDataHandleConstPtr ToFSubobjectDataHandlePtr() const override;

	protected:
		FSubobjectDataHandle SubobjectDataHandle;
	};
} // namespace Sourcify