ObjectStreamBinaryIn.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // SPDX-FileCopyrightText: 2021 Jorrit Rouwe
  2. // SPDX-License-Identifier: MIT
  3. #pragma once
  4. #include <Jolt/ObjectStream/ObjectStreamIn.h>
  5. namespace JPH {
  6. /// Implementation of ObjectStream binary input stream.
  7. class ObjectStreamBinaryIn : public ObjectStreamIn
  8. {
  9. public:
  10. /// Constructor
  11. explicit ObjectStreamBinaryIn(istream &inStream);
  12. ///@name Input type specific operations
  13. virtual bool ReadDataType(EDataType &outType) override;
  14. virtual bool ReadName(string &outName) override;
  15. virtual bool ReadIdentifier(Identifier &outIdentifier) override;
  16. virtual bool ReadCount(uint32 &outCount) override;
  17. virtual bool ReadPrimitiveData(uint8 &outPrimitive) override;
  18. virtual bool ReadPrimitiveData(uint16 &outPrimitive) override;
  19. virtual bool ReadPrimitiveData(int &outPrimitive) override;
  20. virtual bool ReadPrimitiveData(uint32 &outPrimitive) override;
  21. virtual bool ReadPrimitiveData(uint64 &outPrimitive) override;
  22. virtual bool ReadPrimitiveData(float &outPrimitive) override;
  23. virtual bool ReadPrimitiveData(bool &outPrimitive) override;
  24. virtual bool ReadPrimitiveData(string &outPrimitive) override;
  25. virtual bool ReadPrimitiveData(Float3 &outPrimitive) override;
  26. virtual bool ReadPrimitiveData(Vec3 &outPrimitive) override;
  27. virtual bool ReadPrimitiveData(Vec4 &outPrimitive) override;
  28. virtual bool ReadPrimitiveData(Quat &outPrimitive) override;
  29. virtual bool ReadPrimitiveData(Mat44 &outPrimitive) override;
  30. private:
  31. using StringTable = unordered_map<uint32, string>;
  32. StringTable mStringTable;
  33. uint32 mNextStringID;
  34. };
  35. } // JPH