Top Description Inners Fields Constructors Methods
org.jruby.runtime.marshal

public Class MarshalDumper

extends Object
Class Inheritance
Imports
org.jcodings.Encoding, org.jcodings.specific.USASCIIEncoding, .UTF8Encoding, org.jruby.Ruby, .RubyArray, .RubyBasicObject, .RubyBignum, .RubyBoolean, .RubyClass, .RubyData, .RubyFixnum, .RubyFloat, .RubyHash, .RubyModule, .RubyRegexp, .RubyString, .RubyStruct, .RubySymbol, org.jruby.internal.runtime.methods.DynamicMethod, org.jruby.runtime.ClassIndex, .Constants, .ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.callsite.CacheEntry, org.jruby.runtime.encoding.MarshalEncoding, org.jruby.runtime.ivars.VariableAccessor, org.jruby.util.ByteList, org.jruby.util.collections.HashMapInt, org.jruby.util.io.RubyOutputStream, java.io.Serializable, java.util.Map, java.util.function.BiConsumer

Marshals objects into Ruby's binary marshal format.

Nested and Inner Type Summary

Modifier and TypeClass and Description
private class
public static interface
public static interface

Field Summary

Modifier and TypeField and Description
pack-priv IRubyObject
private int
private final int
pack-priv boolean
private final HashMapInt<IRubyObject>
private HashMapInt<RubySymbol>
pack-priv int

Constructor Summary

AccessConstructor and Description
public
MarshalDumper(int depthLimit)

Method Summary

Modifier and TypeMethod and Description
private Map<String, VariableAccessor>
checkVariables(IRubyObject value, boolean shouldMarshalEncoding)

private void
private void
private Map<String, VariableAccessor>
private Map<String, VariableAccessor>
countVariables(IRubyObject value, int extraSize)

private void
private void
dumpBaseObject(ThreadContext context, RubyOutputStream out, IRubyObject value, ClassIndex nativeClassIndex)

public void
public void
private RubyClass
dumpExtended(ThreadContext context, RubyOutputStream out, RubyClass type)

w_extended

public void
public void
private void
dumpType(ThreadContext context, RubyOutputStream out, IRubyObject value, ClassIndex nativeClassIndex)

private void
private static void
public void
public void
dumpVariables(ThreadContext context, RubyOutputStream out, IRubyObject value, int extraSize)

public <T extends IRubyObject> void
dumpVariables(ThreadContext context, RubyOutputStream out, T value, int extraSize, MarshalDumper.VariableSupplier<T> extra)

public static RubySymbol
private HashMapInt<RubySymbol>
private boolean
private static boolean
private boolean
private boolean
private void
private int
private int
public void
private void
private static boolean
public void
private void
public void
public void
private void
public void
public void
private void
private void
public void
writeByte(RubyOutputStream out, int value)

public void
public void
public void
writeInt(RubyOutputStream out, int value)

private void
public void
public void
public void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

currentValueback to summary
pack-priv IRubyObject currentValue
depthback to summary
private int depth
depthLimitback to summary
private final int depthLimit
doVariablesback to summary
pack-priv boolean doVariables
linkCacheback to summary
private final HashMapInt<IRubyObject> linkCache
symbolCacheback to summary
private HashMapInt<RubySymbol> symbolCache
variableCountback to summary
pack-priv int variableCount

Constructor Detail

MarshalDumperback to summary
public MarshalDumper(int depthLimit)

Method Detail

checkVariablesback to summary
private Map<String, VariableAccessor> checkVariables(IRubyObject value, boolean shouldMarshalEncoding)
checkVariablesForMarshalback to summary
private void checkVariablesForMarshal(String name, VariableAccessor accessor)
clearVariableStateback to summary
private void clearVariableState()
countVariablesback to summary
private Map<String, VariableAccessor> countVariables(IRubyObject value)
countVariablesback to summary
private Map<String, VariableAccessor> countVariables(IRubyObject value, int extraSize)
countVariablesForMarshalback to summary
private void countVariablesForMarshal(String name, VariableAccessor accessor)
dumpBaseObjectback to summary
private void dumpBaseObject(ThreadContext context, RubyOutputStream out, IRubyObject value, ClassIndex nativeClassIndex)
dumpDefaultObjectHeaderback to summary
public void dumpDefaultObjectHeader(ThreadContext context, RubyOutputStream out, RubyClass type)
dumpDefaultObjectHeaderback to summary
public void dumpDefaultObjectHeader(ThreadContext context, RubyOutputStream out, char tp, RubyClass type)
dumpExtendedback to summary
private RubyClass dumpExtended(ThreadContext context, RubyOutputStream out, RubyClass type)

w_extended

