// Code generated by protoc-gen-go. DO NOT EDIT.
// source: logic_client.ext.proto

package pb

import (
	context "context"
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type RegisterDeviceReq struct {
	AppId                int64    `protobuf:"varint,1,opt,name=app_id,json=appId,proto3" json:"app_id,omitempty"`
	Type                 int32    `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"`
	Brand                string   `protobuf:"bytes,3,opt,name=brand,proto3" json:"brand,omitempty"`
	Model                string   `protobuf:"bytes,4,opt,name=model,proto3" json:"model,omitempty"`
	SystemVersion        string   `protobuf:"bytes,5,opt,name=system_version,json=systemVersion,proto3" json:"system_version,omitempty"`
	SdkVersion           string   `protobuf:"bytes,6,opt,name=sdk_version,json=sdkVersion,proto3" json:"sdk_version,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RegisterDeviceReq) Reset()         { *m = RegisterDeviceReq{} }
func (m *RegisterDeviceReq) String() string { return proto.CompactTextString(m) }
func (*RegisterDeviceReq) ProtoMessage()    {}
func (*RegisterDeviceReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{0}
}

func (m *RegisterDeviceReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RegisterDeviceReq.Unmarshal(m, b)
}
func (m *RegisterDeviceReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RegisterDeviceReq.Marshal(b, m, deterministic)
}
func (m *RegisterDeviceReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RegisterDeviceReq.Merge(m, src)
}
func (m *RegisterDeviceReq) XXX_Size() int {
	return xxx_messageInfo_RegisterDeviceReq.Size(m)
}
func (m *RegisterDeviceReq) XXX_DiscardUnknown() {
	xxx_messageInfo_RegisterDeviceReq.DiscardUnknown(m)
}

var xxx_messageInfo_RegisterDeviceReq proto.InternalMessageInfo

func (m *RegisterDeviceReq) GetAppId() int64 {
	if m != nil {
		return m.AppId
	}
	return 0
}

func (m *RegisterDeviceReq) GetType() int32 {
	if m != nil {
		return m.Type
	}
	return 0
}

func (m *RegisterDeviceReq) GetBrand() string {
	if m != nil {
		return m.Brand
	}
	return ""
}

func (m *RegisterDeviceReq) GetModel() string {
	if m != nil {
		return m.Model
	}
	return ""
}

func (m *RegisterDeviceReq) GetSystemVersion() string {
	if m != nil {
		return m.SystemVersion
	}
	return ""
}

func (m *RegisterDeviceReq) GetSdkVersion() string {
	if m != nil {
		return m.SdkVersion
	}
	return ""
}

type RegisterDeviceResp struct {
	DeviceId             int64    `protobuf:"varint,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RegisterDeviceResp) Reset()         { *m = RegisterDeviceResp{} }
func (m *RegisterDeviceResp) String() string { return proto.CompactTextString(m) }
func (*RegisterDeviceResp) ProtoMessage()    {}
func (*RegisterDeviceResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{1}
}

func (m *RegisterDeviceResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RegisterDeviceResp.Unmarshal(m, b)
}
func (m *RegisterDeviceResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RegisterDeviceResp.Marshal(b, m, deterministic)
}
func (m *RegisterDeviceResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RegisterDeviceResp.Merge(m, src)
}
func (m *RegisterDeviceResp) XXX_Size() int {
	return xxx_messageInfo_RegisterDeviceResp.Size(m)
}
func (m *RegisterDeviceResp) XXX_DiscardUnknown() {
	xxx_messageInfo_RegisterDeviceResp.DiscardUnknown(m)
}

var xxx_messageInfo_RegisterDeviceResp proto.InternalMessageInfo

func (m *RegisterDeviceResp) GetDeviceId() int64 {
	if m != nil {
		return m.DeviceId
	}
	return 0
}

type User struct {
	UserId               int64    `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	Nickname             string   `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"`
	Sex                  int32    `protobuf:"varint,3,opt,name=sex,proto3" json:"sex,omitempty"`
	AvatarUrl            string   `protobuf:"bytes,4,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"`
	Extra                string   `protobuf:"bytes,5,opt,name=extra,proto3" json:"extra,omitempty"`
	CreateTime           int64    `protobuf:"varint,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	UpdateTime           int64    `protobuf:"varint,7,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *User) Reset()         { *m = User{} }
func (m *User) String() string { return proto.CompactTextString(m) }
func (*User) ProtoMessage()    {}
func (*User) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{2}
}

func (m *User) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_User.Unmarshal(m, b)
}
func (m *User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_User.Marshal(b, m, deterministic)
}
func (m *User) XXX_Merge(src proto.Message) {
	xxx_messageInfo_User.Merge(m, src)
}
func (m *User) XXX_Size() int {
	return xxx_messageInfo_User.Size(m)
}
func (m *User) XXX_DiscardUnknown() {
	xxx_messageInfo_User.DiscardUnknown(m)
}

var xxx_messageInfo_User proto.InternalMessageInfo

func (m *User) GetUserId() int64 {
	if m != nil {
		return m.UserId
	}
	return 0
}

func (m *User) GetNickname() string {
	if m != nil {
		return m.Nickname
	}
	return ""
}

func (m *User) GetSex() int32 {
	if m != nil {
		return m.Sex
	}
	return 0
}

func (m *User) GetAvatarUrl() string {
	if m != nil {
		return m.AvatarUrl
	}
	return ""
}

func (m *User) GetExtra() string {
	if m != nil {
		return m.Extra
	}
	return ""
}

func (m *User) GetCreateTime() int64 {
	if m != nil {
		return m.CreateTime
	}
	return 0
}

func (m *User) GetUpdateTime() int64 {
	if m != nil {
		return m.UpdateTime
	}
	return 0
}

type AddUserReq struct {
	User                 *User    `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AddUserReq) Reset()         { *m = AddUserReq{} }
func (m *AddUserReq) String() string { return proto.CompactTextString(m) }
func (*AddUserReq) ProtoMessage()    {}
func (*AddUserReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{3}
}

func (m *AddUserReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AddUserReq.Unmarshal(m, b)
}
func (m *AddUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AddUserReq.Marshal(b, m, deterministic)
}
func (m *AddUserReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AddUserReq.Merge(m, src)
}
func (m *AddUserReq) XXX_Size() int {
	return xxx_messageInfo_AddUserReq.Size(m)
}
func (m *AddUserReq) XXX_DiscardUnknown() {
	xxx_messageInfo_AddUserReq.DiscardUnknown(m)
}

var xxx_messageInfo_AddUserReq proto.InternalMessageInfo

func (m *AddUserReq) GetUser() *User {
	if m != nil {
		return m.User
	}
	return nil
}

type AddUserResp struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AddUserResp) Reset()         { *m = AddUserResp{} }
func (m *AddUserResp) String() string { return proto.CompactTextString(m) }
func (*AddUserResp) ProtoMessage()    {}
func (*AddUserResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{4}
}

func (m *AddUserResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AddUserResp.Unmarshal(m, b)
}
func (m *AddUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AddUserResp.Marshal(b, m, deterministic)
}
func (m *AddUserResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AddUserResp.Merge(m, src)
}
func (m *AddUserResp) XXX_Size() int {
	return xxx_messageInfo_AddUserResp.Size(m)
}
func (m *AddUserResp) XXX_DiscardUnknown() {
	xxx_messageInfo_AddUserResp.DiscardUnknown(m)
}

var xxx_messageInfo_AddUserResp proto.InternalMessageInfo

type GetUserReq struct {
	UserId               int64    `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetUserReq) Reset()         { *m = GetUserReq{} }
func (m *GetUserReq) String() string { return proto.CompactTextString(m) }
func (*GetUserReq) ProtoMessage()    {}
func (*GetUserReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{5}
}

func (m *GetUserReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetUserReq.Unmarshal(m, b)
}
func (m *GetUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetUserReq.Marshal(b, m, deterministic)
}
func (m *GetUserReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetUserReq.Merge(m, src)
}
func (m *GetUserReq) XXX_Size() int {
	return xxx_messageInfo_GetUserReq.Size(m)
}
func (m *GetUserReq) XXX_DiscardUnknown() {
	xxx_messageInfo_GetUserReq.DiscardUnknown(m)
}

var xxx_messageInfo_GetUserReq proto.InternalMessageInfo

func (m *GetUserReq) GetUserId() int64 {
	if m != nil {
		return m.UserId
	}
	return 0
}

type GetUserResp struct {
	User                 *User    `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetUserResp) Reset()         { *m = GetUserResp{} }
func (m *GetUserResp) String() string { return proto.CompactTextString(m) }
func (*GetUserResp) ProtoMessage()    {}
func (*GetUserResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{6}
}

func (m *GetUserResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetUserResp.Unmarshal(m, b)
}
func (m *GetUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetUserResp.Marshal(b, m, deterministic)
}
func (m *GetUserResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetUserResp.Merge(m, src)
}
func (m *GetUserResp) XXX_Size() int {
	return xxx_messageInfo_GetUserResp.Size(m)
}
func (m *GetUserResp) XXX_DiscardUnknown() {
	xxx_messageInfo_GetUserResp.DiscardUnknown(m)
}

var xxx_messageInfo_GetUserResp proto.InternalMessageInfo

func (m *GetUserResp) GetUser() *User {
	if m != nil {
		return m.User
	}
	return nil
}

type SendMessageReq struct {
	MessageId            string       `protobuf:"bytes,1,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
	ReceiverType         ReceiverType `protobuf:"varint,2,opt,name=receiver_type,json=receiverType,proto3,enum=pb.ReceiverType" json:"receiver_type,omitempty"`
	ReceiverId           int64        `protobuf:"varint,3,opt,name=receiver_id,json=receiverId,proto3" json:"receiver_id,omitempty"`
	ToUserIds            []int64      `protobuf:"varint,4,rep,packed,name=to_user_ids,json=toUserIds,proto3" json:"to_user_ids,omitempty"`
	MessageBody          *MessageBody `protobuf:"bytes,5,opt,name=message_body,json=messageBody,proto3" json:"message_body,omitempty"`
	SendTime             int64        `protobuf:"varint,6,opt,name=send_time,json=sendTime,proto3" json:"send_time,omitempty"`
	IsPersist            bool         `protobuf:"varint,7,opt,name=is_persist,json=isPersist,proto3" json:"is_persist,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *SendMessageReq) Reset()         { *m = SendMessageReq{} }
func (m *SendMessageReq) String() string { return proto.CompactTextString(m) }
func (*SendMessageReq) ProtoMessage()    {}
func (*SendMessageReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{7}
}

func (m *SendMessageReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SendMessageReq.Unmarshal(m, b)
}
func (m *SendMessageReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SendMessageReq.Marshal(b, m, deterministic)
}
func (m *SendMessageReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SendMessageReq.Merge(m, src)
}
func (m *SendMessageReq) XXX_Size() int {
	return xxx_messageInfo_SendMessageReq.Size(m)
}
func (m *SendMessageReq) XXX_DiscardUnknown() {
	xxx_messageInfo_SendMessageReq.DiscardUnknown(m)
}

var xxx_messageInfo_SendMessageReq proto.InternalMessageInfo

func (m *SendMessageReq) GetMessageId() string {
	if m != nil {
		return m.MessageId
	}
	return ""
}

func (m *SendMessageReq) GetReceiverType() ReceiverType {
	if m != nil {
		return m.ReceiverType
	}
	return ReceiverType_RT_UNKNOWN
}

func (m *SendMessageReq) GetReceiverId() int64 {
	if m != nil {
		return m.ReceiverId
	}
	return 0
}

func (m *SendMessageReq) GetToUserIds() []int64 {
	if m != nil {
		return m.ToUserIds
	}
	return nil
}

func (m *SendMessageReq) GetMessageBody() *MessageBody {
	if m != nil {
		return m.MessageBody
	}
	return nil
}

func (m *SendMessageReq) GetSendTime() int64 {
	if m != nil {
		return m.SendTime
	}
	return 0
}

func (m *SendMessageReq) GetIsPersist() bool {
	if m != nil {
		return m.IsPersist
	}
	return false
}

type SendMessageResp struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SendMessageResp) Reset()         { *m = SendMessageResp{} }
func (m *SendMessageResp) String() string { return proto.CompactTextString(m) }
func (*SendMessageResp) ProtoMessage()    {}
func (*SendMessageResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{8}
}

func (m *SendMessageResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SendMessageResp.Unmarshal(m, b)
}
func (m *SendMessageResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SendMessageResp.Marshal(b, m, deterministic)
}
func (m *SendMessageResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SendMessageResp.Merge(m, src)
}
func (m *SendMessageResp) XXX_Size() int {
	return xxx_messageInfo_SendMessageResp.Size(m)
}
func (m *SendMessageResp) XXX_DiscardUnknown() {
	xxx_messageInfo_SendMessageResp.DiscardUnknown(m)
}

var xxx_messageInfo_SendMessageResp proto.InternalMessageInfo

type Group struct {
	GroupId              int64    `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Introduction         string   `protobuf:"bytes,3,opt,name=introduction,proto3" json:"introduction,omitempty"`
	UserMum              int32    `protobuf:"varint,4,opt,name=user_mum,json=userMum,proto3" json:"user_mum,omitempty"`
	Type                 int32    `protobuf:"varint,5,opt,name=type,proto3" json:"type,omitempty"`
	Extra                string   `protobuf:"bytes,6,opt,name=extra,proto3" json:"extra,omitempty"`
	CreateTime           int64    `protobuf:"varint,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	UpdateTime           int64    `protobuf:"varint,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Group) Reset()         { *m = Group{} }
func (m *Group) String() string { return proto.CompactTextString(m) }
func (*Group) ProtoMessage()    {}
func (*Group) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{9}
}

func (m *Group) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Group.Unmarshal(m, b)
}
func (m *Group) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Group.Marshal(b, m, deterministic)
}
func (m *Group) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Group.Merge(m, src)
}
func (m *Group) XXX_Size() int {
	return xxx_messageInfo_Group.Size(m)
}
func (m *Group) XXX_DiscardUnknown() {
	xxx_messageInfo_Group.DiscardUnknown(m)
}

