ObjectStreamBinaryIn.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
  2. // SPDX-FileCopyrightText: 2021 Jorrit Rouwe
  3. // SPDX-License-Identifier: MIT
  4. #pragma once
  5. #include <Jolt/ObjectStream/ObjectStreamIn.h>
  6. #ifdef JPH_OBJECT_STREAM
  7. JPH_NAMESPACE_BEGIN
  8. /// Implementation of ObjectStream binary input stream.
  9. class JPH_EXPORT ObjectStreamBinaryIn : public ObjectStreamIn
  10. {
  11. public:
  12. JPH_OVERRIDE_NEW_DELETE
  13. /// Constructor
  14. explicit ObjectStreamBinaryIn(istream &inStream);
  15. ///@name Input type specific operations
  16. virtual bool ReadDataType(EOSDataType &outType) override;
  17. virtual bool ReadName(String &outName) override;
  18. virtual bool ReadIdentifier(Identifier &outIdentifier) override;
  19. virtual bool ReadCount(uint32 &outCount) override;
  20. virtual bool ReadPrimitiveData(uint8 &outPrimitive) override;
  21. virtual bool ReadPrimitiveData(uint16 &outPrimitive) override;
  22. virtual bool ReadPrimitiveData(int &outPrimitive) override;
  23. virtual bool ReadPrimitiveData(uint32 &outPrimitive) override;
  24. virtual bool ReadPrimitiveData(uint64 &outPrimitive) override;
  25. virtual bool ReadPrimitiveData(float &outPrimitive) override;
  26. virtual bool ReadPrimitiveData(double &outPrimitive) override;
  27. virtual bool ReadPrimitiveData(bool &outPrimitive) override;
  28. virtual bool ReadPrimitiveData(String &outPrimitive) override;
  29. virtual bool ReadPrimitiveData(Float3 &outPrimitive) override;
  30. virtual bool ReadPrimitiveData(Float4 &outPrimitive) override;
  31. virtual bool ReadPrimitiveData(Double3 &outPrimitive) override;
  32. virtual bool ReadPrimitiveData(Vec3 &outPrimitive) override;
  33. virtual bool ReadPrimitiveData(DVec3 &outPrimitive) override;
  34. virtual bool ReadPrimitiveData(Vec4 &outPrimitive) override;
  35. virtual bool ReadPrimitiveData(UVec4 &outPrimitive) override;
  36. virtual bool ReadPrimitiveData(Quat &outPrimitive) override;
  37. virtual bool ReadPrimitiveData(Mat44 &outPrimitive) override;
  38. virtual bool ReadPrimitiveData(DMat44 &outPrimitive) override;
  39. private:
  40. using StringTable = UnorderedMap<uint32, String>;
  41. StringTable mStringTable;
  42. uint32 mNextStringID = 0x80000000;
  43. };
  44. JPH_NAMESPACE_END
  45. #endif // JPH_OBJECT_STREAM