本文整理汇总了Golang中github.com/FactomProject/factomd/common/primitives.Hash.UnmarshalBinaryData方法的典型用法代码示例。如果您正苦于以下问题:Golang Hash.UnmarshalBinaryData方法的具体用法?Golang Hash.UnmarshalBinaryData怎么用?Golang Hash.UnmarshalBinaryData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/FactomProject/factomd/common/primitives.Hash
的用法示例。
在下文中一共展示了Hash.UnmarshalBinaryData方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: UnmarshalBinaryData
func (m *DirectoryBlockSignature) UnmarshalBinaryData(data []byte) (newData []byte, err error) {
newData = data
if newData[0] != m.Type() {
return nil, fmt.Errorf("Invalid Message type")
}
newData = newData[1:]
// TimeStamp
m.Timestamp = new(primitives.Timestamp)
newData, err = m.Timestamp.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.SysHeight, newData = binary.BigEndian.Uint32(newData[0:4]), newData[4:]
hash := new(primitives.Hash)
newData, err = hash.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.SysHash = hash
m.DBHeight, newData = binary.BigEndian.Uint32(newData[0:4]), newData[4:]
m.VMIndex, newData = int(newData[0]), newData[1:]
header := directoryBlock.NewDBlockHeader()
newData, err = header.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.DirectoryBlockHeader = header
hash = new(primitives.Hash)
newData, err = hash.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.ServerIdentityChainID = hash
//if len(newData) > 0 {
sig := new(primitives.Signature)
newData, err = sig.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.DBSignature = sig
//}
if len(newData) > 0 {
sig := new(primitives.Signature)
newData, err = sig.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.Signature = sig
}
return nil, nil
}
示例2: UnmarshalBinaryData
func (m *DirectoryBlockSignature) UnmarshalBinaryData(data []byte) (newData []byte, err error) {
defer func() {
if r := recover(); r != nil {
err = fmt.Errorf("Error unmarshalling: %v", r)
}
}()
newData = data[1:]
m.DirectoryBlockHeight, newData = binary.BigEndian.Uint32(newData[0:4]), newData[4:]
hash := new(primitives.Hash)
newData, err = hash.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.DirectoryBlockKeyMR = hash
hash = new(primitives.Hash)
newData, err = hash.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.ServerIdentityChainID = hash
if len(newData) > 0 {
sig := new(primitives.Signature)
newData, err = sig.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.Signature = sig
}
return nil, nil
}
示例3: UnmarshalBinaryData
func (m *Heartbeat) UnmarshalBinaryData(data []byte) (newData []byte, err error) {
defer func() {
if r := recover(); r != nil {
err = fmt.Errorf("Error unmarshalling HeartBeat: %v", r)
}
}()
newData = data
if newData[0] != m.Type() {
return nil, fmt.Errorf("Invalid Message type")
}
newData = newData[1:]
m.Timestamp = new(primitives.Timestamp)
newData, err = m.Timestamp.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.SecretNumber, newData = binary.BigEndian.Uint32(newData[0:4]), newData[4:]
hash := new(primitives.Hash)
newData, err = hash.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.DBlockHash = hash
hash = new(primitives.Hash)
newData, err = hash.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.IdentityChainID = hash
if len(newData) > 0 {
sig := new(primitives.Signature)
newData, err = sig.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.Signature = sig
}
return nil, nil
}
示例4: UnmarshalBinaryData
func (m *Heartbeat) UnmarshalBinaryData(data []byte) (newData []byte, err error) {
defer func() {
if r := recover(); r != nil {
err = fmt.Errorf("Error unmarshalling: %v", r)
}
}()
data = data[1:] // skip type
newData, err = m.Timestamp.UnmarshalBinaryData(data)
if err != nil {
return nil, err
}
hash := new(primitives.Hash)
newData, err = hash.UnmarshalBinaryData(data)
if err != nil {
return nil, err
}
m.DBlockHash = hash
hash = new(primitives.Hash)
newData, err = hash.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.IdentityChainID = hash
if len(newData) > 0 {
sig := new(primitives.Signature)
newData, err = sig.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.Signature = sig
}
return nil, nil
}
示例5: UnmarshalBinaryData
func (m *EOM) UnmarshalBinaryData(data []byte) (newData []byte, err error) {
defer func() {
if r := recover(); r != nil {
err = fmt.Errorf("Error unmarshalling: %v", r)
}
}()
newData = data[1:]
newData, err = m.Timestamp.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.Minute, newData = newData[0], newData[1:]
if m.Minute < 0 || m.Minute >= 10 {
return nil, fmt.Errorf("Minute number is out of range")
}
m.DirectoryBlockHeight, newData = binary.BigEndian.Uint32(newData[0:4]), newData[4:]
hash := new(primitives.Hash)
newData, err = hash.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.IdentityChainID = hash
if len(newData) > 0 {
sig := new(primitives.Signature)
newData, err = sig.UnmarshalBinaryData(newData)
if err != nil {
return nil, err
}
m.Signature = sig
}
return data, nil
}