dumpObjectback to summary
public void dumpObject(ThreadContext context, RubyOutputStream out, IRubyObject value)
dumpSymbolback to summary
public void dumpSymbol(RubyOutputStream out, ByteList value)
dumpTypeback to summary
private void dumpType(ThreadContext context, RubyOutputStream out, IRubyObject value, ClassIndex nativeClassIndex)
dumpUserdefBaseback to summary
private void dumpUserdefBase(ThreadContext context, RubyOutputStream out, RubyClass klass, RubyString marshaled)
dumpVariableback to summary
private static void dumpVariable(ThreadContext context, RubyOutputStream out, MarshalDumper marshal, String name, Object value)
dumpVariablesback to summary
public void dumpVariables(ThreadContext context, RubyOutputStream out, IRubyObject value)
dumpVariablesback to summary
public void dumpVariables(ThreadContext context, RubyOutputStream out, IRubyObject value, int extraSize)
dumpVariablesback to summary
public <T extends IRubyObject> void dumpVariables(ThreadContext context, RubyOutputStream out, T value, int extraSize, MarshalDumper.VariableSupplier<T> extra)
getPathFromClassback to summary
public static RubySymbol getPathFromClass(ThreadContext context, RubyModule clazz)
getSymbolCacheback to summary
private HashMapInt<RubySymbol> getSymbolCache()
hasSingletonMethodsback to summary
private boolean hasSingletonMethods(RubyClass type)
isMarshalFixnumback to summary
private static boolean isMarshalFixnum(RubyFixnum fixnum)
isRegisteredback to summary
private boolean isRegistered(IRubyObject value)
isSymbolRegisteredback to summary
private boolean isSymbolRegistered(RubySymbol sym)
registerback to summary
private void register(IRubyObject value)
registeredIndexback to summary
private int registeredIndex(IRubyObject value)
registeredSymbolIndexback to summary
private int registeredSymbolIndex(RubySymbol sym)
registerLinkTargetback to summary
public void registerLinkTarget(IRubyObject newObject)
registerSymbolback to summary
private void registerSymbol(RubySymbol sym)
shouldBeRegisteredback to summary
private static boolean shouldBeRegistered(IRubyObject value)
startback to summary
public void start(RubyOutputStream out)
userCommonback to summary
private void userCommon(ThreadContext context, RubyOutputStream out, IRubyObject value, CacheEntry cacheEntry)
userMarshalback to summary
public void userMarshal(ThreadContext context, RubyOutputStream out, IRubyObject value, CacheEntry entry)
userMarshalback to summary
public void userMarshal(ThreadContext context, RubyOutputStream out, IRubyObject value)
userNewCommonback to summary
private void userNewCommon(ThreadContext context, RubyOutputStream out, IRubyObject value, CacheEntry entry)
userNewMarshalback to summary
public void userNewMarshal(ThreadContext context, RubyOutputStream out, IRubyObject value, CacheEntry entry)
userNewMarshalback to summary
public void userNewMarshal(ThreadContext context, RubyOutputStream out, IRubyObject value)
writeAndRegisterback to summary
private void writeAndRegister(ThreadContext context, RubyOutputStream out, IRubyObject value)
writeAndRegisterSymbolback to summary
private void writeAndRegisterSymbol(RubyOutputStream out, RubySymbol sym)
writeByteback to summary
public void writeByte(RubyOutputStream out, int value)
writeDirectlyback to summary
public void writeDirectly(ThreadContext context, RubyOutputStream out, IRubyObject value)
writeEncodingback to summary
public void writeEncoding(ThreadContext context, RubyOutputStream out, Encoding encoding)
writeIntback to summary
public void writeInt(RubyOutputStream out, int value)
writeObjectDataback to summary
private void writeObjectData(ThreadContext context, RubyOutputStream out, IRubyObject value)
writeStringback to summary
public void writeString(RubyOutputStream out, String value)
writeStringback to summary
public void writeString(RubyOutputStream out, ByteList value)
writeUserClassback to summary
public void writeUserClass(ThreadContext context, RubyOutputStream out, RubyClass type)
org.jruby.runtime.marshal back to summary

private Class MarshalDumper.VariableDumper

extends Object
implements BiConsumer<String, VariableAccessor>
Class Inheritance
All Implemented Interfaces
java.util.function.BiConsumer

Field Summary

Modifier and TypeField and Description
private final ThreadContext
private final RubyOutputStream
private final IRubyObject

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
accept(String
the first input argument
name
,
VariableAccessor
the second input argument
accessor
)

Implements java.util.function.BiConsumer.accept.

Performs this operation on the given arguments.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

contextback to summary
private final ThreadContext context
outback to summary
private final RubyOutputStream out
valueback to summary
private final IRubyObject value

Constructor Detail

VariableDumperback to summary
public VariableDumper(ThreadContext context, RubyOutputStream out, IRubyObject value)

Method Detail

acceptback to summary
public void accept(String name, VariableAccessor accessor)

Implements java.util.function.BiConsumer.accept.

Doc from java.util.function.BiConsumer.accept.

Performs this operation on the given arguments.

Parameters
name:String

the first input argument

accessor:VariableAccessor

the second input argument

Annotations
@Override
org.jruby.runtime.marshal back to summary

public Interface MarshalDumper.VariableReceiver


Method Summary

Modifier and TypeMethod and Description
public void

Method Detail

receiveback to summary
public void receive(MarshalDumper marshal, ThreadContext context, RubyOutputStream out, String name, IRubyObject value)
org.jruby.runtime.marshal back to summary

public Interface MarshalDumper.VariableSupplier<T>


Method Summary

Modifier and TypeMethod and Description
public void

Method Detail

forEachback to summary
public void forEach(MarshalDumper marshal, ThreadContext context, RubyOutputStream out, T value, MarshalDumper.VariableReceiver receiver)