var xxx_messageInfo_Group proto.InternalMessageInfo

func (m *Group) GetGroupId() int64 {
	if m != nil {
		return m.GroupId
	}
	return 0
}

func (m *Group) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *Group) GetIntroduction() string {
	if m != nil {
		return m.Introduction
	}
	return ""
}

func (m *Group) GetUserMum() int32 {
	if m != nil {
		return m.UserMum
	}
	return 0
}

func (m *Group) GetType() int32 {
	if m != nil {
		return m.Type
	}
	return 0
}

func (m *Group) GetExtra() string {
	if m != nil {
		return m.Extra
	}
	return ""
}

func (m *Group) GetCreateTime() int64 {
	if m != nil {
		return m.CreateTime
	}
	return 0
}

func (m *Group) GetUpdateTime() int64 {
	if m != nil {
		return m.UpdateTime
	}
	return 0
}

type CreateGroupReq struct {
	Group                *Group   `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateGroupReq) Reset()         { *m = CreateGroupReq{} }
func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) }
func (*CreateGroupReq) ProtoMessage()    {}
func (*CreateGroupReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{10}
}

func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b)
}
func (m *CreateGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateGroupReq.Marshal(b, m, deterministic)
}
func (m *CreateGroupReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateGroupReq.Merge(m, src)
}
func (m *CreateGroupReq) XXX_Size() int {
	return xxx_messageInfo_CreateGroupReq.Size(m)
}
func (m *CreateGroupReq) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateGroupReq.DiscardUnknown(m)
}

var xxx_messageInfo_CreateGroupReq proto.InternalMessageInfo

func (m *CreateGroupReq) GetGroup() *Group {
	if m != nil {
		return m.Group
	}
	return nil
}

type CreateGroupResp struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateGroupResp) Reset()         { *m = CreateGroupResp{} }
func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) }
func (*CreateGroupResp) ProtoMessage()    {}
func (*CreateGroupResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{11}
}

func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b)
}
func (m *CreateGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateGroupResp.Marshal(b, m, deterministic)
}
func (m *CreateGroupResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateGroupResp.Merge(m, src)
}
func (m *CreateGroupResp) XXX_Size() int {
	return xxx_messageInfo_CreateGroupResp.Size(m)
}
func (m *CreateGroupResp) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateGroupResp.DiscardUnknown(m)
}

var xxx_messageInfo_CreateGroupResp proto.InternalMessageInfo

type UpdateGroupReq struct {
	Group                *Group   `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UpdateGroupReq) Reset()         { *m = UpdateGroupReq{} }
