From 446ce137c6823ba9eff273bdafdaf266287c7c98 Mon Sep 17 00:00:00 2001 From: Bryan Galdrikian Date: Tue, 21 Feb 2017 12:07:59 -0800 Subject: first commit --- .../source/NvBlastExtSerializationImpl.h | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 NvBlast/sdk/extensions/serialization/source/NvBlastExtSerializationImpl.h (limited to 'NvBlast/sdk/extensions/serialization/source/NvBlastExtSerializationImpl.h') diff --git a/NvBlast/sdk/extensions/serialization/source/NvBlastExtSerializationImpl.h b/NvBlast/sdk/extensions/serialization/source/NvBlastExtSerializationImpl.h new file mode 100644 index 0000000..7f9fbc9 --- /dev/null +++ b/NvBlast/sdk/extensions/serialization/source/NvBlastExtSerializationImpl.h @@ -0,0 +1,75 @@ +/* +* Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#pragma once + +#include "NvBlastExtSerialization.h" +#include "NvBlastTkAsset.h" +#include "NvBlastExtPxAsset.h" +#include "TkAssetDTO.h" +#include "ExtPxAssetDTO.h" + +namespace Nv +{ + namespace Blast + { + /* + Specializations here - one set for each top level asset. (TkAsset, ExtPxAsset) + */ + + + // TkAsset + template<> + NV_INLINE bool ExtSerialization::serializeIntoBuilder(Nv::Blast::Serialization::TkAsset::Builder& assetBuilder, const Nv::Blast::TkAsset* asset) + { + return TkAssetDTO::serialize(assetBuilder, asset); + } + + template<> + NV_INLINE Nv::Blast::TkAsset* ExtSerialization::deserializeFromStreamReader(capnp::InputStreamMessageReader &message) + { + Nv::Blast::Serialization::TkAsset::Reader reader = message.getRoot(); + + return TkAssetDTO::deserialize(reader); + } + + template<> + NV_INLINE bool ExtSerialization::serializeIntoMessage(capnp::MallocMessageBuilder& message, const Nv::Blast::TkAsset* asset) + { + Nv::Blast::Serialization::TkAsset::Builder assetBuilder = message.initRoot(); + + return serializeIntoBuilder(assetBuilder, asset); + } + + + //ExtPxAsset + template<> + NV_INLINE bool ExtSerialization::serializeIntoBuilder(Nv::Blast::Serialization::ExtPxAsset::Builder& assetBuilder, const Nv::Blast::ExtPxAsset* asset) + { + return ExtPxAssetDTO::serialize(assetBuilder, asset); + } + + template<> + NV_INLINE Nv::Blast::ExtPxAsset* ExtSerialization::deserializeFromStreamReader(capnp::InputStreamMessageReader &message) + { + Nv::Blast::Serialization::ExtPxAsset::Reader reader = message.getRoot(); + + return ExtPxAssetDTO::deserialize(reader); + } + + template<> + NV_INLINE bool ExtSerialization::serializeIntoMessage(capnp::MallocMessageBuilder& message, const Nv::Blast::ExtPxAsset* asset) + { + Nv::Blast::Serialization::ExtPxAsset::Builder assetBuilder = message.initRoot(); + + return serializeIntoBuilder(assetBuilder, asset); + } + } +} -- cgit v1.2.3