summaryrefslogtreecommitdiff
path: root/c++/codec-minecraft
diff options
context:
space:
mode:
Diffstat (limited to 'c++/codec-minecraft')
-rw-r--r--c++/codec-minecraft/.nix/derivation.nix32
-rw-r--r--c++/codec-minecraft/SConscript38
-rw-r--r--c++/codec-minecraft/SConstruct66
-rw-r--r--c++/codec-minecraft/minecraft.h116
-rw-r--r--c++/codec-minecraft/var_int_data.cpp36
-rw-r--r--c++/codec-minecraft/var_int_data.h31
6 files changed, 0 insertions, 319 deletions
diff --git a/c++/codec-minecraft/.nix/derivation.nix b/c++/codec-minecraft/.nix/derivation.nix
deleted file mode 100644
index 7704d13..0000000
--- a/c++/codec-minecraft/.nix/derivation.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib
-, stdenvNoCC
-, scons
-, clang
-, clang-tools
-, version
-, forstio
-}:
-
-let
-
-in stdenvNoCC.mkDerivation {
- pname = "forstio-codec-minecraft";
- inherit version;
- src = ./..;
-
- enableParallelBuilding = true;
-
- nativeBuildInputs = [
- scons
- clang
- clang-tools
- ];
-
- buildInputs = [
- forstio.core
- forstio.async
- forstio.codec
- ];
-
- outputs = ["out" "dev"];
-}
diff --git a/c++/codec-minecraft/SConscript b/c++/codec-minecraft/SConscript
deleted file mode 100644
index 4d1deab..0000000
--- a/c++/codec-minecraft/SConscript
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/false
-
-import os
-import os.path
-import glob
-
-
-Import('env')
-
-dir_path = Dir('.').abspath
-
-# Environment for base library
-codec_minecraft_env = env.Clone();
-
-codec_minecraft_env.sources = sorted(glob.glob(dir_path + "/*.cpp"))
-codec_minecraft_env.headers = sorted(glob.glob(dir_path + "/*.h"))
-
-env.sources += codec_minecraft_env.sources;
-env.headers += codec_minecraft_env.headers;
-
-## Shared lib
-objects_shared = []
-codec_minecraft_env.add_source_files(objects_shared, codec_minecraft_env.sources, shared=True);
-codec_minecraft_env.library_shared = codec_minecraft_env.SharedLibrary('#build/forstio-codec-minecraft', [objects_shared]);
-
-## Static lib
-objects_static = []
-codec_minecraft_env.add_source_files(objects_static, codec_minecraft_env.sources, shared=False);
-codec_minecraft_env.library_static = codec_minecraft_env.StaticLibrary('#build/forstio-codec-minecraft', [objects_static]);
-
-# Set Alias
-env.Alias('library_codec_minecraft', [codec_minecraft_env.library_shared, codec_minecraft_env.library_static]);
-
-env.targets += ['library_codec_minecraft'];
-
-# Install
-env.Install('$prefix/lib/', [codec_minecraft_env.library_shared, codec_minecraft_env.library_static]);
-env.Install('$prefix/include/forstio/codec/minecraft/', [codec_minecraft_env.headers]);
diff --git a/c++/codec-minecraft/SConstruct b/c++/codec-minecraft/SConstruct
deleted file mode 100644
index edd5f57..0000000
--- a/c++/codec-minecraft/SConstruct
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env python3
-
-import sys
-import os
-import os.path
-import glob
-import re
-
-
-if sys.version_info < (3,):
- def isbasestring(s):
- return isinstance(s,basestring)
-else:
- def isbasestring(s):
- return isinstance(s, (str,bytes))
-
-def add_kel_source_files(self, sources, filetype, lib_env=None, shared=False, target_post=""):
-
- if isbasestring(filetype):
- dir_path = self.Dir('.').abspath
- filetype = sorted(glob.glob(dir_path+"/"+filetype))
-
- for path in filetype:
- target_name = re.sub( r'(.*?)(\.cpp|\.c\+\+)', r'\1' + target_post, path )
- if shared:
- target_name+='.os'
- sources.append( self.SharedObject( target=target_name, source=path ) )
- else:
- target_name+='.o'
- sources.append( self.StaticObject( target=target_name, source=path ) )
- pass
-
-def isAbsolutePath(key, dirname, env):
- assert os.path.isabs(dirname), "%r must have absolute path syntax" % (key,)
-
-env_vars = Variables(
- args=ARGUMENTS
-)
-
-env_vars.Add('prefix',
- help='Installation target location of build results and headers',
- default='/usr/local/',
- validator=isAbsolutePath
-)
-
-env=Environment(ENV=os.environ, variables=env_vars, CPPPATH=[],
- CPPDEFINES=['SAW_UNIX'],
- CXXFLAGS=['-std=c++20','-g','-Wall','-Wextra'],
- LIBS=['forstio-codec'])
-env.__class__.add_source_files = add_kel_source_files
-env.Tool('compilation_db');
-env.cdb = env.CompilationDatabase('compile_commands.json');
-
-env.objects = [];
-env.sources = [];
-env.headers = [];
-env.targets = [];
-
-Export('env')
-SConscript('SConscript')
-
-env.Alias('cdb', env.cdb);
-env.Alias('all', [env.targets]);
-env.Default('all');
-
-env.Alias('install', '$prefix')
diff --git a/c++/codec-minecraft/minecraft.h b/c++/codec-minecraft/minecraft.h
deleted file mode 100644
index 670b019..0000000
--- a/c++/codec-minecraft/minecraft.h
+++ /dev/null
@@ -1,116 +0,0 @@
-#pragma once
-
-#include <forstio/core/error.h>
-#include <forstio/codec/data.h>
-#include <forstio/codec/stream_value.h>
-
-namespace saw {
-namespace encode {
-struct Minecraft {};
-struct VarIntTransport {};
-}
-
-template<typename T>
-class data<T, encode::Minecraft> {
-private:
- ring_buffer buffer_;
-public:
- data() = default;
- data(std::size_t size):
- buffer_{size}
- {}
-
- buffer& get_buffer(){
- return buffer_;
- }
-};
-
-namespace mc {
-namespace impl {
-union minecraft_signed_four_conversion {
- int32_t s;
- uint32_t u;
-};
-
-union minecraft_signed_eight_conversion {
- int64_t s;
- uint64_t u;
-};
-
-template<typename Schema, typename FromEnc>
-class minecraft_encode {
- static_assert(always_false<Schema, FromEnc>, "This schema type is not being handled by the Minecraft encoding.");
-};
-
-template<typename FromEnc>
-class minecraft_encode<schema::VarInt, FromEnc>{
- static error_or<void> encode(const data<schema::VarInt, FromEnc>& from, buffer& to){
- uint8_t encode_index = 0;
- minecraft_signed_four_conversion value;
- value.s = from.get();
-
- /**
- * VarInt max length is 5 bytes
- */
- std::array<uint8_t, 5> encode_data;
-
- do {
- uint8_t step = static_cast<uint8_t>(value.u & 0x7F);
- value.u = value.u >> 7;
- if(value.u != 0){
- step |= 0x80;
- }
- encode_data[encode_index] = step;
- ++encode_index;
- }while(value.u != 0);
-
- auto err = buffer.push(encode_data[0], encode_index);
- if (!err.template is_type<err::no_error>()) {
- return err;
- }
-
- return no_error();
- }
-};
-
-template<typename Schema, typename FromEnc>
-class minecraft_decode {
- static_assert(always_false<Schema, FromEnc>, "This schema type is not being handled by the Minecraft encoding.");
-};
-
-template<typename FromEnc>
-class minecraft_decode<schema::VarInt, FromEnc>{
- static error_or<void> decode(buffer& from, data<schema::VarInt, FromEnc>& to){
- uint8_t num_reads = 0;
-
- minecraft_signed_four_conversion value;
- value.u = 0;
-
- uint8_t read{};
- do {
- auto err = from.pop(read);
- if( !err.template is_type<err::no_error>() ){
- return err;
- }
- value.u |= ((read & 0x7F) << (7*num_reads));
- ++num_reads;
- if(num_reads > 5){
- return make_error<err::>();
- }
- } while( (read & 0x80) != 0);
-
- to.set(value.s);
-
- return no_error();
- }
-};
-
-}
-}
-
-
-
-namespace mc {
-
-}
-}
diff --git a/c++/codec-minecraft/var_int_data.cpp b/c++/codec-minecraft/var_int_data.cpp
deleted file mode 100644
index 59e4317..0000000
--- a/c++/codec-minecraft/var_int_data.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-#include "var_int_data.h"
-
-namespace saw {
-data<schema::VarInt,encode::Native>::data():
- data_{}
-{}
-
-data<schema::VarInt,encode::Native>::data(int32_t data):
- data_{data}
-{}
-
-int32_t data<schema::VarInt, encode::Native>::get() const {
- return data_;
-}
-
-void data<schema::VarInt, encode::Native>::set(int32_t data) {
- data_ = data;
-}
-
-data<schema::VarLong,encode::Native>::data():
- data_{}
-{}
-
-data<schema::VarLong,encode::Native>::data(int64_t data):
- data_{data}
-{}
-
-int64_t data<schema::VarLong, encode::Native>::get() const {
- return data_;
-}
-
-void data<schema::VarLong, encode::Native>::set(int64_t data) {
- data_ = data;
-}
-
-}
diff --git a/c++/codec-minecraft/var_int_data.h b/c++/codec-minecraft/var_int_data.h
deleted file mode 100644
index 807c930..0000000
--- a/c++/codec-minecraft/var_int_data.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#pragma once
-
-#include <forstio/core/data.h>
-
-namespace saw {
-template<>
-class data<schema::VarInt, encode::Native> {
-private:
- int32_t data_;
-public:
- data();
- data(int32_t data);
-
- int32_t get() const;
- void set(int32_t);
-};
-
-template<>
-class data<schema::VarLong, encode::Native> {
-private:
- int64_t data_;
-public:
- data();
- data(int64_t data);
-
- int64_t get() const;
- void set(int64_t);
-};
-
-
-}