func (m *UpdateGroupReq) String() string { return proto.CompactTextString(m) }
func (*UpdateGroupReq) ProtoMessage()    {}
func (*UpdateGroupReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{12}
}

func (m *UpdateGroupReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UpdateGroupReq.Unmarshal(m, b)
}
func (m *UpdateGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UpdateGroupReq.Marshal(b, m, deterministic)
}
func (m *UpdateGroupReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UpdateGroupReq.Merge(m, src)
}
func (m *UpdateGroupReq) XXX_Size() int {
	return xxx_messageInfo_UpdateGroupReq.Size(m)
}
func (m *UpdateGroupReq) XXX_DiscardUnknown() {
	xxx_messageInfo_UpdateGroupReq.DiscardUnknown(m)
}

var xxx_messageInfo_UpdateGroupReq proto.InternalMessageInfo

func (m *UpdateGroupReq) GetGroup() *Group {
	if m != nil {
		return m.Group
	}
	return nil
}

type UpdateGroupResp struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UpdateGroupResp) Reset()         { *m = UpdateGroupResp{} }
func (m *UpdateGroupResp) String() string { return proto.CompactTextString(m) }
func (*UpdateGroupResp) ProtoMessage()    {}
func (*UpdateGroupResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{13}
}

func (m *UpdateGroupResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UpdateGroupResp.Unmarshal(m, b)
}
func (m *UpdateGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UpdateGroupResp.Marshal(b, m, deterministic)
}
func (m *UpdateGroupResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UpdateGroupResp.Merge(m, src)
}
func (m *UpdateGroupResp) XXX_Size() int {
	return xxx_messageInfo_UpdateGroupResp.Size(m)
}
func (m *UpdateGroupResp) XXX_DiscardUnknown() {
	xxx_messageInfo_UpdateGroupResp.DiscardUnknown(m)
}

var xxx_messageInfo_UpdateGroupResp proto.InternalMessageInfo

type GetGroupReq struct {
	GroupId              int64    `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetGroupReq) Reset()         { *m = GetGroupReq{} }
func (m *GetGroupReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupReq) ProtoMessage()    {}
func (*GetGroupReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{14}
}

func (m *GetGroupReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetGroupReq.Unmarshal(m, b)
}
func (m *GetGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetGroupReq.Marshal(b, m, deterministic)
}
func (m *GetGroupReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetGroupReq.Merge(m, src)
}
func (m *GetGroupReq) XXX_Size() int {
	return xxx_messageInfo_GetGroupReq.Size(m)
}
func (m *GetGroupReq) XXX_DiscardUnknown() {
	xxx_messageInfo_GetGroupReq.DiscardUnknown(m)
}

var xxx_messageInfo_GetGroupReq proto.InternalMessageInfo

func (m *GetGroupReq) GetGroupId() int64 {
	if m != nil {
		return m.GroupId
	}
	return 0
}

type GetGroupResp struct {
	Group                *Group   `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetGroupResp) Reset()         { *m = GetGroupResp{} }
func (m *GetGroupResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupResp) ProtoMessage()    {}
func (*GetGroupResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{15}
}

func (m *GetGroupResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetGroupResp.Unmarshal(m, b)
}
func (m *GetGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetGroupResp.Marshal(b, m, deterministic)
}
func (m *GetGroupResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetGroupResp.Merge(m, src)
}
func (m *GetGroupResp) XXX_Size() int {
	return xxx_messageInfo_GetGroupResp.Size(m)
}
func (m *GetGroupResp) XXX_DiscardUnknown() {
	xxx_messageInfo_GetGroupResp.DiscardUnknown(m)
}

var xxx_messageInfo_GetGroupResp proto.InternalMessageInfo

func (m *GetGroupResp) GetGroup() *Group {
	if m != nil {
		return m.Group
	}
	return nil
}

type GetUserGroupsReq struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetUserGroupsReq) Reset()         { *m = GetUserGroupsReq{} }
func (m *GetUserGroupsReq) String() string { return proto.CompactTextString(m) }
func (*GetUserGroupsReq) ProtoMessage()    {}
func (*GetUserGroupsReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{16}
}

func (m *GetUserGroupsReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetUserGroupsReq.Unmarshal(m, b)
}
func (m *GetUserGroupsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetUserGroupsReq.Marshal(b, m, deterministic)
}
func (m *GetUserGroupsReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetUserGroupsReq.Merge(m, src)
}
func (m *GetUserGroupsReq) XXX_Size() int {
	return xxx_messageInfo_GetUserGroupsReq.Size(m)
}
func (m *GetUserGroupsReq) XXX_DiscardUnknown() {
	xxx_messageInfo_GetUserGroupsReq.DiscardUnknown(m)
}

var xxx_messageInfo_GetUserGroupsReq proto.InternalMessageInfo

type GetUserGroupsResp struct {
	Groups               []*Group `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetUserGroupsResp) Reset()         { *m = GetUserGroupsResp{} }
func (m *GetUserGroupsResp) String() string { return proto.CompactTextString(m) }
func (*GetUserGroupsResp) ProtoMessage()    {}
func (*GetUserGroupsResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{17}
}

func (m *GetUserGroupsResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GetUserGroupsResp.Unmarshal(m, b)
}
func (m *GetUserGroupsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GetUserGroupsResp.Marshal(b, m, deterministic)
}
func (m *GetUserGroupsResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GetUserGroupsResp.Merge(m, src)
}
func (m *GetUserGroupsResp) XXX_Size() int {
	return xxx_messageInfo_GetUserGroupsResp.Size(m)
}
func (m *GetUserGroupsResp) XXX_DiscardUnknown() {
	xxx_messageInfo_GetUserGroupsResp.DiscardUnknown(m)
}

var xxx_messageInfo_GetUserGroupsResp proto.InternalMessageInfo

func (m *GetUserGroupsResp) GetGroups() []*Group {
	if m != nil {
		return m.Groups
	}
	return nil
}

// 群组用户
type GroupUser struct {
	GroupId              int64    `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	UserId               int64    `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	Label                string   `protobuf:"bytes,3,opt,name=label,proto3" json:"label,omitempty"`
	Extra                string   `protobuf:"bytes,4,opt,name=extra,proto3" json:"extra,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GroupUser) Reset()         { *m = GroupUser{} }
func (m *GroupUser) String() string { return proto.CompactTextString(m) }
func (*GroupUser) ProtoMessage()    {}
func (*GroupUser) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{18}
}

