// Autogenerated by Thrift Compiler (0.9.2)
// DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING

package businesslogicservice

import (
	"bytes"
	"fmt"
	"github.com/apache/thrift/lib/go/thrift"
)

// (needed to ensure safety because of naive import list construction.)
var _ = thrift.ZERO
var _ = fmt.Printf
var _ = bytes.Equal

var GoUnusedProtection__ int

type MessageInfo struct {
	Cmd        int32  `thrift:"Cmd,1" json:"Cmd"`
	Nsp        string `thrift:"Nsp,2" json:"Nsp"`
	Uid        string `thrift:"Uid,3" json:"Uid"`
	ClientType string `thrift:"ClientType,4" json:"ClientType"`
	Content    string `thrift:"Content,5" json:"Content"`
}

func NewMessageInfo() *MessageInfo {
	return &MessageInfo{}
}

func (p *MessageInfo) GetCmd() int32 {
	return p.Cmd
}

func (p *MessageInfo) GetNsp() string {
	return p.Nsp
}

func (p *MessageInfo) GetUid() string {
	return p.Uid
}

func (p *MessageInfo) GetClientType() string {
	return p.ClientType
}

func (p *MessageInfo) GetContent() string {
	return p.Content
}
func (p *MessageInfo) Read(iprot thrift.TProtocol) error {
	if _, err := iprot.ReadStructBegin(); err != nil {
		return fmt.Errorf("%T read error: %s", p, err)
	}
	for {
		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
		if err != nil {
			return fmt.Errorf("%T field %d read error: %s", p, fieldId, err)
		}
		if fieldTypeId == thrift.STOP {
			break
		}
		switch fieldId {
		case 1:
			if err := p.ReadField1(iprot); err != nil {
				return err
			}
		case 2:
			if err := p.ReadField2(iprot); err != nil {
				return err
			}
		case 3:
			if err := p.ReadField3(iprot); err != nil {
				return err
			}
		case 4:
			if err := p.ReadField4(iprot); err != nil {
				return err
			}
		case 5:
			if err := p.ReadField5(iprot); err != nil {
				return err
			}
		default:
			if err := iprot.Skip(fieldTypeId); err != nil {
				return err
			}
		}
		if err := iprot.ReadFieldEnd(); err != nil {
			return err
		}
	}
	if err := iprot.ReadStructEnd(); err != nil {
		return fmt.Errorf("%T read struct end error: %s", p, err)
	}
	return nil
}

func (p *MessageInfo) ReadField1(iprot thrift.TProtocol) error {
	if v, err := iprot.ReadI32(); err != nil {
		return fmt.Errorf("error reading field 1: %s", err)
	} else {
		p.Cmd = v
	}
	return nil
}

func (p *MessageInfo) ReadField2(iprot thrift.TProtocol) error {
	if v, err := iprot.ReadString(); err != nil {
		return fmt.Errorf("error reading field 2: %s", err)
	} else {
		p.Nsp = v
	}
	return nil
}

func (p *MessageInfo) ReadField3(iprot thrift.TProtocol) error {
	if v, err := iprot.ReadString(); err != nil {
		return fmt.Errorf("error reading field 3: %s", err)
	} else {
		p.Uid = v
	}
	return nil
}

func (p *MessageInfo) ReadField4(iprot thrift.TProtocol) error {
	if v, err := iprot.ReadString(); err != nil {
		return fmt.Errorf("error reading field 4: %s", err)
	} else {
		p.ClientType = v
	}
	return nil
}

func (p *MessageInfo) ReadField5(iprot thrift.TProtocol) error {
	if v, err := iprot.ReadString(); err != nil {
		return fmt.Errorf("error reading field 5: %s", err)
	} else {
		p.Content = v
	}
	return nil
}

