mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-25 15:07:28 +00:00
835cf2b794
* Add AMFDeserializer Add an AMFDeserializer Reverted unrelated changes Add unit tests for AMFDeserializer Added unit tests for the AMFDeserializer Finish tests Finish the AMF deserializer tests. This commit finishes the positive test case and implements a load test case that is expected to take less than 1.5 seconds to process. Modularized tests Made tests a bit modular and split into more methods Specified binary read from file Specified that on the IO stream we are reading a binary file otherwise windows will terminate reading the binary file on seeing a 1A byte. Added more tests Added tests for unimplemented values and edited a test file to be more modular Updated test text Fix spacing Update AMFDeserializeTests.cpp * Update CMakeLists.txt * Update AMFDeserializeTests.cpp f Actually follow the AMF spec Update AMFDeserializeTests.cpp tabs Add in commented tests * Follow spec formatting Add Integer Tests Follow Spec more Follow spec * Use unique_ptr * Update AMFDeserialize.cpp Semantics Update AMFDeserialize.cpp Add new lines to EOF CMake fix * Add better std string read Co-authored-by: Daniel Seiler <xiphoseer@mailbox.org> * make not static Co-authored-by: Daniel Seiler <xiphoseer@mailbox.org>
72 lines
1.8 KiB
C++
72 lines
1.8 KiB
C++
#pragma once
|
|
|
|
#include "BitStream.h"
|
|
|
|
#include <vector>
|
|
#include <string>
|
|
|
|
class AMFValue;
|
|
class AMFDeserialize {
|
|
public:
|
|
/**
|
|
* Read an AMF3 value from a bitstream.
|
|
*
|
|
* @param inStream inStream to read value from.
|
|
* @return Returns an AMFValue with all the information from the bitStream in it.
|
|
*/
|
|
AMFValue* Read(RakNet::BitStream* inStream);
|
|
private:
|
|
/**
|
|
* @brief Private method to read a U29 integer from a bitstream
|
|
*
|
|
* @param inStream bitstream to read data from
|
|
* @return The number as an unsigned 29 bit integer
|
|
*/
|
|
uint32_t ReadU29(RakNet::BitStream* inStream);
|
|
|
|
/**
|
|
* @brief Reads a string from a bitstream
|
|
*
|
|
* @param inStream bitStream to read data from
|
|
* @return The read string
|
|
*/
|
|
std::string ReadString(RakNet::BitStream* inStream);
|
|
|
|
/**
|
|
* @brief Read an AMFDouble value from a bitStream
|
|
*
|
|
* @param inStream bitStream to read data from
|
|
* @return Double value represented as an AMFValue
|
|
*/
|
|
AMFValue* ReadAmfDouble(RakNet::BitStream* inStream);
|
|
|
|
/**
|
|
* @brief Read an AMFArray from a bitStream
|
|
*
|
|
* @param inStream bitStream to read data from
|
|
* @return Array value represented as an AMFValue
|
|
*/
|
|
AMFValue* ReadAmfArray(RakNet::BitStream* inStream);
|
|
|
|
/**
|
|
* @brief Read an AMFString from a bitStream
|
|
*
|
|
* @param inStream bitStream to read data from
|
|
* @return String value represented as an AMFValue
|
|
*/
|
|
AMFValue* ReadAmfString(RakNet::BitStream* inStream);
|
|
|
|
/**
|
|
* @brief Read an AMFInteger from a bitStream
|
|
*
|
|
* @param inStream bitStream to read data from
|
|
* @return Integer value represented as an AMFValue
|
|
*/
|
|
AMFValue* ReadAmfInteger(RakNet::BitStream* inStream);
|
|
|
|
/**
|
|
* List of strings read so far saved to be read by reference.
|
|
*/
|
|
std::vector<std::string> accessedElements;
|
|
};
|