func (m *GroupUser) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GroupUser.Unmarshal(m, b)
}
func (m *GroupUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GroupUser.Marshal(b, m, deterministic)
}
func (m *GroupUser) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GroupUser.Merge(m, src)
}
func (m *GroupUser) XXX_Size() int {
	return xxx_messageInfo_GroupUser.Size(m)
}
func (m *GroupUser) XXX_DiscardUnknown() {
	xxx_messageInfo_GroupUser.DiscardUnknown(m)
}

var xxx_messageInfo_GroupUser proto.InternalMessageInfo

func (m *GroupUser) GetGroupId() int64 {
	if m != nil {
		return m.GroupId
	}
	return 0
}

func (m *GroupUser) GetUserId() int64 {
	if m != nil {
		return m.UserId
	}
	return 0
}

func (m *GroupUser) GetLabel() string {
	if m != nil {
		return m.Label
	}
	return ""
}

func (m *GroupUser) GetExtra() string {
	if m != nil {
		return m.Extra
	}
	return ""
}

type AddGroupMemberReq struct {
	GroupUser            *GroupUser `protobuf:"bytes,1,opt,name=group_user,json=groupUser,proto3" json:"group_user,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (m *AddGroupMemberReq) Reset()         { *m = AddGroupMemberReq{} }
func (m *AddGroupMemberReq) String() string { return proto.CompactTextString(m) }
func (*AddGroupMemberReq) ProtoMessage()    {}
func (*AddGroupMemberReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{19}
}

func (m *AddGroupMemberReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AddGroupMemberReq.Unmarshal(m, b)
}
func (m *AddGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AddGroupMemberReq.Marshal(b, m, deterministic)
}
func (m *AddGroupMemberReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AddGroupMemberReq.Merge(m, src)
}
func (m *AddGroupMemberReq) XXX_Size() int {
	return xxx_messageInfo_AddGroupMemberReq.Size(m)
}
func (m *AddGroupMemberReq) XXX_DiscardUnknown() {
	xxx_messageInfo_AddGroupMemberReq.DiscardUnknown(m)
}

var xxx_messageInfo_AddGroupMemberReq proto.InternalMessageInfo

func (m *AddGroupMemberReq) GetGroupUser() *GroupUser {
	if m != nil {
		return m.GroupUser
	}
	return nil
}

type AddGroupMemberResp struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *AddGroupMemberResp) Reset()         { *m = AddGroupMemberResp{} }
func (m *AddGroupMemberResp) String() string { return proto.CompactTextString(m) }
func (*AddGroupMemberResp) ProtoMessage()    {}
func (*AddGroupMemberResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{20}
}

func (m *AddGroupMemberResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_AddGroupMemberResp.Unmarshal(m, b)
}
func (m *AddGroupMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AddGroupMemberResp.Marshal(b, m, deterministic)
}
func (m *AddGroupMemberResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AddGroupMemberResp.Merge(m, src)
}
func (m *AddGroupMemberResp) XXX_Size() int {
	return xxx_messageInfo_AddGroupMemberResp.Size(m)
}
func (m *AddGroupMemberResp) XXX_DiscardUnknown() {
	xxx_messageInfo_AddGroupMemberResp.DiscardUnknown(m)
}

var xxx_messageInfo_AddGroupMemberResp proto.InternalMessageInfo

type UpdateGroupMemberReq struct {
	GroupUser            *GroupUser `protobuf:"bytes,1,opt,name=group_user,json=groupUser,proto3" json:"group_user,omitempty"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (m *UpdateGroupMemberReq) Reset()         { *m = UpdateGroupMemberReq{} }
func (m *UpdateGroupMemberReq) String() string { return proto.CompactTextString(m) }
func (*UpdateGroupMemberReq) ProtoMessage()    {}
func (*UpdateGroupMemberReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{21}
}

func (m *UpdateGroupMemberReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UpdateGroupMemberReq.Unmarshal(m, b)
}
func (m *UpdateGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UpdateGroupMemberReq.Marshal(b, m, deterministic)
}
func (m *UpdateGroupMemberReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UpdateGroupMemberReq.Merge(m, src)
}
func (m *UpdateGroupMemberReq) XXX_Size() int {
	return xxx_messageInfo_UpdateGroupMemberReq.Size(m)
}
func (m *UpdateGroupMemberReq) XXX_DiscardUnknown() {
	xxx_messageInfo_UpdateGroupMemberReq.DiscardUnknown(m)
}

var xxx_messageInfo_UpdateGroupMemberReq proto.InternalMessageInfo

func (m *UpdateGroupMemberReq) GetGroupUser() *GroupUser {
	if m != nil {
		return m.GroupUser
	}
	return nil
}

type UpdateGroupMemberResp struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UpdateGroupMemberResp) Reset()         { *m = UpdateGroupMemberResp{} }
func (m *UpdateGroupMemberResp) String() string { return proto.CompactTextString(m) }
func (*UpdateGroupMemberResp) ProtoMessage()    {}
func (*UpdateGroupMemberResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{22}
}

func (m *UpdateGroupMemberResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UpdateGroupMemberResp.Unmarshal(m, b)
}
func (m *UpdateGroupMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UpdateGroupMemberResp.Marshal(b, m, deterministic)
}
func (m *UpdateGroupMemberResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UpdateGroupMemberResp.Merge(m, src)
}
func (m *UpdateGroupMemberResp) XXX_Size() int {
	return xxx_messageInfo_UpdateGroupMemberResp.Size(m)
}
func (m *UpdateGroupMemberResp) XXX_DiscardUnknown() {
	xxx_messageInfo_UpdateGroupMemberResp.DiscardUnknown(m)
}

var xxx_messageInfo_UpdateGroupMemberResp proto.InternalMessageInfo

type DeleteGroupMemberReq struct {
	GroupId              int64    `protobuf:"varint,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	UserId               int64    `protobuf:"varint,2,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteGroupMemberReq) Reset()         { *m = DeleteGroupMemberReq{} }
func (m *DeleteGroupMemberReq) String() string { return proto.CompactTextString(m) }
func (*DeleteGroupMemberReq) ProtoMessage()    {}
func (*DeleteGroupMemberReq) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{23}
}

func (m *DeleteGroupMemberReq) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeleteGroupMemberReq.Unmarshal(m, b)
}
func (m *DeleteGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeleteGroupMemberReq.Marshal(b, m, deterministic)
}
func (m *DeleteGroupMemberReq) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteGroupMemberReq.Merge(m, src)
}
func (m *DeleteGroupMemberReq) XXX_Size() int {
	return xxx_messageInfo_DeleteGroupMemberReq.Size(m)
}
func (m *DeleteGroupMemberReq) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteGroupMemberReq.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteGroupMemberReq proto.InternalMessageInfo