func (p *MessageInfo) Write(oprot thrift.TProtocol) error {
	if err := oprot.WriteStructBegin("MessageInfo"); err != nil {
		return fmt.Errorf("%T write struct begin error: %s", p, err)
	}
	if err := p.writeField1(oprot); err != nil {
		return err
	}
	if err := p.writeField2(oprot); err != nil {
		return err
	}
	if err := p.writeField3(oprot); err != nil {
		return err
	}
	if err := p.writeField4(oprot); err != nil {
		return err
	}
	if err := p.writeField5(oprot); err != nil {
		return err
	}
	if err := oprot.WriteFieldStop(); err != nil {
		return fmt.Errorf("write field stop error: %s", err)
	}
	if err := oprot.WriteStructEnd(); err != nil {
		return fmt.Errorf("write struct stop error: %s", err)
	}
	return nil
}

func (p *MessageInfo) writeField1(oprot thrift.TProtocol) (err error) {
	if err := oprot.WriteFieldBegin("Cmd", thrift.I32, 1); err != nil {
		return fmt.Errorf("%T write field begin error 1:Cmd: %s", p, err)
	}
	if err := oprot.WriteI32(int32(p.Cmd)); err != nil {
		return fmt.Errorf("%T.Cmd (1) field write error: %s", p, err)
	}
	if err := oprot.WriteFieldEnd(); err != nil {
		return fmt.Errorf("%T write field end error 1:Cmd: %s", p, err)
	}
	return err
}

func (p *MessageInfo) writeField2(oprot thrift.TProtocol) (err error) {
	if err := oprot.WriteFieldBegin("Nsp", thrift.STRING, 2); err != nil {
		return fmt.Errorf("%T write field begin error 2:Nsp: %s", p, err)
	}
	if err := oprot.WriteString(string(p.Nsp)); err != nil {
		return fmt.Errorf("%T.Nsp (2) field write error: %s", p, err)
	}
	if err := oprot.WriteFieldEnd(); err != nil {
		return fmt.Errorf("%T write field end error 2:Nsp: %s", p, err)
	}
	return err
}

func (p *MessageInfo) writeField3(oprot thrift.TProtocol) (err error) {
	if err := oprot.WriteFieldBegin("Uid", thrift.STRING, 3); err != nil {
		return fmt.Errorf("%T write field begin error 3:Uid: %s", p, err)
	}
	if err := oprot.WriteString(string(p.Uid)); err != nil {
		return fmt.Errorf("%T.Uid (3) field write error: %s", p, err)
	}
	if err := oprot.WriteFieldEnd(); err != nil {
		return fmt.Errorf("%T write field end error 3:Uid: %s", p, err)
	}
	return err
}

func (p *MessageInfo) writeField4(oprot thrift.TProtocol) (err error) {
	if err := oprot.WriteFieldBegin("ClientType", thrift.STRING, 4); err != nil {
		return fmt.Errorf("%T write field begin error 4:ClientType: %s", p, err)
	}
	if err := oprot.WriteString(string(p.ClientType)); err != nil {
		return fmt.Errorf("%T.ClientType (4) field write error: %s", p, err)
	}
	if err := oprot.WriteFieldEnd(); err != nil {
		return fmt.Errorf("%T write field end error 4:ClientType: %s", p, err)
	}
	return err
}

func (p *MessageInfo) writeField5(oprot thrift.TProtocol) (err error) {
	if err := oprot.WriteFieldBegin("Content", thrift.STRING, 5); err != nil {
		return fmt.Errorf("%T write field begin error 5:Content: %s", p, err)
	}
	if err := oprot.WriteString(string(p.Content)); err != nil {
		return fmt.Errorf("%T.Content (5) field write error: %s", p, err)
	}
	if err := oprot.WriteFieldEnd(); err != nil {
		return fmt.Errorf("%T write field end error 5:Content: %s", p, err)
	}
	return err
}

func (p *MessageInfo) String() string {
	if p == nil {
		return "<nil>"
	}
	return fmt.Sprintf("MessageInfo(%+v)", *p)
}

