Documentation ¶
Index ¶
- Variables
- func RegisterContainerAgentServer(s *grpc.Server, srv ContainerAgentServer)
- func RegisterVirtualHardDiskAgentServer(s *grpc.Server, srv VirtualHardDiskAgentServer)
- type Container
- func (*Container) Descriptor() ([]byte, []int)
- func (m *Container) GetId() string
- func (m *Container) GetLocationName() string
- func (m *Container) GetName() string
- func (m *Container) GetPath() string
- func (m *Container) GetStatus() *common.Status
- func (*Container) ProtoMessage()
- func (m *Container) Reset()
- func (m *Container) String() string
- func (m *Container) XXX_DiscardUnknown()
- func (m *Container) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *Container) XXX_Merge(src proto.Message)
- func (m *Container) XXX_Size() int
- func (m *Container) XXX_Unmarshal(b []byte) error
- type ContainerAgentClient
- type ContainerAgentServer
- type ContainerRequest
- func (*ContainerRequest) Descriptor() ([]byte, []int)
- func (m *ContainerRequest) GetContainers() []*Container
- func (m *ContainerRequest) GetOperationType() common.Operation
- func (*ContainerRequest) ProtoMessage()
- func (m *ContainerRequest) Reset()
- func (m *ContainerRequest) String() string
- func (m *ContainerRequest) XXX_DiscardUnknown()
- func (m *ContainerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *ContainerRequest) XXX_Merge(src proto.Message)
- func (m *ContainerRequest) XXX_Size() int
- func (m *ContainerRequest) XXX_Unmarshal(b []byte) error
- type ContainerResponse
- func (*ContainerResponse) Descriptor() ([]byte, []int)
- func (m *ContainerResponse) GetContainers() []*Container
- func (m *ContainerResponse) GetError() string
- func (m *ContainerResponse) GetResult() *wrappers.BoolValue
- func (*ContainerResponse) ProtoMessage()
- func (m *ContainerResponse) Reset()
- func (m *ContainerResponse) String() string
- func (m *ContainerResponse) XXX_DiscardUnknown()
- func (m *ContainerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *ContainerResponse) XXX_Merge(src proto.Message)
- func (m *ContainerResponse) XXX_Size() int
- func (m *ContainerResponse) XXX_Unmarshal(b []byte) error
- type ContainerType
- type UnimplementedContainerAgentServer
- type UnimplementedVirtualHardDiskAgentServer
- type VirtualHardDisk
- func (*VirtualHardDisk) Descriptor() ([]byte, []int)
- func (m *VirtualHardDisk) GetAttachedNodeName() string
- func (m *VirtualHardDisk) GetAttachedVirtualmachineName() string
- func (m *VirtualHardDisk) GetBlocksizebytes() int32
- func (m *VirtualHardDisk) GetContainerName() string
- func (m *VirtualHardDisk) GetControllerlocation() int64
- func (m *VirtualHardDisk) GetControllernumber() int64
- func (m *VirtualHardDisk) GetDisknumber() int64
- func (m *VirtualHardDisk) GetDynamic() bool
- func (m *VirtualHardDisk) GetGroupName() string
- func (m *VirtualHardDisk) GetId() string
- func (m *VirtualHardDisk) GetLocationName() string
- func (m *VirtualHardDisk) GetLogicalsectorbytes() int32
- func (m *VirtualHardDisk) GetName() string
- func (m *VirtualHardDisk) GetPath() string
- func (m *VirtualHardDisk) GetPhysicalsectorbytes() int32
- func (m *VirtualHardDisk) GetScsipath() string
- func (m *VirtualHardDisk) GetSize() int64
- func (m *VirtualHardDisk) GetStatus() *common.Status
- func (m *VirtualHardDisk) GetVirtualmachineName() string
- func (*VirtualHardDisk) ProtoMessage()
- func (m *VirtualHardDisk) Reset()
- func (m *VirtualHardDisk) String() string
- func (m *VirtualHardDisk) XXX_DiscardUnknown()
- func (m *VirtualHardDisk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *VirtualHardDisk) XXX_Merge(src proto.Message)
- func (m *VirtualHardDisk) XXX_Size() int
- func (m *VirtualHardDisk) XXX_Unmarshal(b []byte) error
- type VirtualHardDiskAgentClient
- type VirtualHardDiskAgentServer
- type VirtualHardDiskRequest
- func (*VirtualHardDiskRequest) Descriptor() ([]byte, []int)
- func (m *VirtualHardDiskRequest) GetOperationType() common.Operation
- func (m *VirtualHardDiskRequest) GetVirtualHardDisks() []*VirtualHardDisk
- func (*VirtualHardDiskRequest) ProtoMessage()
- func (m *VirtualHardDiskRequest) Reset()
- func (m *VirtualHardDiskRequest) String() string
- func (m *VirtualHardDiskRequest) XXX_DiscardUnknown()
- func (m *VirtualHardDiskRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *VirtualHardDiskRequest) XXX_Merge(src proto.Message)
- func (m *VirtualHardDiskRequest) XXX_Size() int
- func (m *VirtualHardDiskRequest) XXX_Unmarshal(b []byte) error
- type VirtualHardDiskResponse
- func (*VirtualHardDiskResponse) Descriptor() ([]byte, []int)
- func (m *VirtualHardDiskResponse) GetError() string
- func (m *VirtualHardDiskResponse) GetResult() *wrappers.BoolValue
- func (m *VirtualHardDiskResponse) GetVirtualHardDisks() []*VirtualHardDisk
- func (*VirtualHardDiskResponse) ProtoMessage()
- func (m *VirtualHardDiskResponse) Reset()
- func (m *VirtualHardDiskResponse) String() string
- func (m *VirtualHardDiskResponse) XXX_DiscardUnknown()
- func (m *VirtualHardDiskResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *VirtualHardDiskResponse) XXX_Merge(src proto.Message)
- func (m *VirtualHardDiskResponse) XXX_Size() int
- func (m *VirtualHardDiskResponse) XXX_Unmarshal(b []byte) error
Constants ¶
This section is empty.
Variables ¶
var ContainerType_name = map[int32]string{
0: "UNKNOWN",
1: "SAN",
2: "CSV",
3: "SMB",
4: "DAS",
}
var ContainerType_value = map[string]int32{
"UNKNOWN": 0,
"SAN": 1,
"CSV": 2,
"SMB": 3,
"DAS": 4,
}
Functions ¶
func RegisterContainerAgentServer ¶
func RegisterContainerAgentServer(s *grpc.Server, srv ContainerAgentServer)
func RegisterVirtualHardDiskAgentServer ¶
func RegisterVirtualHardDiskAgentServer(s *grpc.Server, srv VirtualHardDiskAgentServer)
Types ¶
type Container ¶
type Container struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` Path string `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"` Status *common.Status `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"` LocationName string `protobuf:"bytes,6,opt,name=locationName,proto3" json:"locationName,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*Container) Descriptor ¶
func (*Container) GetLocationName ¶
func (*Container) ProtoMessage ¶
func (*Container) ProtoMessage()
func (*Container) XXX_DiscardUnknown ¶
func (m *Container) XXX_DiscardUnknown()
func (*Container) XXX_Marshal ¶
func (*Container) XXX_Unmarshal ¶
type ContainerAgentClient ¶
type ContainerAgentClient interface {
Invoke(ctx context.Context, in *ContainerRequest, opts ...grpc.CallOption) (*ContainerResponse, error)
}
ContainerAgentClient is the client API for ContainerAgent service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
func NewContainerAgentClient ¶
func NewContainerAgentClient(cc *grpc.ClientConn) ContainerAgentClient
type ContainerAgentServer ¶
type ContainerAgentServer interface {
Invoke(context.Context, *ContainerRequest) (*ContainerResponse, error)
}
ContainerAgentServer is the server API for ContainerAgent service.
type ContainerRequest ¶
type ContainerRequest struct { Containers []*Container `protobuf:"bytes,1,rep,name=Containers,proto3" json:"Containers,omitempty"` OperationType common.Operation `protobuf:"varint,2,opt,name=OperationType,proto3,enum=moc.Operation" json:"OperationType,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*ContainerRequest) Descriptor ¶
func (*ContainerRequest) Descriptor() ([]byte, []int)
func (*ContainerRequest) GetContainers ¶
func (m *ContainerRequest) GetContainers() []*Container
func (*ContainerRequest) GetOperationType ¶
func (m *ContainerRequest) GetOperationType() common.Operation
func (*ContainerRequest) ProtoMessage ¶
func (*ContainerRequest) ProtoMessage()
func (*ContainerRequest) Reset ¶
func (m *ContainerRequest) Reset()
func (*ContainerRequest) String ¶
func (m *ContainerRequest) String() string
func (*ContainerRequest) XXX_DiscardUnknown ¶
func (m *ContainerRequest) XXX_DiscardUnknown()
func (*ContainerRequest) XXX_Marshal ¶
func (m *ContainerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*ContainerRequest) XXX_Merge ¶
func (m *ContainerRequest) XXX_Merge(src proto.Message)
func (*ContainerRequest) XXX_Size ¶
func (m *ContainerRequest) XXX_Size() int
func (*ContainerRequest) XXX_Unmarshal ¶
func (m *ContainerRequest) XXX_Unmarshal(b []byte) error
type ContainerResponse ¶
type ContainerResponse struct { Containers []*Container `protobuf:"bytes,1,rep,name=Containers,proto3" json:"Containers,omitempty"` Result *wrappers.BoolValue `protobuf:"bytes,2,opt,name=Result,proto3" json:"Result,omitempty"` Error string `protobuf:"bytes,3,opt,name=Error,proto3" json:"Error,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*ContainerResponse) Descriptor ¶
func (*ContainerResponse) Descriptor() ([]byte, []int)
func (*ContainerResponse) GetContainers ¶
func (m *ContainerResponse) GetContainers() []*Container
func (*ContainerResponse) GetError ¶
func (m *ContainerResponse) GetError() string
func (*ContainerResponse) GetResult ¶
func (m *ContainerResponse) GetResult() *wrappers.BoolValue
func (*ContainerResponse) ProtoMessage ¶
func (*ContainerResponse) ProtoMessage()
func (*ContainerResponse) Reset ¶
func (m *ContainerResponse) Reset()
func (*ContainerResponse) String ¶
func (m *ContainerResponse) String() string
func (*ContainerResponse) XXX_DiscardUnknown ¶
func (m *ContainerResponse) XXX_DiscardUnknown()
func (*ContainerResponse) XXX_Marshal ¶
func (m *ContainerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*ContainerResponse) XXX_Merge ¶
func (m *ContainerResponse) XXX_Merge(src proto.Message)
func (*ContainerResponse) XXX_Size ¶
func (m *ContainerResponse) XXX_Size() int
func (*ContainerResponse) XXX_Unmarshal ¶
func (m *ContainerResponse) XXX_Unmarshal(b []byte) error
type ContainerType ¶
type ContainerType int32
const ( ContainerType_UNKNOWN ContainerType = 0 ContainerType_SAN ContainerType = 1 ContainerType_CSV ContainerType = 2 ContainerType_SMB ContainerType = 3 ContainerType_DAS ContainerType = 4 )
func (ContainerType) EnumDescriptor ¶
func (ContainerType) EnumDescriptor() ([]byte, []int)
func (ContainerType) String ¶
func (x ContainerType) String() string
type UnimplementedContainerAgentServer ¶
type UnimplementedContainerAgentServer struct { }
UnimplementedContainerAgentServer can be embedded to have forward compatible implementations.
func (*UnimplementedContainerAgentServer) Invoke ¶
func (*UnimplementedContainerAgentServer) Invoke(ctx context.Context, req *ContainerRequest) (*ContainerResponse, error)
type UnimplementedVirtualHardDiskAgentServer ¶
type UnimplementedVirtualHardDiskAgentServer struct { }
UnimplementedVirtualHardDiskAgentServer can be embedded to have forward compatible implementations.
func (*UnimplementedVirtualHardDiskAgentServer) Invoke ¶
func (*UnimplementedVirtualHardDiskAgentServer) Invoke(ctx context.Context, req *VirtualHardDiskRequest) (*VirtualHardDiskResponse, error)
type VirtualHardDisk ¶
type VirtualHardDisk struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` ContainerName string `protobuf:"bytes,3,opt,name=containerName,proto3" json:"containerName,omitempty"` Path string `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"` Status *common.Status `protobuf:"bytes,5,opt,name=status,proto3" json:"status,omitempty"` Size int64 `protobuf:"varint,6,opt,name=size,proto3" json:"size,omitempty"` Dynamic bool `protobuf:"varint,7,opt,name=dynamic,proto3" json:"dynamic,omitempty"` Blocksizebytes int32 `protobuf:"varint,8,opt,name=blocksizebytes,proto3" json:"blocksizebytes,omitempty"` Logicalsectorbytes int32 `protobuf:"varint,9,opt,name=logicalsectorbytes,proto3" json:"logicalsectorbytes,omitempty"` Physicalsectorbytes int32 `protobuf:"varint,10,opt,name=physicalsectorbytes,proto3" json:"physicalsectorbytes,omitempty"` Controllernumber int64 `protobuf:"varint,11,opt,name=controllernumber,proto3" json:"controllernumber,omitempty"` Controllerlocation int64 `protobuf:"varint,12,opt,name=controllerlocation,proto3" json:"controllerlocation,omitempty"` Disknumber int64 `protobuf:"varint,13,opt,name=disknumber,proto3" json:"disknumber,omitempty"` VirtualmachineName string `protobuf:"bytes,14,opt,name=virtualmachineName,proto3" json:"virtualmachineName,omitempty"` Scsipath string `protobuf:"bytes,15,opt,name=scsipath,proto3" json:"scsipath,omitempty"` AttachedVirtualmachineName string `protobuf:"bytes,16,opt,name=attachedVirtualmachineName,proto3" json:"attachedVirtualmachineName,omitempty"` AttachedNodeName string `protobuf:"bytes,17,opt,name=attachedNodeName,proto3" json:"attachedNodeName,omitempty"` GroupName string `protobuf:"bytes,18,opt,name=groupName,proto3" json:"groupName,omitempty"` LocationName string `protobuf:"bytes,19,opt,name=locationName,proto3" json:"locationName,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*VirtualHardDisk) Descriptor ¶
func (*VirtualHardDisk) Descriptor() ([]byte, []int)
func (*VirtualHardDisk) GetAttachedNodeName ¶
func (m *VirtualHardDisk) GetAttachedNodeName() string
func (*VirtualHardDisk) GetAttachedVirtualmachineName ¶
func (m *VirtualHardDisk) GetAttachedVirtualmachineName() string
func (*VirtualHardDisk) GetBlocksizebytes ¶
func (m *VirtualHardDisk) GetBlocksizebytes() int32
func (*VirtualHardDisk) GetContainerName ¶
func (m *VirtualHardDisk) GetContainerName() string
func (*VirtualHardDisk) GetControllerlocation ¶
func (m *VirtualHardDisk) GetControllerlocation() int64
func (*VirtualHardDisk) GetControllernumber ¶
func (m *VirtualHardDisk) GetControllernumber() int64
func (*VirtualHardDisk) GetDisknumber ¶
func (m *VirtualHardDisk) GetDisknumber() int64
func (*VirtualHardDisk) GetDynamic ¶
func (m *VirtualHardDisk) GetDynamic() bool
func (*VirtualHardDisk) GetGroupName ¶
func (m *VirtualHardDisk) GetGroupName() string
func (*VirtualHardDisk) GetId ¶
func (m *VirtualHardDisk) GetId() string
func (*VirtualHardDisk) GetLocationName ¶
func (m *VirtualHardDisk) GetLocationName() string
func (*VirtualHardDisk) GetLogicalsectorbytes ¶
func (m *VirtualHardDisk) GetLogicalsectorbytes() int32
func (*VirtualHardDisk) GetName ¶
func (m *VirtualHardDisk) GetName() string
func (*VirtualHardDisk) GetPath ¶
func (m *VirtualHardDisk) GetPath() string
func (*VirtualHardDisk) GetPhysicalsectorbytes ¶
func (m *VirtualHardDisk) GetPhysicalsectorbytes() int32
func (*VirtualHardDisk) GetScsipath ¶
func (m *VirtualHardDisk) GetScsipath() string
func (*VirtualHardDisk) GetSize ¶
func (m *VirtualHardDisk) GetSize() int64
func (*VirtualHardDisk) GetStatus ¶
func (m *VirtualHardDisk) GetStatus() *common.Status
func (*VirtualHardDisk) GetVirtualmachineName ¶
func (m *VirtualHardDisk) GetVirtualmachineName() string
func (*VirtualHardDisk) ProtoMessage ¶
func (*VirtualHardDisk) ProtoMessage()
func (*VirtualHardDisk) Reset ¶
func (m *VirtualHardDisk) Reset()
func (*VirtualHardDisk) String ¶
func (m *VirtualHardDisk) String() string
func (*VirtualHardDisk) XXX_DiscardUnknown ¶
func (m *VirtualHardDisk) XXX_DiscardUnknown()
func (*VirtualHardDisk) XXX_Marshal ¶
func (m *VirtualHardDisk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*VirtualHardDisk) XXX_Merge ¶
func (m *VirtualHardDisk) XXX_Merge(src proto.Message)
func (*VirtualHardDisk) XXX_Size ¶
func (m *VirtualHardDisk) XXX_Size() int
func (*VirtualHardDisk) XXX_Unmarshal ¶
func (m *VirtualHardDisk) XXX_Unmarshal(b []byte) error
type VirtualHardDiskAgentClient ¶
type VirtualHardDiskAgentClient interface {
Invoke(ctx context.Context, in *VirtualHardDiskRequest, opts ...grpc.CallOption) (*VirtualHardDiskResponse, error)
}
VirtualHardDiskAgentClient is the client API for VirtualHardDiskAgent service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
func NewVirtualHardDiskAgentClient ¶
func NewVirtualHardDiskAgentClient(cc *grpc.ClientConn) VirtualHardDiskAgentClient
type VirtualHardDiskAgentServer ¶
type VirtualHardDiskAgentServer interface {
Invoke(context.Context, *VirtualHardDiskRequest) (*VirtualHardDiskResponse, error)
}
VirtualHardDiskAgentServer is the server API for VirtualHardDiskAgent service.
type VirtualHardDiskRequest ¶
type VirtualHardDiskRequest struct { VirtualHardDisks []*VirtualHardDisk `protobuf:"bytes,1,rep,name=VirtualHardDisks,proto3" json:"VirtualHardDisks,omitempty"` OperationType common.Operation `protobuf:"varint,2,opt,name=OperationType,proto3,enum=moc.Operation" json:"OperationType,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*VirtualHardDiskRequest) Descriptor ¶
func (*VirtualHardDiskRequest) Descriptor() ([]byte, []int)
func (*VirtualHardDiskRequest) GetOperationType ¶
func (m *VirtualHardDiskRequest) GetOperationType() common.Operation
func (*VirtualHardDiskRequest) GetVirtualHardDisks ¶
func (m *VirtualHardDiskRequest) GetVirtualHardDisks() []*VirtualHardDisk
func (*VirtualHardDiskRequest) ProtoMessage ¶
func (*VirtualHardDiskRequest) ProtoMessage()
func (*VirtualHardDiskRequest) Reset ¶
func (m *VirtualHardDiskRequest) Reset()
func (*VirtualHardDiskRequest) String ¶
func (m *VirtualHardDiskRequest) String() string
func (*VirtualHardDiskRequest) XXX_DiscardUnknown ¶
func (m *VirtualHardDiskRequest) XXX_DiscardUnknown()
func (*VirtualHardDiskRequest) XXX_Marshal ¶
func (m *VirtualHardDiskRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*VirtualHardDiskRequest) XXX_Merge ¶
func (m *VirtualHardDiskRequest) XXX_Merge(src proto.Message)
func (*VirtualHardDiskRequest) XXX_Size ¶
func (m *VirtualHardDiskRequest) XXX_Size() int
func (*VirtualHardDiskRequest) XXX_Unmarshal ¶
func (m *VirtualHardDiskRequest) XXX_Unmarshal(b []byte) error
type VirtualHardDiskResponse ¶
type VirtualHardDiskResponse struct { VirtualHardDisks []*VirtualHardDisk `protobuf:"bytes,1,rep,name=VirtualHardDisks,proto3" json:"VirtualHardDisks,omitempty"` Result *wrappers.BoolValue `protobuf:"bytes,2,opt,name=Result,proto3" json:"Result,omitempty"` Error string `protobuf:"bytes,3,opt,name=Error,proto3" json:"Error,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*VirtualHardDiskResponse) Descriptor ¶
func (*VirtualHardDiskResponse) Descriptor() ([]byte, []int)
func (*VirtualHardDiskResponse) GetError ¶
func (m *VirtualHardDiskResponse) GetError() string
func (*VirtualHardDiskResponse) GetResult ¶
func (m *VirtualHardDiskResponse) GetResult() *wrappers.BoolValue
func (*VirtualHardDiskResponse) GetVirtualHardDisks ¶
func (m *VirtualHardDiskResponse) GetVirtualHardDisks() []*VirtualHardDisk
func (*VirtualHardDiskResponse) ProtoMessage ¶
func (*VirtualHardDiskResponse) ProtoMessage()
func (*VirtualHardDiskResponse) Reset ¶
func (m *VirtualHardDiskResponse) Reset()
func (*VirtualHardDiskResponse) String ¶
func (m *VirtualHardDiskResponse) String() string
func (*VirtualHardDiskResponse) XXX_DiscardUnknown ¶
func (m *VirtualHardDiskResponse) XXX_DiscardUnknown()
func (*VirtualHardDiskResponse) XXX_Marshal ¶
func (m *VirtualHardDiskResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*VirtualHardDiskResponse) XXX_Merge ¶
func (m *VirtualHardDiskResponse) XXX_Merge(src proto.Message)
func (*VirtualHardDiskResponse) XXX_Size ¶
func (m *VirtualHardDiskResponse) XXX_Size() int
func (*VirtualHardDiskResponse) XXX_Unmarshal ¶
func (m *VirtualHardDiskResponse) XXX_Unmarshal(b []byte) error