2020-08-11 11:50:16 -07:00
|
|
|
#ifndef POLSERVER_DATAEMITTER_H
|
|
|
|
|
#define POLSERVER_DATAEMITTER_H
|
|
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
2021-02-25 16:53:22 +01:00
|
|
|
#include "bscript/compiler/representation/CompiledScript.h"
|
2020-08-11 11:50:16 -07:00
|
|
|
|
|
|
|
|
namespace Pol::Bscript::Compiler
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
class DataEmitter
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
explicit DataEmitter( DataSection& );
|
|
|
|
|
|
|
|
|
|
unsigned append( double );
|
|
|
|
|
unsigned append( int );
|
|
|
|
|
unsigned store( const std::string& );
|
|
|
|
|
|
2020-12-01 02:23:03 -08:00
|
|
|
unsigned append( const std::byte* data, size_t len );
|
|
|
|
|
unsigned find( const std::byte* data, size_t len );
|
|
|
|
|
unsigned store( const std::byte* data, size_t len ); // find or append
|
2020-08-11 11:50:16 -07:00
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
DataSection& data_section;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
} // namespace Pol::Bscript::Compiler
|
|
|
|
|
|
|
|
|
|
#endif // POLSERVER_DATAEMITTER_H
|