type MessageError struct {
	TypeA1  int32  `thrift:"type,1" json:"type"`
	Message string `thrift:"message,2" json:"message"`
}

func NewMessageError() *MessageError {
	return &MessageError{}
}

func (p *MessageError) GetTypeA1() int32 {
	return p.TypeA1
}

func (p *MessageError) GetMessage() string {
	return p.Message
}
func (p *MessageError) Read(iprot thrift.TProtocol) error {
	if _, err := iprot.ReadStructBegin(); err != nil {
		return fmt.Errorf("%T read error: %s", p, err)
	}
	for {
		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
		if err != nil {
			return fmt.Errorf("%T field %d read error: %s", p, fieldId, err)
		}
		if fieldTypeId == thrift.STOP {
			break
		}
		switch fieldId {
		case 1:
			if err := p.ReadField1(iprot); err != nil {
				return err
			}
		case 2:
			if err := p.ReadField2(iprot); err != nil {
				return err
			}
		default:
			if err := iprot.Skip(fieldTypeId); err != nil {
				return err
			}
		}
		if err := iprot.ReadFieldEnd(); err != nil {
			return err
		}
	}
	if err := iprot.ReadStructEnd(); err != nil {
		return fmt.Errorf("%T read struct end error: %s", p, err)
	}
	return nil
}

func (p *MessageError) ReadField1(iprot thrift.TProtocol) error {
	if v, err := iprot.ReadI32(); err != nil {
		return fmt.Errorf("error reading field 1: %s", err)
	} else {
		p.TypeA1 = v
	}
	return nil
}

func (p *MessageError) ReadField2(iprot thrift.TProtocol) error {
	if v, err := iprot.ReadString(); err != nil {
		return fmt.Errorf("error reading field 2: %s", err)
	} else {
		p.Message = v
	}
	return nil
}

func (p *MessageError) Write(oprot thrift.TProtocol) error {
	if err := oprot.WriteStructBegin("message_error"); err != nil {
		return fmt.Errorf("%T write struct begin error: %s", p, err)
	}
	if err := p.writeField1(oprot); err != nil {
		return err
	}
	if err := p.writeField2(oprot); err != nil {
		return err
	}
	if err := oprot.WriteFieldStop(); err != nil {
		return fmt.Errorf("write field stop error: %s", err)
	}
	if err := oprot.WriteStructEnd(); err != nil {
		return fmt.Errorf("write struct stop error: %s", err)
	}
	return nil
}

func (p *MessageError) writeField1(oprot thrift.TProtocol) (err error) {
	if err := oprot.WriteFieldBegin("type", thrift.I32, 1); err != nil {
		return fmt.Errorf("%T write field begin error 1:type: %s", p, err)
	}
	if err := oprot.WriteI32(int32(p.TypeA1)); err != nil {
		return fmt.Errorf("%T.type (1) field write error: %s", p, err)
	}
	if err := oprot.WriteFieldEnd(); err != nil {
		return fmt.Errorf("%T write field end error 1:type: %s", p, err)
	}
	return err
}

func (p *MessageError) writeField2(oprot thrift.TProtocol) (err error) {
	if err := oprot.WriteFieldBegin("message", thrift.STRING, 2); err != nil {
		return fmt.Errorf("%T write field begin error 2:message: %s", p, err)
	}
	if err := oprot.WriteString(string(p.Message)); err != nil {
		return fmt.Errorf("%T.message (2) field write error: %s", p, err)
	}
	if err := oprot.WriteFieldEnd(); err != nil {
		return fmt.Errorf("%T write field end error 2:message: %s", p, err)
	}
	return err
}

func (p *MessageError) String() string {
	if p == nil {
		return "<nil>"
	}
	return fmt.Sprintf("MessageError(%+v)", *p)
}

func (p *MessageError) Error() string {
	return p.String()
}