func (m *DeleteGroupMemberReq) GetGroupId() int64 {
	if m != nil {
		return m.GroupId
	}
	return 0
}

func (m *DeleteGroupMemberReq) GetUserId() int64 {
	if m != nil {
		return m.UserId
	}
	return 0
}

type DeleteGroupMemberResp struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteGroupMemberResp) Reset()         { *m = DeleteGroupMemberResp{} }
func (m *DeleteGroupMemberResp) String() string { return proto.CompactTextString(m) }
func (*DeleteGroupMemberResp) ProtoMessage()    {}
func (*DeleteGroupMemberResp) Descriptor() ([]byte, []int) {
	return fileDescriptor_67db1528f2ba04c7, []int{24}
}

func (m *DeleteGroupMemberResp) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DeleteGroupMemberResp.Unmarshal(m, b)
}
func (m *DeleteGroupMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DeleteGroupMemberResp.Marshal(b, m, deterministic)
}
func (m *DeleteGroupMemberResp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DeleteGroupMemberResp.Merge(m, src)
}
func (m *DeleteGroupMemberResp) XXX_Size() int {
	return xxx_messageInfo_DeleteGroupMemberResp.Size(m)
}
func (m *DeleteGroupMemberResp) XXX_DiscardUnknown() {
	xxx_messageInfo_DeleteGroupMemberResp.DiscardUnknown(m)
}

var xxx_messageInfo_DeleteGroupMemberResp proto.InternalMessageInfo

func init() {
	proto.RegisterType((*RegisterDeviceReq)(nil), "pb.RegisterDeviceReq")
	proto.RegisterType((*RegisterDeviceResp)(nil), "pb.RegisterDeviceResp")
	proto.RegisterType((*User)(nil), "pb.User")
	proto.RegisterType((*AddUserReq)(nil), "pb.AddUserReq")
	proto.RegisterType((*AddUserResp)(nil), "pb.AddUserResp")
	proto.RegisterType((*GetUserReq)(nil), "pb.GetUserReq")
	proto.RegisterType((*GetUserResp)(nil), "pb.GetUserResp")
	proto.RegisterType((*SendMessageReq)(nil), "pb.SendMessageReq")
	proto.RegisterType((*SendMessageResp)(nil), "pb.SendMessageResp")
	proto.RegisterType((*Group)(nil), "pb.Group")
	proto.RegisterType((*CreateGroupReq)(nil), "pb.CreateGroupReq")
	proto.RegisterType((*CreateGroupResp)(nil), "pb.CreateGroupResp")
	proto.RegisterType((*UpdateGroupReq)(nil), "pb.UpdateGroupReq")
	proto.RegisterType((*UpdateGroupResp)(nil), "pb.UpdateGroupResp")
	proto.RegisterType((*GetGroupReq)(nil), "pb.GetGroupReq")
	proto.RegisterType((*GetGroupResp)(nil), "pb.GetGroupResp")
	proto.RegisterType((*GetUserGroupsReq)(nil), "pb.GetUserGroupsReq")
	proto.RegisterType((*GetUserGroupsResp)(nil), "pb.GetUserGroupsResp")
	proto.RegisterType((*GroupUser)(nil), "pb.GroupUser")
	proto.RegisterType((*AddGroupMemberReq)(nil), "pb.AddGroupMemberReq")
	proto.RegisterType((*AddGroupMemberResp)(nil), "pb.AddGroupMemberResp")
	proto.RegisterType((*UpdateGroupMemberReq)(nil), "pb.UpdateGroupMemberReq")
	proto.RegisterType((*UpdateGroupMemberResp)(nil), "pb.UpdateGroupMemberResp")
	proto.RegisterType((*DeleteGroupMemberReq)(nil), "pb.DeleteGroupMemberReq")
	proto.RegisterType((*DeleteGroupMemberResp)(nil), "pb.DeleteGroupMemberResp")
}

func init() { proto.RegisterFile("logic_client.ext.proto", fileDescriptor_67db1528f2ba04c7) }

