Documentation ¶
Index ¶
- Variables
- func DumpToGoStruct(ser *Serialization)
- type AllowWalked
- type ClassBag
- type FindCallback
- type Object
- type ObjectStream
- type OverlongOption
- type ReferenceClassInformation
- type Serialization
- type StopWalkError
- type TCArray
- type TCBlockData
- type TCClass
- type TCClassData
- type TCClassDesc
- type TCClassPointer
- type TCContent
- type TCEnum
- type TCFieldDesc
- type TCNull
- type TCObject
- type TCProxyClassDesc
- type TCReference
- type TCString
- type TCStringPointer
- type TCUtf
- type TCValue
- type WalkCallback
Constants ¶
This section is empty.
Variables ¶
var AllTypecode = append(PrimitiveTypecode, ObjectTypecode...)
var JAVA_BASE_WRITE_HANDLE uint32 = 0x7e0000
JAVA_BASE_WRITE_HANDLE First wire handle to be assigned.
var JAVA_SC_BLOCK_DATA byte = 0x08
JAVA_SC_BLOCK_DATA Bit mask for ObjectStreamClass flag. Indicates Externalizable data written in Block Data mode. Added for PROTOCOL_VERSION_2.
var JAVA_SC_ENUM byte = 0x10
JAVA_SC_ENUM Bit mask for ObjectStreamClass flag. Indicates class is an enum type.
var JAVA_SC_EXTERNALIZABLE byte = 0x04
JAVA_SC_EXTERNALIZABLE Bit mask for ObjectStreamClass flag. Indicates class is Externalizable.
var JAVA_SC_SERIALIZABLE byte = 0x02
JAVA_SC_SERIALIZABLE Bit mask for ObjectStreamClass flag. Indicates class is Serializable.
var JAVA_SC_WRITE_METHOD byte = 0x01
JAVA_SC_WRITE_METHOD Bit mask for ObjectStreamClass flag. Indicates a Serializable class defines its own writeObject method.
var JAVA_STREAM_MAGIC = []byte{0xAC, 0xED}
JAVA_STREAM_MAGIC Magic Number
var JAVA_STREAM_VERSION = []byte{0x00, 0x05}
JAVA_STREAM_VERSION Version number that is written to the stream header.
var JAVA_TC_ARRAY byte = 0x75
JAVA_TC_ARRAY new Array.
var JAVA_TC_BASE byte = 0x70
JAVA_TC_BASE First tag value.
var JAVA_TC_BLOCKDATA byte = 0x77
JAVA_TC_BLOCKDATA Block of optional data. Byte following tag indicates number of bytes in this block data.
var JAVA_TC_BLOCKDATALONG byte = 0x7A
JAVA_TC_BLOCKDATALONG long Block data. The long following the tag indicates the number of bytes in this block data.
var JAVA_TC_CLASS byte = 0x76
JAVA_TC_CLASS Reference to Class.
var JAVA_TC_CLASSDESC byte = 0x72
JAVA_TC_CLASSDESC new Class Descriptor.
var JAVA_TC_ENDBLOCKDATA byte = 0x78
JAVA_TC_ENDBLOCKDATA End of optional block data blocks for an object.
var JAVA_TC_ENUM byte = 0x7E
JAVA_TC_ENUM new Enum constant.
var JAVA_TC_EXCEPTION byte = 0x7B
JAVA_TC_EXCEPTION Exception during write.
var JAVA_TC_LONGSTRING byte = 0x7C
TC_LONGSTRING Long string.
var JAVA_TC_MAX byte = 0x7F
JAVA_TC_MAX Last tag value.
var JAVA_TC_NULL byte = 0x70
JAVA_TC_NULL Null object reference.
var JAVA_TC_OBJECT byte = 0x73
JAVA_TC_OBJECT new Object.
var JAVA_TC_PROXYCLASSDESC byte = 0x7D
TC_PROXYCLASSDESC new Proxy Class Descriptor.
var JAVA_TC_REFERENCE byte = 0x71
JAVA_TC_REFERENCE Reference to an object already written into the stream.
var JAVA_TC_RESET byte = 0x79
JAVA_TC_RESET Reset stream context. All handles written into stream are reset.
var JAVA_TC_STRING byte = 0x74
JAVA_TC_STRING new String.
var NoFieldError = fmt.Errorf("Oops!")
var ObjectTypecode = []string{"[", "L"}
var PrimitiveTypecode = []string{"B", "C", "D", "F", "I", "J", "S", "Z"}
var SizeTable = map[string]int{
"B": 1,
"C": 2,
"D": 8,
"F": 4,
"I": 4,
"J": 8,
"S": 2,
"Z": 1,
}
Functions ¶
func DumpToGoStruct ¶
func DumpToGoStruct(ser *Serialization)
Types ¶
type AllowWalked ¶ added in v1.3.0
type AllowWalked interface {
Walk(callback WalkCallback) error
}
type ClassBag ¶
type ClassBag struct {
Classes []*TCClassDesc
}
func (*ClassBag) Add ¶
func (bag *ClassBag) Add(classDesc *TCClassDesc)
type FindCallback ¶ added in v1.3.0
type Object ¶
type Object interface { ToBytes() []byte ToString() string AllowWalked }
func FindObject ¶ added in v1.3.0
func FindObject(orig AllowWalked, callback FindCallback) Object
type ObjectStream ¶
func NewObjectStream ¶
func NewObjectStream(bs []byte) *ObjectStream
func NewObjectStreamFromReadSeeker ¶ added in v1.4.0
func NewObjectStreamFromReadSeeker(r io.ReadSeeker) *ObjectStream
func (*ObjectStream) AddReference ¶
func (s *ObjectStream) AddReference(obj Object)
func (*ObjectStream) FindReferenceId ¶
func (s *ObjectStream) FindReferenceId(find Object) uint32
func (*ObjectStream) GetReference ¶
func (s *ObjectStream) GetReference(handler uint32) Object
type OverlongOption ¶ added in v1.4.0
type OverlongOption int
const ( OverlongEncodingTwoBytes OverlongOption = 2 OverlongEncodingThreeBytes OverlongOption = 3 )
type Serialization ¶
func FromBytes ¶
func FromBytes(data []byte) (*Serialization, error)
func FromJDK8u20Bytes ¶ added in v1.2.0
func FromJDK8u20Bytes(data []byte) (*Serialization, error)
func FromReadSeeker ¶ added in v1.4.0
func FromReadSeeker(r io.ReadSeeker) (*Serialization, error)
func (*Serialization) ToBytes ¶
func (ois *Serialization) ToBytes() []byte
func (*Serialization) ToJDK8u20Bytes ¶ added in v1.2.0
func (ois *Serialization) ToJDK8u20Bytes() []byte
func (*Serialization) ToString ¶
func (ois *Serialization) ToString() string
func (*Serialization) Walk ¶ added in v1.3.0
func (ois *Serialization) Walk(callback WalkCallback) error
type StopWalkError ¶ added in v1.3.0
type StopWalkError struct{}
func (*StopWalkError) Error ¶ added in v1.3.0
func (s *StopWalkError) Error() string
type TCArray ¶
type TCArray struct { TypeCode byte ClassPointer *TCClassPointer ArrayData []*TCValue Handler uint32 }
func (*TCArray) DumpByteArray ¶
func (*TCArray) Walk ¶ added in v1.3.0
func (t *TCArray) Walk(callback WalkCallback) error
type TCBlockData ¶
type TCBlockData struct {
Data []byte
}
func (*TCBlockData) ToBytes ¶
func (bd *TCBlockData) ToBytes() []byte
func (*TCBlockData) ToString ¶
func (bd *TCBlockData) ToString() string
func (*TCBlockData) Walk ¶ added in v1.3.0
func (bd *TCBlockData) Walk(callback WalkCallback) error
type TCClass ¶
type TCClass struct { ClassPointer *TCClassPointer Handler uint32 }
func (*TCClass) Walk ¶ added in v1.3.0
func (c *TCClass) Walk(callback WalkCallback) error
type TCClassData ¶
type TCClassData struct { HasAnnotation bool ReferenceClass *ReferenceClassInformation FieldDatas []*TCValue ObjectAnnotation []*TCContent }
func (*TCClassData) ToBytes ¶
func (cd *TCClassData) ToBytes() []byte
func (*TCClassData) ToString ¶
func (cd *TCClassData) ToString() string
func (*TCClassData) Walk ¶ added in v1.3.0
func (cd *TCClassData) Walk(callback WalkCallback) error
type TCClassDesc ¶
type TCClassDesc struct { ClassName *TCUtf SerialVersionUID int64 ClassDescFlags byte Fields []*TCFieldDesc ClassAnnotation []*TCContent SuperClassPointer *TCClassPointer Handler uint32 }
func FindClassDesc ¶ added in v1.3.0
func FindClassDesc(orig AllowWalked, name string) *TCClassDesc
func SimpleClassDesc ¶
func SimpleClassDesc(className string, svuid int64, flags byte, handler uint32, super *TCClassPointer, fields [][3]string) *TCClassDesc
func (*TCClassDesc) FlagString ¶
func (desc *TCClassDesc) FlagString() string
func (*TCClassDesc) HasFlag ¶
func (desc *TCClassDesc) HasFlag(flag byte) bool
HasFlag Check if a TCClassDesc object has a flag
func (*TCClassDesc) ToBytes ¶
func (desc *TCClassDesc) ToBytes() []byte
func (*TCClassDesc) ToString ¶
func (desc *TCClassDesc) ToString() string
func (*TCClassDesc) Walk ¶ added in v1.3.0
func (desc *TCClassDesc) Walk(callback WalkCallback) error
type TCClassPointer ¶
type TCClassPointer struct { Flag byte NormalClassDesc *TCClassDesc ProxyClassDesc *TCProxyClassDesc Null *TCNull Reference *TCReference }
func NewNullPointer ¶
func NewNullPointer() *TCClassPointer
func (*TCClassPointer) FindClassBag ¶
func (cp *TCClassPointer) FindClassBag(stream *ObjectStream) (*ClassBag, error)
func (*TCClassPointer) ToBytes ¶
func (cp *TCClassPointer) ToBytes() []byte
func (*TCClassPointer) ToString ¶
func (cp *TCClassPointer) ToString() string
func (*TCClassPointer) Walk ¶ added in v1.3.0
func (cp *TCClassPointer) Walk(callback WalkCallback) error
type TCContent ¶
type TCContent struct { Flag byte Object *TCObject String *TCString Array *TCArray BlockData *TCBlockData Class *TCClass NormalClassDesc *TCClassDesc ProxyClassDesc *TCProxyClassDesc Null *TCNull Enum *TCEnum Reference *TCReference }
func ReadTCContent ¶ added in v1.4.0
func ReadTCContent(stream *ObjectStream) (*TCContent, error)
func (*TCContent) Walk ¶ added in v1.3.0
func (c *TCContent) Walk(callback WalkCallback) error
type TCEnum ¶
type TCEnum struct { ClassPointer *TCClassPointer ConstantName *TCStringPointer Handler uint32 }
func (*TCEnum) Walk ¶ added in v1.3.0
func (e *TCEnum) Walk(callback WalkCallback) error
type TCFieldDesc ¶
type TCFieldDesc struct { TypeCode string FieldName *TCUtf ClassName *TCStringPointer }
func (*TCFieldDesc) ToBytes ¶
func (f *TCFieldDesc) ToBytes() []byte
func (*TCFieldDesc) ToString ¶
func (f *TCFieldDesc) ToString() string
func (*TCFieldDesc) Walk ¶ added in v1.3.0
func (f *TCFieldDesc) Walk(callback WalkCallback) error
type TCNull ¶
type TCNull struct { }
func (*TCNull) Walk ¶ added in v1.3.0
func (n *TCNull) Walk(callback WalkCallback) error
type TCObject ¶
type TCObject struct { ClassPointer *TCClassPointer ClassDatas []*TCClassData Handler uint32 }
func (*TCObject) Walk ¶ added in v1.3.0
func (oo *TCObject) Walk(callback WalkCallback) error
type TCProxyClassDesc ¶
type TCProxyClassDesc struct { InterfaceNames []*TCUtf ClassAnnotation []*TCContent SuperClassPointer *TCClassPointer Handler uint32 }
func (*TCProxyClassDesc) ToBytes ¶
func (pc *TCProxyClassDesc) ToBytes() []byte
func (*TCProxyClassDesc) ToString ¶
func (pc *TCProxyClassDesc) ToString() string
func (*TCProxyClassDesc) Walk ¶ added in v1.3.0
func (pc *TCProxyClassDesc) Walk(callback WalkCallback) error
type TCReference ¶
type TCReference struct { Handler uint32 Flag byte Object *TCObject Class *TCClass NormalClassDesc *TCClassDesc ProxyClassDesc *TCProxyClassDesc String *TCString Array *TCArray Enum *TCEnum }
func (*TCReference) ToBytes ¶
func (r *TCReference) ToBytes() []byte
func (*TCReference) ToString ¶
func (r *TCReference) ToString() string
func (*TCReference) Walk ¶ added in v1.3.0
func (r *TCReference) Walk(callback WalkCallback) error
Walk We don't walk into TCReference, because it's field are all the pointer that walked before
type TCString ¶
func NewTCString ¶
func (*TCString) Walk ¶ added in v1.3.0
func (so *TCString) Walk(callback WalkCallback) error
type TCStringPointer ¶
type TCStringPointer struct { IsRef bool String *TCString Reference *TCReference }
func NewTCStringPointer ¶
func NewTCStringPointer(data string, handler uint32) *TCStringPointer
func (*TCStringPointer) ToBytes ¶
func (sp *TCStringPointer) ToBytes() []byte
func (*TCStringPointer) ToString ¶
func (sp *TCStringPointer) ToString() string
func (*TCStringPointer) Walk ¶ added in v1.3.0
func (sp *TCStringPointer) Walk(callback WalkCallback) error
type TCUtf ¶
type TCUtf struct { Data string OverlongSize OverlongOption }
func (*TCUtf) SetOverlongSize ¶ added in v1.4.0
func (u *TCUtf) SetOverlongSize(size OverlongOption)
func (*TCUtf) Walk ¶ added in v1.3.0
func (u *TCUtf) Walk(callback WalkCallback) error
type TCValue ¶
type TCValue struct { TypeCode string Byte byte // byte in Java Char uint16 // char in Java Double float64 // double in Java Float float32 // float in Java Integer int32 // int in Java Long int64 // long in Java Short int16 // short in Java Boolean bool // bool in Java Object Object // object in Java }
func NewTCValueBytes ¶
func (*TCValue) Walk ¶ added in v1.3.0
func (t *TCValue) Walk(callback WalkCallback) error
type WalkCallback ¶ added in v1.3.0
Source Files ¶
- buffer.go
- builder.go
- classbag.go
- go-dumper.go
- model.go
- parser.go
- tc_array.go
- tc_blockdata.go
- tc_class.go
- tc_classdata.go
- tc_classpointer.go
- tc_content.go
- tc_enum.go
- tc_fielddesc.go
- tc_normalclassdesc.go
- tc_null.go
- tc_object.go
- tc_proxyclassdesc.go
- tc_reference.go
- tc_string.go
- tc_stringpointer.go
- tc_utf.go
- tc_value.go
- walker.go