Skip to content
This repository
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 61 lines (46 sloc) 0.98 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
#ifndef RBX_MARSHAL_HPP
#define RBX_MARSHAL_HPP

#include <iostream>
#include <sstream>

#include "prelude.hpp"

namespace rubinius {

  class Object;

  class InstructionSequence;
  class CompiledCode;
  class String;
  class Encoding;
  class Array;
  class Bignum;
  class Float;
  class Symbol;
  class Tuple;

  class UnMarshaller {
  public:
    STATE;
    std::istream& stream;

    UnMarshaller(STATE, std::istream& stream) :
      state(state), stream(stream) { }

    Object* unmarshal();

    Object* get_int();
    String* get_string();
    Symbol* get_symbol();
    Tuple* get_tuple();

    Float* get_float();
    InstructionSequence* get_iseq();
    CompiledCode* get_compiled_code();
    Object* get_constant();
    Object* get_encoding();

  public:
    class Error {
      const char* message_;

    public:
      Error(const char* msg)
        : message_(msg)
      {}

      const char* message() const {
        return message_;
      }
    };
  };
}

#endif
Something went wrong with that request. Please try again.