var fileDescriptor_67db1528f2ba04c7 = []byte{
	// 950 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xef, 0x6e, 0x1a, 0x47,
	0x10, 0x17, 0x86, 0x03, 0x6e, 0x30, 0xd8, 0x6c, 0x71, 0x42, 0x68, 0xdd, 0xd0, 0x95, 0x22, 0xa1,
	0xb4, 0x75, 0x15, 0xaa, 0xe6, 0x53, 0xa5, 0xca, 0x8d, 0xab, 0x94, 0xaa, 0x96, 0xaa, 0x6d, 0xdc,
	0xaf, 0xe8, 0x60, 0x57, 0xe8, 0x64, 0x8e, 0xdb, 0xdc, 0x2e, 0x96, 0x79, 0x8e, 0x7e, 0xe8, 0x7b,
	0xf4, 0x19, 0xfa, 0x22, 0x7d, 0x93, 0x6a, 0x67, 0x8e, 0xfb, 0x03, 0x38, 0x56, 0xf3, 0x6d, 0xe7,
	0xb7, 0x33, 0xb3, 0x3b, 0x3b, 0xbf, 0xdf, 0xdc, 0xc1, 0x93, 0x65, 0xbc, 0x08, 0xe7, 0xd3, 0xf9,
	0x32, 0x54, 0x2b, 0x7b, 0xa1, 0xee, 0xed, 0x85, 0x4e, 0x62, 0x1b, 0xb3, 0x23, 0x3d, 0x1b, 0xf8,
	0x76, 0xae, 0xc9, 0xe4, 0x7f, 0x57, 0xa0, 0x2b, 0xd4, 0x22, 0x34, 0x56, 0x25, 0x57, 0xea, 0x2e,
	0x9c, 0x2b, 0xa1, 0xde, 0xb3, 0x33, 0xa8, 0x07, 0x5a, 0x4f, 0x43, 0xd9, 0xaf, 0x0c, 0x2b, 0xa3,
	0xaa, 0xf0, 0x02, 0xad, 0x27, 0x92, 0x31, 0xa8, 0xd9, 0x8d, 0x56, 0xfd, 0xa3, 0x61, 0x65, 0xe4,
	0x09, 0x5c, 0xb3, 0x1e, 0x78, 0xb3, 0x24, 0x58, 0xc9, 0x7e, 0x75, 0x58, 0x19, 0xf9, 0x82, 0x0c,
	0x87, 0x46, 0xb1, 0x54, 0xcb, 0x7e, 0x8d, 0x50, 0x34, 0xd8, 0x0b, 0xe8, 0x98, 0x8d, 0xb1, 0x2a,
	0x9a, 0xde, 0xa9, 0xc4, 0x84, 0xf1, 0xaa, 0xef, 0xe1, 0x76, 0x9b, 0xd0, 0x3f, 0x08, 0x64, 0xcf,
	0xa1, 0x65, 0xe4, 0x6d, 0xe6, 0x53, 0x47, 0x1f, 0x30, 0xf2, 0x36, 0x75, 0xe0, 0xaf, 0x80, 0xed,
	0xde, 0xd9, 0x68, 0xf6, 0x29, 0xf8, 0x12, 0xad, 0xfc, 0xde, 0x4d, 0x02, 0x26, 0x92, 0xff, 0x53,
	0x81, 0xda, 0x8d, 0x51, 0x09, 0x7b, 0x0a, 0x8d, 0xb5, 0x51, 0x49, 0xee, 0x53, 0x77, 0xe6, 0x44,
	0xb2, 0x01, 0x34, 0x57, 0xe1, 0xfc, 0x76, 0x15, 0x44, 0x54, 0xa0, 0x2f, 0x32, 0x9b, 0x9d, 0x42,
	0xd5, 0xa8, 0x7b, 0x2c, 0xd1, 0x13, 0x6e, 0xc9, 0xce, 0x01, 0x82, 0xbb, 0xc0, 0x06, 0xc9, 0x74,
	0x9d, 0x6c, 0xab, 0xf4, 0x09, 0xb9, 0x49, 0x96, 0xae, 0x7e, 0x75, 0x6f, 0x93, 0x20, 0x2d, 0x90,
	0x0c, 0x57, 0xd8, 0x3c, 0x51, 0x81, 0x55, 0x53, 0x1b, 0x46, 0x0a, 0x0b, 0xab, 0x0a, 0x20, 0xe8,
	0x5d, 0x18, 0x29, 0xe7, 0xb0, 0xd6, 0x32, 0x73, 0x68, 0x90, 0x03, 0x41, 0xce, 0x81, 0xbf, 0x04,
	0xb8, 0x94, 0xd2, 0x15, 0xe2, 0xda, 0xf4, 0x19, 0xd4, 0xdc, 0xe5, 0xb1, 0x90, 0xd6, 0xb8, 0x79,
	0xa1, 0x67, 0x17, 0xb8, 0x85, 0x28, 0x6f, 0x43, 0x2b, 0xf3, 0x35, 0x9a, 0xbf, 0x00, 0x78, 0xab,
	0xec, 0x36, 0xf4, 0xa1, 0x67, 0xe0, 0x5f, 0x42, 0x2b, 0x73, 0x33, 0xfa, 0x91, 0x23, 0xfe, 0x3a,
	0x82, 0xce, 0xef, 0x6a, 0x25, 0xaf, 0x95, 0x31, 0xc1, 0x02, 0xa9, 0x73, 0x0e, 0x10, 0x91, 0xb5,
	0xcd, 0xed, 0x0b, 0x3f, 0x45, 0x26, 0x92, 0x7d, 0x07, 0xed, 0x44, 0xcd, 0x55, 0x78, 0xa7, 0x92,
	0x69, 0xc6, 0xa5, 0xce, 0xf8, 0xd4, 0x25, 0x16, 0xe9, 0xc6, 0xbb, 0x8d, 0x56, 0xe2, 0x38, 0x29,
	0x58, 0xee, 0x61, 0xb2, 0xb0, 0x90, 0xb8, 0x56, 0x15, 0xb0, 0x85, 0x26, 0x92, 0x7d, 0x0e, 0x2d,
	0x1b, 0x4f, 0xd3, 0x92, 0x4c, 0xbf, 0x36, 0xac, 0x8e, 0xaa, 0xc2, 0xb7, 0xf1, 0x0d, 0x56, 0x65,
	0xd8, 0x18, 0x8e, 0xb7, 0xd7, 0x9a, 0xc5, 0x72, 0x83, 0x7d, 0x69, 0x8d, 0x4f, 0xdc, 0xb1, 0xe9,
	0xe5, 0x7f, 0x8c, 0xe5, 0x46, 0xb4, 0xa2, 0xdc, 0x70, 0x84, 0x32, 0x6a, 0x25, 0x8b, 0xcd, 0x6a,
	0x3a, 0x00, 0x5b, 0x75, 0x0e, 0x10, 0x9a, 0xa9, 0x76, 0x8c, 0x34, 0x16, 0x3b, 0xd5, 0x14, 0x7e,
	0x68, 0x7e, 0x23, 0x80, 0x77, 0xe1, 0xa4, 0xf4, 0x30, 0x46, 0xf3, 0x7f, 0x2b, 0xe0, 0xbd, 0x4d,
	0xe2, 0xb5, 0x66, 0xcf, 0xa0, 0xb9, 0x70, 0x8b, 0xfc, 0xf5, 0x1b, 0x68, 0x93, 0xc4, 0x0a, 0x0c,
	0xc4, 0x35, 0xe3, 0x70, 0x1c, 0xae, 0x6c, 0x12, 0xcb, 0xf5, 0xdc, 0x3a, 0x41, 0x90, 0xd2, 0x4a,
	0x98, 0x4b, 0x89, 0xc5, 0x47, 0xeb, 0x08, 0xd9, 0xe8, 0x09, 0xec, 0xef, 0xf5, 0x3a, 0xca, 0x54,
	0xeb, 0x95, 0x55, 0x4b, 0xfc, 0xac, 0x7f, 0x80, 0x9f, 0x8d, 0xc7, 0xf8, 0xd9, 0xdc, 0xe3, 0xe7,
	0x2b, 0xe8, 0xbc, 0x41, 0x77, 0x2c, 0xd4, 0xf1, 0xe1, 0x39, 0x78, 0x58, 0x5b, 0xca, 0x20, 0xdf,
	0xbd, 0x38, 0x6d, 0x12, 0xee, 0x5e, 0xaa, 0x14, 0x62, 0xb4, 0xcb, 0x72, 0x83, 0x39, 0xff, 0x57,
	0x96, 0x52, 0x88, 0xd1, 0x7c, 0x84, 0x4c, 0xce, 0x52, 0x3c, 0xfc, 0xe8, 0xfc, 0x1b, 0x38, 0xce,
	0x3d, 0x8d, 0x7e, 0xfc, 0x34, 0x06, 0xa7, 0xa9, 0x48, 0x10, 0x36, 0x42, 0xbd, 0xe7, 0xaf, 0xa1,
	0xbb, 0x83, 0x19, 0xcd, 0xbe, 0x80, 0x3a, 0x46, 0x98, 0x7e, 0x65, 0x58, 0x2d, 0xa7, 0x4a, 0x37,
	0xf8, 0x2d, 0xf8, 0x08, 0xe0, 0x74, 0xfa, 0x00, 0x33, 0x0a, 0x8a, 0x3d, 0x2a, 0x0d, 0xae, 0x1e,
	0x78, 0xcb, 0x60, 0xa6, 0x96, 0xdb, 0x09, 0x8c, 0x46, 0xde, 0xe1, 0x5a, 0xa1, 0xc3, 0xfc, 0x12,
	0xba, 0x97, 0x52, 0xe2, 0x79, 0xd7, 0x2a, 0x9a, 0xd1, 0x2c, 0xf8, 0x0a, 0x80, 0x0e, 0x2d, 0x28,
	0xbd, 0x9d, 0x5d, 0x14, 0xe5, 0xee, 0x2f, 0xb6, 0x4b, 0xde, 0x03, 0xb6, 0x9b, 0xc2, 0x68, 0x7e,
	0x05, 0xbd, 0xc2, 0xfb, 0x7f, 0x6c, 0xee, 0xa7, 0x70, 0x76, 0x20, 0x8b, 0xd1, 0xfc, 0x17, 0xe8,
	0x5d, 0xa9, 0xa5, 0xda, 0x4b, 0xff, 0x11, 0xef, 0xe5, 0x0e, 0x39, 0x90, 0xcb, 0xe8, 0xf1, 0x9f,
	0x1e, 0x74, 0x7e, 0x75, 0x5f, 0xcd, 0x37, 0xf8, 0xd1, 0xfc, 0xe9, 0xde, 0xb2, 0x1f, 0xa0, 0x53,
	0xfe, 0xd2, 0xb0, 0x33, 0x9a, 0x54, 0x3b, 0x5f, 0xcc, 0xc1, 0x93, 0x43, 0xb0, 0xd1, 0xec, 0x25,
	0x34, 0xd2, 0x21, 0xcc, 0x3a, 0xce, 0x25, 0x9f, 0xde, 0x83, 0x93, 0x92, 0x4d, 0xbe, 0x29, 0x83,
	0xc8, 0x37, 0x1f, 0xd7, 0xe4, 0x5b, 0x9c, 0xcb, 0xaf, 0xa1, 0x55, 0x98, 0x2f, 0x8c, 0xb9, 0xfd,
	0xf2, 0x24, 0x1e, 0x7c, 0xb2, 0x87, 0x51, 0x5c, 0x41, 0x6d, 0x14, 0x57, 0x56, 0x2c, 0xc5, 0xed,
	0x48, 0xd2, 0xc5, 0x15, 0x3a, 0x43, 0x71, 0x65, 0x8d, 0x52, 0xdc, 0x8e, 0x08, 0xd9, 0xd7, 0xd0,
	0xdc, 0x4a, 0x8b, 0x6d, 0x8b, 0xc8, 0x22, 0x4e, 0xcb, 0x80, 0xd1, 0xec, 0x7b, 0x68, 0x97, 0x44,
	0xc4, 0x7a, 0x85, 0xc2, 0x33, 0xad, 0x0d, 0xce, 0x0e, 0xa0, 0x46, 0xbb, 0x6e, 0x95, 0xa9, 0x49,
	0xdd, 0xda, 0x63, 0x3c, 0x75, 0x6b, 0x9f, 0xc5, 0xec, 0x67, 0xe8, 0xee, 0xf1, 0x8f, 0xf5, 0x77,
	0xea, 0xca, 0xd3, 0x3c, 0x7b, 0x60, 0x87, 0x32, 0xed, 0x91, 0x8c, 0x32, 0x1d, 0xe2, 0x31, 0x65,
	0x3a, 0xc8, 0xca, 0x59, 0x1d, 0x7f, 0xd4, 0xbe, 0xfd, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x0f, 0x14,
	0x7c, 0x77, 0xd1, 0x09, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConnInterface

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion6

// LogicClientExtClient is the client API for LogicClientExt service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type LogicClientExtClient interface {
	// 注册设备
	RegisterDevice(ctx context.Context, in *RegisterDeviceReq, opts ...grpc.CallOption) (*RegisterDeviceResp, error)
	// 添加用户
	AddUser(ctx context.Context, in *AddUserReq, opts ...grpc.CallOption) (*AddUserResp, error)
	// 获取用户信息
	GetUser(ctx context.Context, in *GetUserReq, opts ...grpc.CallOption) (*GetUserResp, error)
	// 发送消息
	SendMessage(ctx context.Context, in *SendMessageReq, opts ...grpc.CallOption) (*SendMessageResp, error)
	// 创建群组
	CreateGroup(ctx context.Context, in *CreateGroupReq, opts ...grpc.CallOption) (*CreateGroupResp, error)
	// 更新群组
	UpdateGroup(ctx context.Context, in *UpdateGroupReq, opts ...grpc.CallOption) (*UpdateGroupResp, error)
	// 获取群组信息
	GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupResp, error)
	// 获取用户加入的所有群组
	GetUserGroups(ctx context.Context, in *GetUserGroupsReq, opts ...grpc.CallOption) (*GetUserGroupsResp, error)
	// 添加群组成员
	AddGroupMember(ctx context.Context, in *AddGroupMemberReq, opts ...grpc.CallOption) (*AddGroupMemberResp, error)
	// 更新群组成员信息
	UpdateGroupMember(ctx context.Context, in *UpdateGroupMemberReq, opts ...grpc.CallOption) (*UpdateGroupMemberResp, error)
	// 添加群组成员
	DeleteGroupMember(ctx context.Context, in *DeleteGroupMemberReq, opts ...grpc.CallOption) (*DeleteGroupMemberResp, error)
}

type logicClientExtClient struct {
	cc grpc.ClientConnInterface
}

func NewLogicClientExtClient(cc grpc.ClientConnInterface) LogicClientExtClient {
	return &logicClientExtClient{cc}
}

func (c *logicClientExtClient) RegisterDevice(ctx context.Context, in *RegisterDeviceReq, opts ...grpc.CallOption) (*RegisterDeviceResp, error) {
	out := new(RegisterDeviceResp)
	err := c.cc.Invoke(ctx, "/pb.LogicClientExt/RegisterDevice", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *logicClientExtClient) AddUser(ctx context.Context, in *AddUserReq, opts ...grpc.CallOption) (*AddUserResp, error) {
	out := new(AddUserResp)
	err := c.cc.Invoke(ctx, "/pb.LogicClientExt/AddUser", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *logicClientExtClient) GetUser(ctx context.Context, in *GetUserReq, opts ...grpc.CallOption) (*GetUserResp, error) {
	out := new(GetUserResp)
	err := c.cc.Invoke(ctx, "/pb.LogicClientExt/GetUser", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *logicClientExtClient) SendMessage(ctx context.Context, in *SendMessageReq, opts ...grpc.CallOption) (*SendMessageResp, error) {
	out := new(SendMessageResp)
	err := c.cc.Invoke(ctx, "/pb.LogicClientExt/SendMessage", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *logicClientExtClient) CreateGroup(ctx context.Context, in *CreateGroupReq, opts ...grpc.CallOption) (*CreateGroupResp, error) {
	out := new(CreateGroupResp)
	err := c.cc.Invoke(ctx, "/pb.LogicClientExt/CreateGroup", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *logicClientExtClient) UpdateGroup(ctx context.Context, in *UpdateGroupReq, opts ...grpc.CallOption) (*UpdateGroupResp, error) {
	out := new(UpdateGroupResp)
	err := c.cc.Invoke(ctx, "/pb.LogicClientExt/UpdateGroup", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *logicClientExtClient) GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupResp, error) {
	out := new(GetGroupResp)
	err := c.cc.Invoke(ctx, "/pb.LogicClientExt/GetGroup", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *logicClientExtClient) GetUserGroups(ctx context.Context, in *GetUserGroupsReq, opts ...grpc.CallOption) (*GetUserGroupsResp, error) {
	out := new(GetUserGroupsResp)
	err := c.cc.Invoke(ctx, "/pb.LogicClientExt/GetUserGroups", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *logicClientExtClient) AddGroupMember(ctx context.Context, in *AddGroupMemberReq, opts ...grpc.CallOption) (*AddGroupMemberResp, error) {
	out := new(AddGroupMemberResp)
	err := c.cc.Invoke(ctx, "/pb.LogicClientExt/AddGroupMember", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *logicClientExtClient) UpdateGroupMember(ctx context.Context, in *UpdateGroupMemberReq, opts ...grpc.CallOption) (*UpdateGroupMemberResp, error) {
	out := new(UpdateGroupMemberResp)
	err := c.cc.Invoke(ctx, "/pb.LogicClientExt/UpdateGroupMember", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *logicClientExtClient) DeleteGroupMember(ctx context.Context, in *DeleteGroupMemberReq, opts ...grpc.CallOption) (*DeleteGroupMemberResp, error) {
	out := new(DeleteGroupMemberResp)
	err := c.cc.Invoke(ctx, "/pb.LogicClientExt/DeleteGroupMember", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// LogicClientExtServer is the server API for LogicClientExt service.
type LogicClientExtServer interface {
	// 注册设备
	RegisterDevice(context.Context, *RegisterDeviceReq) (*RegisterDeviceResp, error)
	// 添加用户
	AddUser(context.Context, *AddUserReq) (*AddUserResp, error)
	// 获取用户信息
	GetUser(context.Context, *GetUserReq) (*GetUserResp, error)
	// 发送消息
	SendMessage(context.Context, *SendMessageReq) (*SendMessageResp, error)
	// 创建群组
	CreateGroup(context.Context, *CreateGroupReq) (*CreateGroupResp, error)
	// 更新群组
	UpdateGroup(context.Context, *UpdateGroupReq) (*UpdateGroupResp, error)
	// 获取群组信息
	GetGroup(context.Context, *GetGroupReq) (*GetGroupResp, error)
	// 获取用户加入的所有群组
	GetUserGroups(context.Context, *GetUserGroupsReq) (*GetUserGroupsResp, error)
	// 添加群组成员
	AddGroupMember(context.Context, *AddGroupMemberReq) (*AddGroupMemberResp, error)
	// 更新群组成员信息
	UpdateGroupMember(context.Context, *UpdateGroupMemberReq) (*UpdateGroupMemberResp, error)
	// 添加群组成员
	DeleteGroupMember(context.Context, *DeleteGroupMemberReq) (*DeleteGroupMemberResp, error)
}

// UnimplementedLogicClientExtServer can be embedded to have forward compatible implementations.
type UnimplementedLogicClientExtServer struct {
}

func (*UnimplementedLogicClientExtServer) RegisterDevice(ctx context.Context, req *RegisterDeviceReq) (*RegisterDeviceResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RegisterDevice not implemented")
}
func (*UnimplementedLogicClientExtServer) AddUser(ctx context.Context, req *AddUserReq) (*AddUserResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AddUser not implemented")
}
func (*UnimplementedLogicClientExtServer) GetUser(ctx context.Context, req *GetUserReq) (*GetUserResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetUser not implemented")
}
func (*UnimplementedLogicClientExtServer) SendMessage(ctx context.Context, req *SendMessageReq) (*SendMessageResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SendMessage not implemented")
}
func (*UnimplementedLogicClientExtServer) CreateGroup(ctx context.Context, req *CreateGroupReq) (*CreateGroupResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateGroup not implemented")
}
func (*UnimplementedLogicClientExtServer) UpdateGroup(ctx context.Context, req *UpdateGroupReq) (*UpdateGroupResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateGroup not implemented")
}
func (*UnimplementedLogicClientExtServer) GetGroup(ctx context.Context, req *GetGroupReq) (*GetGroupResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetGroup not implemented")
}
func (*UnimplementedLogicClientExtServer) GetUserGroups(ctx context.Context, req *GetUserGroupsReq) (*GetUserGroupsResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetUserGroups not implemented")
}
func (*UnimplementedLogicClientExtServer) AddGroupMember(ctx context.Context, req *AddGroupMemberReq) (*AddGroupMemberResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method AddGroupMember not implemented")
}
func (*UnimplementedLogicClientExtServer) UpdateGroupMember(ctx context.Context, req *UpdateGroupMemberReq) (*UpdateGroupMemberResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateGroupMember not implemented")
}
func (*UnimplementedLogicClientExtServer) DeleteGroupMember(ctx context.Context, req *DeleteGroupMemberReq) (*DeleteGroupMemberResp, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteGroupMember not implemented")
}

func RegisterLogicClientExtServer(s *grpc.Server, srv LogicClientExtServer) {
	s.RegisterService(&_LogicClientExt_serviceDesc, srv)
}

func _LogicClientExt_RegisterDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RegisterDeviceReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LogicClientExtServer).RegisterDevice(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.LogicClientExt/RegisterDevice",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LogicClientExtServer).RegisterDevice(ctx, req.(*RegisterDeviceReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _LogicClientExt_AddUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddUserReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LogicClientExtServer).AddUser(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.LogicClientExt/AddUser",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LogicClientExtServer).AddUser(ctx, req.(*AddUserReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _LogicClientExt_GetUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetUserReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LogicClientExtServer).GetUser(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.LogicClientExt/GetUser",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LogicClientExtServer).GetUser(ctx, req.(*GetUserReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _LogicClientExt_SendMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SendMessageReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LogicClientExtServer).SendMessage(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.LogicClientExt/SendMessage",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LogicClientExtServer).SendMessage(ctx, req.(*SendMessageReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _LogicClientExt_CreateGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateGroupReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LogicClientExtServer).CreateGroup(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.LogicClientExt/CreateGroup",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LogicClientExtServer).CreateGroup(ctx, req.(*CreateGroupReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _LogicClientExt_UpdateGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateGroupReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LogicClientExtServer).UpdateGroup(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.LogicClientExt/UpdateGroup",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LogicClientExtServer).UpdateGroup(ctx, req.(*UpdateGroupReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _LogicClientExt_GetGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetGroupReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LogicClientExtServer).GetGroup(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.LogicClientExt/GetGroup",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LogicClientExtServer).GetGroup(ctx, req.(*GetGroupReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _LogicClientExt_GetUserGroups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetUserGroupsReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LogicClientExtServer).GetUserGroups(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.LogicClientExt/GetUserGroups",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LogicClientExtServer).GetUserGroups(ctx, req.(*GetUserGroupsReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _LogicClientExt_AddGroupMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(AddGroupMemberReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LogicClientExtServer).AddGroupMember(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.LogicClientExt/AddGroupMember",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LogicClientExtServer).AddGroupMember(ctx, req.(*AddGroupMemberReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _LogicClientExt_UpdateGroupMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateGroupMemberReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LogicClientExtServer).UpdateGroupMember(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.LogicClientExt/UpdateGroupMember",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LogicClientExtServer).UpdateGroupMember(ctx, req.(*UpdateGroupMemberReq))
	}
	return interceptor(ctx, in, info, handler)
}

func _LogicClientExt_DeleteGroupMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteGroupMemberReq)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LogicClientExtServer).DeleteGroupMember(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/pb.LogicClientExt/DeleteGroupMember",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LogicClientExtServer).DeleteGroupMember(ctx, req.(*DeleteGroupMemberReq))
	}
	return interceptor(ctx, in, info, handler)
}

var _LogicClientExt_serviceDesc = grpc.ServiceDesc{
	ServiceName: "pb.LogicClientExt",
	HandlerType: (*LogicClientExtServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "RegisterDevice",
			Handler:    _LogicClientExt_RegisterDevice_Handler,
		},
		{
			MethodName: "AddUser",
			Handler:    _LogicClientExt_AddUser_Handler,
		},
		{
			MethodName: "GetUser",
			Handler:    _LogicClientExt_GetUser_Handler,
		},
		{
			MethodName: "SendMessage",
			Handler:    _LogicClientExt_SendMessage_Handler,
		},
		{
			MethodName: "CreateGroup",
			Handler:    _LogicClientExt_CreateGroup_Handler,
		},
		{
			MethodName: "UpdateGroup",
			Handler:    _LogicClientExt_UpdateGroup_Handler,
		},
		{
			MethodName: "GetGroup",
			Handler:    _LogicClientExt_GetGroup_Handler,
		},
		{
			MethodName: "GetUserGroups",
			Handler:    _LogicClientExt_GetUserGroups_Handler,
		},
		{
			MethodName: "AddGroupMember",
			Handler:    _LogicClientExt_AddGroupMember_Handler,
		},
		{
			MethodName: "UpdateGroupMember",
			Handler:    _LogicClientExt_UpdateGroupMember_Handler,
		},
		{
			MethodName: "DeleteGroupMember",
			Handler:    _LogicClientExt_DeleteGroupMember_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "logic_client.ext.proto",
}
