+ * Ogg uses the same generator polynomial as ethernet, although with an
+ * unreflected alg and an init/final of 0, not 0xffffffff.
+ *
+ * @author Jim Lawrence, helloNetwork.com
+ * @author Marc Gimpel, Wimba S.A. (mgimpel@horizonwimba.com)
+ * @version $Revision: 1.1 $
+ */
+public class OggCrc
+{
+ // TODO - implement java.util.zip.Checksum
+
+ /**
+ * CRC checksum lookup table
+ */
+ private static int[] crc_lookup;
+
+ static {
+ crc_lookup = new int[256];
+ for (int i = 0; i < crc_lookup.length; i++) {
+ int r = i << 24;
+ for (int j = 0; j < 8; j++) {
+ if ((r & 0x80000000) != 0) {
+ /*
+ * The same as the ethernet generator polynomial, although
+ * we use an unreflected alg and an init/final of 0, not
+ * 0xffffffff
+ */
+ r = (r << 1) ^ 0x04c11db7;
+ }
+ else {
+ r <<= 1;
+ }
+ }
+ crc_lookup[i] = (r & 0xffffffff);
+ }
+ }
+
+ /**
+ * Calculates the checksum on the given data, from the give offset and for
+ * the given length, using the given initial value. This allows on to
+ * calculate the checksum iteratively, by reinjecting the last returned
+ * value as the initial value when the function is called for the next data
+ * chunk. The initial value should be 0 for the first iteration.
+ *
+ * @param crc - the initial value
+ * @param data - the data
+ * @param offset - the offset at which to start calculating the checksum.
+ * @param length - the length of data over which to calculate the checksum.
+ * @return the checksum.
+ */
+ public static int checksum(int crc,
+ final byte[] data,
+ int offset,
+ final int length)
+ {
+ int end = offset + length;
+ for (; offset < end; offset++) {
+ crc = (crc << 8) ^ crc_lookup[((crc >>> 24) & 0xff) ^ (data[offset] & 0xff)];
+ }
+ return crc;
+ }
+}
diff --git a/android/app/src/main/java/com/mogujie/tt/imservice/support/audio/OggSpeexWriter.java b/android/app/src/main/java/com/mogujie/tt/imservice/support/audio/OggSpeexWriter.java
new file mode 100644
index 000000000..c2df31fb3
--- /dev/null
+++ b/android/app/src/main/java/com/mogujie/tt/imservice/support/audio/OggSpeexWriter.java
@@ -0,0 +1,260 @@
+/******************************************************************************
+ * *
+ * Copyright (c) 1999-2003 Wimba S.A., All Rights Reserved. *
+ * *
+ * COPYRIGHT: *
+ * This software is the property of Wimba S.A. *
+ * This software is redistributed under the Xiph.org variant of *
+ * the BSD license. *
+ * Redistribution and use in source and binary forms, with or without *
+ * modification, are permitted provided that the following conditions *
+ * are met: *
+ * - Redistributions of source code must retain the above copyright *
+ * notice, this list of conditions and the following disclaimer. *
+ * - Redistributions in binary form must reproduce the above copyright *
+ * notice, this list of conditions and the following disclaimer in the *
+ * documentation and/or other materials provided with the distribution. *
+ * - Neither the name of Wimba, the Xiph.org Foundation nor the names of *
+ * its contributors may be used to endorse or promote products derived *
+ * from this software without specific prior written permission. *
+ * *
+ * WARRANTIES: *
+ * This software is made available by the authors in the hope *
+ * that it will be useful, but without any warranty. *
+ * Wimba S.A. is not liable for any consequence related to the *
+ * use of the provided software. *
+ * *
+ * Class: OggSpeexWriter.java *
+ * *
+ * Author: Marc GIMPEL *
+ * *
+ * Date: 9th April 2003 *
+ * *
+ ******************************************************************************/
+
+/* $Id: OggSpeexWriter.java,v 1.2 2011/12/28 02:45:11 gauss Exp $ */
+
+package com.mogujie.tt.imservice.support.audio;
+
+import com.mogujie.tt.utils.Logger;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Random;
+
+/**
+ * Ogg Speex Writer
+ *
+ * @author Marc Gimpel, Wimba S.A. (mgimpel@horizonwimba.com)
+ * @version $Revision: 1.2 $
+ */
+public class OggSpeexWriter extends AudioFileWriter {
+ private static Logger log = Logger.getLogger(OggSpeexWriter.class);
+ /** Number of packets in an Ogg page (must be less than 255) */
+ public static final int PACKETS_PER_OGG_PAGE = 250;
+
+ /** The OutputStream */
+ private OutputStream out;
+
+ /** Defines the encoder mode (0=NB, 1=WB and 2-UWB). */
+ private int mode;
+ /** Defines the sampling rate of the audio input. */
+ private int sampleRate;
+ /** Defines the number of channels of the audio input (1=mono, 2=stereo). */
+ private int channels;
+ /** Defines the number of frames per speex packet. */
+ private int nframes;
+ /** Defines whether or not to use VBR (Variable Bit Rate). */
+ private boolean vbr;
+
+ /** Ogg Stream Serial Number */
+ private int streamSerialNumber;
+ /** Data buffer */
+ private byte[] dataBuffer;
+ /** Pointer within the Data buffer */
+ private int dataBufferPtr;
+ /** Header buffer */
+ private byte[] headerBuffer;
+ /** Pointer within the Header buffer */
+ private int headerBufferPtr;
+ /** Ogg Page count */
+ private int pageCount;
+ /** Speex packet count within an Ogg Page */
+ private int packetCount;
+ /**
+ * Absolute granule position (the number of audio samples from beginning of
+ * file to end of Ogg Packet).
+ */
+ private long granulepos;
+
+ /**
+ * Builds an Ogg Speex Writer.
+ */
+ public OggSpeexWriter() {
+ if (streamSerialNumber == 0)
+ streamSerialNumber = new Random().nextInt();
+ dataBuffer = new byte[65565];
+ dataBufferPtr = 0;
+ headerBuffer = new byte[255];
+ headerBufferPtr = 0;
+ pageCount = 0;
+ packetCount = 0;
+ granulepos = 0;
+ }
+
+ /**
+ * Builds an Ogg Speex Writer.
+ *
+ * @param mode the mode of the encoder (0=NB, 1=WB, 2=UWB).
+ * @param sampleRate the number of samples per second.
+ * @param channels the number of audio channels (1=mono, 2=stereo, ...).
+ * @param nframes the number of frames per speex packet.
+ * @param vbr
+ */
+ public OggSpeexWriter(final int mode, final int sampleRate, final int channels,
+ final int nframes, final boolean vbr) {
+ this();
+ setFormat(mode, sampleRate, channels, nframes, vbr);
+ }
+
+ /**
+ * Sets the output format. Must be called before WriteHeader().
+ *
+ * @param mode the mode of the encoder (0=NB, 1=WB, 2=UWB).
+ * @param sampleRate the number of samples per second.
+ * @param channels the number of audio channels (1=mono, 2=stereo, ...).
+ * @param nframes the number of frames per speex packet.
+ * @param vbr
+ */
+ private void setFormat(final int mode, final int sampleRate, final int channels,
+ final int nframes, boolean vbr) {
+ this.mode = mode;
+ this.sampleRate = sampleRate;
+ this.channels = channels;
+ this.nframes = nframes;
+ this.vbr = vbr;
+ }
+
+ /**
+ * Sets the Stream Serial Number. Must not be changed mid stream.
+ *
+ * @param serialNumber
+ */
+ public void setSerialNumber(final int serialNumber) {
+ this.streamSerialNumber = serialNumber;
+ }
+
+ /**
+ * Closes the output file.
+ *
+ * @exception IOException if there was an exception closing the Audio
+ * Writer.
+ */
+ public void close() throws IOException {
+ flush(true);
+ out.close();
+ }
+
+ /**
+ * Open the output file.
+ *
+ * @param file - file to open.
+ * @exception IOException if there was an exception opening the Audio
+ * Writer.
+ */
+ public void open(final File file) throws IOException {
+ file.delete();
+ out = new FileOutputStream(file);
+ }
+
+ /**
+ * Open the output file.
+ *
+ * @param filename - file to open.
+ * @exception IOException if there was an exception opening the Audio
+ * Writer.
+ */
+ public void open(final String filename) throws IOException {
+ open(new File(filename));
+ }
+
+ /**
+ * Writes the header pages that start the Ogg Speex file. Prepares file for
+ * data to be written.
+ *
+ * @param comment description to be included in the header.
+ * @exception IOException
+ */
+ public void writeHeader(final String comment) throws IOException {
+ int chksum;
+ byte[] header;
+ byte[] data;
+ /* writes the OGG header page */
+ header = buildOggPageHeader(2, 0, streamSerialNumber, pageCount++, 1, new byte[] {
+ 80
+ });
+ data = buildSpeexHeader(sampleRate, mode, channels, vbr, nframes);
+ chksum = OggCrc.checksum(0, header, 0, header.length);
+ chksum = OggCrc.checksum(chksum, data, 0, data.length);
+ writeInt(header, 22, chksum);
+ out.write(header);
+ out.write(data);
+ /* writes the OGG comment page */
+ header = buildOggPageHeader(0, 0, streamSerialNumber, pageCount++, 1, new byte[] {
+ (byte) (comment.length() + 8)
+ });
+ data = buildSpeexComment(comment);
+ chksum = OggCrc.checksum(0, header, 0, header.length);
+ chksum = OggCrc.checksum(chksum, data, 0, data.length);
+ writeInt(header, 22, chksum);
+ out.write(header);
+ out.write(data);
+ }
+
+ /**
+ * Writes a packet of audio.
+ *
+ * @param data - audio data.
+ * @param offset - the offset from which to start reading the data.
+ * @param len - the length of data to read.
+ * @exception IOException
+ */
+ public void writePacket(final byte[] data, final int offset, final int len) throws IOException {
+ log.i("**************************data=" + data.toString() + " len=" + len);
+ if (len <= 0) { // nothing to write
+ return;
+ }
+ if (packetCount > PACKETS_PER_OGG_PAGE) {
+ flush(false);
+ }
+ System.arraycopy(data, offset, dataBuffer, dataBufferPtr, len);
+ dataBufferPtr += len;
+ headerBuffer[headerBufferPtr++] = (byte) len;
+ packetCount++;
+ granulepos += nframes * (mode == 2 ? 640 : (mode == 1 ? 320 : 160));
+ }
+
+ /**
+ * Flush the Ogg page out of the buffers into the file.
+ *
+ * @param eos - end of stream
+ * @exception IOException
+ */
+ private void flush(final boolean eos) throws IOException {
+ int chksum;
+ byte[] header;
+ /* writes the OGG header page */
+ header = buildOggPageHeader((eos ? 4 : 0), granulepos, streamSerialNumber, pageCount++,
+ packetCount, headerBuffer);
+ chksum = OggCrc.checksum(0, header, 0, header.length);
+ chksum = OggCrc.checksum(chksum, dataBuffer, 0, dataBufferPtr);
+ writeInt(header, 22, chksum);
+ out.write(header);
+ out.write(dataBuffer, 0, dataBufferPtr);
+ dataBufferPtr = 0;
+ headerBufferPtr = 0;
+ packetCount = 0;
+ }
+}
diff --git a/android/app/src/main/java/com/mogujie/tt/imservice/support/audio/Speex.java b/android/app/src/main/java/com/mogujie/tt/imservice/support/audio/Speex.java
new file mode 100644
index 000000000..70a4b7fb5
--- /dev/null
+++ b/android/app/src/main/java/com/mogujie/tt/imservice/support/audio/Speex.java
@@ -0,0 +1,63 @@
+
+package com.mogujie.tt.imservice.support.audio;
+
+import com.mogujie.tt.utils.Logger;
+
+class Speex {
+
+ /*
+ * quality 1 : 4kbps (very noticeable artifacts, usually intelligible) 2 :
+ * 6kbps (very noticeable artifacts, good intelligibility) 4 : 8kbps
+ * (noticeable artifacts sometimes) 6 : 11kpbs (artifacts usually only
+ * noticeable with headphones) 8 : 15kbps (artifacts not usually noticeable)
+ */
+ private static final int DEFAULT_COMPRESSION = 4;
+ private Logger log = Logger.getLogger(Speex.class);
+
+ Speex() {
+ }
+
+ public void init() {
+ load();
+ open(DEFAULT_COMPRESSION);
+ log.i("AEC INIT " + getAecStatus());
+ // if (getAecStatus() == 0) {
+ // initEcho(240, 1600);
+ // }
+ // log.info("AEC INIT " + getAecStatus());
+ // if (getAecStatus() == 0) {
+ // initEcho(320, 1600);
+ // }
+ log.i("speex opened");
+ }
+
+ private void load() {
+ try {
+ System.loadLibrary("speex");
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ public native int open(int compression);
+
+ public native int getFrameSize();
+
+ public native int decode(byte encoded[], short lin[], int size);
+
+ public native int encode(short lin[], int offset, byte encoded[], int size);
+
+ public native void close();
+
+ public native void initEcho(int frameSize, int filterLength);
+
+ public native void echoCancellation(short[] rec, short[] play, short[] out);
+
+ public native int echoCancellationEncode(short[] rec, short[] play,
+ byte[] encoded);
+
+ public native void destroyEcho();
+
+ public native int getAecStatus();
+}
diff --git a/android/app/src/main/java/com/mogujie/tt/imservice/support/audio/SpeexDecoder.java b/android/app/src/main/java/com/mogujie/tt/imservice/support/audio/SpeexDecoder.java
new file mode 100644
index 000000000..5db1602ed
--- /dev/null
+++ b/android/app/src/main/java/com/mogujie/tt/imservice/support/audio/SpeexDecoder.java
@@ -0,0 +1,269 @@
+
+package com.mogujie.tt.imservice.support.audio;
+
+import android.media.AudioFormat;
+import android.media.AudioManager;
+import android.media.AudioTrack;
+import android.os.RecoverySystem.ProgressListener;
+
+import com.mogujie.tt.ui.adapter.MessageAdapter;
+import com.mogujie.tt.imservice.event.AudioEvent;
+import com.mogujie.tt.utils.Logger;
+
+import java.io.EOFException;
+import java.io.File;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+import java.util.ArrayList;
+import java.util.List;
+
+import de.greenrobot.event.EventBus;
+
+public class SpeexDecoder {
+ protected Speex speexDecoder;
+
+ protected boolean enhanced = false;
+
+ private boolean paused = false;
+
+ protected String srcFile;
+
+ private List
+ * 0 - 7: speex_string: "Speex "
+ * 8 - 27: speex_version: "speex-1.0"
+ * 28 - 31: speex_version_id: 1
+ * 32 - 35: header_size: 80
+ * 36 - 39: rate
+ * 40 - 43: mode: 0=narrowband, 1=wb, 2=uwb
+ * 44 - 47: mode_bitstream_version: 4
+ * 48 - 51: nb_channels
+ * 52 - 55: bitrate: -1
+ * 56 - 59: frame_size: 160
+ * 60 - 63: vbr
+ * 64 - 67: frames_per_packet
+ * 68 - 71: extra_headers: 0
+ * 72 - 75: reserved1
+ * 76 - 79: reserved2
+ *
+ *
+ * @param packet
+ * @param offset
+ * @param bytes
+ * @return
+ * @throws Exception
+ */
+ @SuppressWarnings("unused")
+ private boolean readSpeexHeader(final byte[] packet, final int offset,
+ final int bytes, boolean init) throws Exception {
+ if (bytes != 80) {
+ return false;
+ }
+ if (!"Speex ".equals(new String(packet, offset, 8))) {
+ return false;
+ }
+ int mode = packet[40 + offset] & 0xFF;
+ int sampleRate = readInt(packet, offset + 36);
+ int channels = readInt(packet, offset + 48);
+ int nframes = readInt(packet, offset + 64);
+ int frameSize = readInt(packet, offset + 56);
+ // System.out.println("mode=" + mode + " sampleRate==" + sampleRate
+ // + " channels=" + channels + "nframes=" + nframes + "framesize="
+ // + frameSize);
+ initializeAndroidAudio(sampleRate);
+
+ if (init) {
+ // return speexDecoder.init(mode, sampleRate, channels, enhanced);
+ return true;
+ } else {
+ return true;
+ }
+ }
+
+ protected static int readInt(final byte[] data, final int offset) {
+ /*
+ * no 0xff on the last one to keep the sign
+ */
+ return (data[offset] & 0xff) | ((data[offset + 1] & 0xff) << 8)
+ | ((data[offset + 2] & 0xff) << 16) | (data[offset + 3] << 24);
+ }
+
+ protected static long readLong(final byte[] data, final int offset) {
+ /*
+ * no 0xff on the last one to keep the sign
+ */
+ return (data[offset] & 0xff) | ((data[offset + 1] & 0xff) << 8)
+ | ((data[offset + 2] & 0xff) << 16)
+ | ((data[offset + 3] & 0xff) << 24)
+ | ((data[offset + 4] & 0xff) << 32)
+ | ((data[offset + 5] & 0xff) << 40)
+ | ((data[offset + 6] & 0xff) << 48) | (data[offset + 7] << 56);
+ }
+
+ protected static int readShort(final byte[] data, final int offset) {
+ /*
+ * no 0xff on the last one to keep the sign
+ */
+ return (data[offset] & 0xff) | (data[offset + 1] << 8);
+ }
+
+}
diff --git a/android/app/src/main/java/com/mogujie/tt/imservice/support/audio/SpeexEncoder.java b/android/app/src/main/java/com/mogujie/tt/imservice/support/audio/SpeexEncoder.java
new file mode 100644
index 000000000..26db1f3f2
--- /dev/null
+++ b/android/app/src/main/java/com/mogujie/tt/imservice/support/audio/SpeexEncoder.java
@@ -0,0 +1,97 @@
+
+package com.mogujie.tt.imservice.support.audio;
+
+import com.mogujie.tt.utils.Logger;
+
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+public class SpeexEncoder implements Runnable {
+
+ private Logger log = Logger.getLogger(SpeexEncoder.class);
+ private final Object mutex = new Object();
+ private Speex speex = new Speex();
+
+ public static int encoder_packagesize = 1024;
+ private byte[] processedData = new byte[encoder_packagesize];
+
+ List
+ * service id
+ *
+ */
+ public enum ServiceID
+ implements com.google.protobuf.Internal.EnumLite {
+ /**
+ * SID_LOGIN = 1;
+ *
+ *
+ * for login
+ *
+ */
+ SID_LOGIN(0, 1),
+ /**
+ * SID_BUDDY_LIST = 2;
+ *
+ *
+ * for friend list
+ *
+ */
+ SID_BUDDY_LIST(1, 2),
+ /**
+ * SID_MSG = 3;
+ *
+ *
+ *
+ */
+ SID_MSG(2, 3),
+ /**
+ * SID_GROUP = 4;
+ *
+ *
+ * for group message
+ *
+ */
+ SID_GROUP(3, 4),
+ /**
+ * SID_FILE = 5;
+ */
+ SID_FILE(4, 5),
+ /**
+ * SID_SWITCH_SERVICE = 6;
+ */
+ SID_SWITCH_SERVICE(5, 6),
+ /**
+ * SID_OTHER = 7;
+ */
+ SID_OTHER(6, 7),
+ /**
+ * SID_INTERNAL = 8;
+ */
+ SID_INTERNAL(7, 8),
+ ;
+
+ /**
+ * SID_LOGIN = 1;
+ *
+ *
+ * for login
+ *
+ */
+ public static final int SID_LOGIN_VALUE = 1;
+ /**
+ * SID_BUDDY_LIST = 2;
+ *
+ *
+ * for friend list
+ *
+ */
+ public static final int SID_BUDDY_LIST_VALUE = 2;
+ /**
+ * SID_MSG = 3;
+ *
+ *
+ *
+ */
+ public static final int SID_MSG_VALUE = 3;
+ /**
+ * SID_GROUP = 4;
+ *
+ *
+ * for group message
+ *
+ */
+ public static final int SID_GROUP_VALUE = 4;
+ /**
+ * SID_FILE = 5;
+ */
+ public static final int SID_FILE_VALUE = 5;
+ /**
+ * SID_SWITCH_SERVICE = 6;
+ */
+ public static final int SID_SWITCH_SERVICE_VALUE = 6;
+ /**
+ * SID_OTHER = 7;
+ */
+ public static final int SID_OTHER_VALUE = 7;
+ /**
+ * SID_INTERNAL = 8;
+ */
+ public static final int SID_INTERNAL_VALUE = 8;
+
+
+ public final int getNumber() { return value; }
+
+ public static ServiceID valueOf(int value) {
+ switch (value) {
+ case 1: return SID_LOGIN;
+ case 2: return SID_BUDDY_LIST;
+ case 3: return SID_MSG;
+ case 4: return SID_GROUP;
+ case 5: return SID_FILE;
+ case 6: return SID_SWITCH_SERVICE;
+ case 7: return SID_OTHER;
+ case 8: return SID_INTERNAL;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap
+ * command id for login
+ *
+ */
+ public enum LoginCmdID
+ implements com.google.protobuf.Internal.EnumLite {
+ /**
+ * CID_LOGIN_REQ_MSGSERVER = 257;
+ *
+ *
+ *
+ */
+ CID_LOGIN_REQ_MSGSERVER(0, 257),
+ /**
+ * CID_LOGIN_RES_MSGSERVER = 258;
+ *
+ *
+ *
+ */
+ CID_LOGIN_RES_MSGSERVER(1, 258),
+ /**
+ * CID_LOGIN_REQ_USERLOGIN = 259;
+ *
+ *
+ *
+ */
+ CID_LOGIN_REQ_USERLOGIN(2, 259),
+ /**
+ * CID_LOGIN_RES_USERLOGIN = 260;
+ *
+ *
+ *
+ */
+ CID_LOGIN_RES_USERLOGIN(3, 260),
+ /**
+ * CID_LOGIN_REQ_LOGINOUT = 261;
+ *
+ *
+ *
+ */
+ CID_LOGIN_REQ_LOGINOUT(4, 261),
+ /**
+ * CID_LOGIN_RES_LOGINOUT = 262;
+ *
+ *
+ *
+ */
+ CID_LOGIN_RES_LOGINOUT(5, 262),
+ /**
+ * CID_LOGIN_KICK_USER = 263;
+ *
+ *
+ *
+ */
+ CID_LOGIN_KICK_USER(6, 263),
+ /**
+ * CID_LOGIN_REQ_DEVICETOKEN = 264;
+ *
+ *
+ *
+ */
+ CID_LOGIN_REQ_DEVICETOKEN(7, 264),
+ /**
+ * CID_LOGIN_RES_DEVICETOKEN = 265;
+ *
+ *
+ *
+ */
+ CID_LOGIN_RES_DEVICETOKEN(8, 265),
+ /**
+ * CID_LOGIN_REQ_KICKPCCLIENT = 266;
+ */
+ CID_LOGIN_REQ_KICKPCCLIENT(9, 266),
+ /**
+ * CID_LOGIN_RES_KICKPCCLIENT = 267;
+ */
+ CID_LOGIN_RES_KICKPCCLIENT(10, 267),
+ ;
+
+ /**
+ * CID_LOGIN_REQ_MSGSERVER = 257;
+ *
+ *
+ *
+ */
+ public static final int CID_LOGIN_REQ_MSGSERVER_VALUE = 257;
+ /**
+ * CID_LOGIN_RES_MSGSERVER = 258;
+ *
+ *
+ *
+ */
+ public static final int CID_LOGIN_RES_MSGSERVER_VALUE = 258;
+ /**
+ * CID_LOGIN_REQ_USERLOGIN = 259;
+ *
+ *
+ *
+ */
+ public static final int CID_LOGIN_REQ_USERLOGIN_VALUE = 259;
+ /**
+ * CID_LOGIN_RES_USERLOGIN = 260;
+ *
+ *
+ *
+ */
+ public static final int CID_LOGIN_RES_USERLOGIN_VALUE = 260;
+ /**
+ * CID_LOGIN_REQ_LOGINOUT = 261;
+ *
+ *
+ *
+ */
+ public static final int CID_LOGIN_REQ_LOGINOUT_VALUE = 261;
+ /**
+ * CID_LOGIN_RES_LOGINOUT = 262;
+ *
+ *
+ *
+ */
+ public static final int CID_LOGIN_RES_LOGINOUT_VALUE = 262;
+ /**
+ * CID_LOGIN_KICK_USER = 263;
+ *
+ *
+ *
+ */
+ public static final int CID_LOGIN_KICK_USER_VALUE = 263;
+ /**
+ * CID_LOGIN_REQ_DEVICETOKEN = 264;
+ *
+ *
+ *
+ */
+ public static final int CID_LOGIN_REQ_DEVICETOKEN_VALUE = 264;
+ /**
+ * CID_LOGIN_RES_DEVICETOKEN = 265;
+ *
+ *
+ *
+ */
+ public static final int CID_LOGIN_RES_DEVICETOKEN_VALUE = 265;
+ /**
+ * CID_LOGIN_REQ_KICKPCCLIENT = 266;
+ */
+ public static final int CID_LOGIN_REQ_KICKPCCLIENT_VALUE = 266;
+ /**
+ * CID_LOGIN_RES_KICKPCCLIENT = 267;
+ */
+ public static final int CID_LOGIN_RES_KICKPCCLIENT_VALUE = 267;
+
+
+ public final int getNumber() { return value; }
+
+ public static LoginCmdID valueOf(int value) {
+ switch (value) {
+ case 257: return CID_LOGIN_REQ_MSGSERVER;
+ case 258: return CID_LOGIN_RES_MSGSERVER;
+ case 259: return CID_LOGIN_REQ_USERLOGIN;
+ case 260: return CID_LOGIN_RES_USERLOGIN;
+ case 261: return CID_LOGIN_REQ_LOGINOUT;
+ case 262: return CID_LOGIN_RES_LOGINOUT;
+ case 263: return CID_LOGIN_KICK_USER;
+ case 264: return CID_LOGIN_REQ_DEVICETOKEN;
+ case 265: return CID_LOGIN_RES_DEVICETOKEN;
+ case 266: return CID_LOGIN_REQ_KICKPCCLIENT;
+ case 267: return CID_LOGIN_RES_KICKPCCLIENT;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap
+ * command id for buddy list
+ *
+ */
+ public enum BuddyListCmdID
+ implements com.google.protobuf.Internal.EnumLite {
+ /**
+ * CID_BUDDY_LIST_RECENT_CONTACT_SESSION_REQUEST = 513;
+ */
+ CID_BUDDY_LIST_RECENT_CONTACT_SESSION_REQUEST(0, 513),
+ /**
+ * CID_BUDDY_LIST_RECENT_CONTACT_SESSION_RESPONSE = 514;
+ */
+ CID_BUDDY_LIST_RECENT_CONTACT_SESSION_RESPONSE(1, 514),
+ /**
+ * CID_BUDDY_LIST_STATUS_NOTIFY = 515;
+ *
+ *
+ *
+ */
+ CID_BUDDY_LIST_STATUS_NOTIFY(2, 515),
+ /**
+ * CID_BUDDY_LIST_USER_INFO_REQUEST = 516;
+ *
+ *
+ *
+ */
+ CID_BUDDY_LIST_USER_INFO_REQUEST(3, 516),
+ /**
+ * CID_BUDDY_LIST_USER_INFO_RESPONSE = 517;
+ */
+ CID_BUDDY_LIST_USER_INFO_RESPONSE(4, 517),
+ /**
+ * CID_BUDDY_LIST_REMOVE_SESSION_REQ = 518;
+ */
+ CID_BUDDY_LIST_REMOVE_SESSION_REQ(5, 518),
+ /**
+ * CID_BUDDY_LIST_REMOVE_SESSION_RES = 519;
+ */
+ CID_BUDDY_LIST_REMOVE_SESSION_RES(6, 519),
+ /**
+ * CID_BUDDY_LIST_ALL_USER_REQUEST = 520;
+ */
+ CID_BUDDY_LIST_ALL_USER_REQUEST(7, 520),
+ /**
+ * CID_BUDDY_LIST_ALL_USER_RESPONSE = 521;
+ */
+ CID_BUDDY_LIST_ALL_USER_RESPONSE(8, 521),
+ /**
+ * CID_BUDDY_LIST_USERS_STATUS_REQUEST = 522;
+ */
+ CID_BUDDY_LIST_USERS_STATUS_REQUEST(9, 522),
+ /**
+ * CID_BUDDY_LIST_USERS_STATUS_RESPONSE = 523;
+ */
+ CID_BUDDY_LIST_USERS_STATUS_RESPONSE(10, 523),
+ /**
+ * CID_BUDDY_LIST_CHANGE_AVATAR_REQUEST = 524;
+ */
+ CID_BUDDY_LIST_CHANGE_AVATAR_REQUEST(11, 524),
+ /**
+ * CID_BUDDY_LIST_CHANGE_AVATAR_RESPONSE = 525;
+ */
+ CID_BUDDY_LIST_CHANGE_AVATAR_RESPONSE(12, 525),
+ /**
+ * CID_BUDDY_LIST_PC_LOGIN_STATUS_NOTIFY = 526;
+ */
+ CID_BUDDY_LIST_PC_LOGIN_STATUS_NOTIFY(13, 526),
+ /**
+ * CID_BUDDY_LIST_REMOVE_SESSION_NOTIFY = 527;
+ */
+ CID_BUDDY_LIST_REMOVE_SESSION_NOTIFY(14, 527),
+ /**
+ * CID_BUDDY_LIST_DEPARTMENT_REQUEST = 528;
+ */
+ CID_BUDDY_LIST_DEPARTMENT_REQUEST(15, 528),
+ /**
+ * CID_BUDDY_LIST_DEPARTMENT_RESPONSE = 529;
+ */
+ CID_BUDDY_LIST_DEPARTMENT_RESPONSE(16, 529),
+ ;
+
+ /**
+ * CID_BUDDY_LIST_RECENT_CONTACT_SESSION_REQUEST = 513;
+ */
+ public static final int CID_BUDDY_LIST_RECENT_CONTACT_SESSION_REQUEST_VALUE = 513;
+ /**
+ * CID_BUDDY_LIST_RECENT_CONTACT_SESSION_RESPONSE = 514;
+ */
+ public static final int CID_BUDDY_LIST_RECENT_CONTACT_SESSION_RESPONSE_VALUE = 514;
+ /**
+ * CID_BUDDY_LIST_STATUS_NOTIFY = 515;
+ *
+ *
+ *
+ */
+ public static final int CID_BUDDY_LIST_STATUS_NOTIFY_VALUE = 515;
+ /**
+ * CID_BUDDY_LIST_USER_INFO_REQUEST = 516;
+ *
+ *
+ *
+ */
+ public static final int CID_BUDDY_LIST_USER_INFO_REQUEST_VALUE = 516;
+ /**
+ * CID_BUDDY_LIST_USER_INFO_RESPONSE = 517;
+ */
+ public static final int CID_BUDDY_LIST_USER_INFO_RESPONSE_VALUE = 517;
+ /**
+ * CID_BUDDY_LIST_REMOVE_SESSION_REQ = 518;
+ */
+ public static final int CID_BUDDY_LIST_REMOVE_SESSION_REQ_VALUE = 518;
+ /**
+ * CID_BUDDY_LIST_REMOVE_SESSION_RES = 519;
+ */
+ public static final int CID_BUDDY_LIST_REMOVE_SESSION_RES_VALUE = 519;
+ /**
+ * CID_BUDDY_LIST_ALL_USER_REQUEST = 520;
+ */
+ public static final int CID_BUDDY_LIST_ALL_USER_REQUEST_VALUE = 520;
+ /**
+ * CID_BUDDY_LIST_ALL_USER_RESPONSE = 521;
+ */
+ public static final int CID_BUDDY_LIST_ALL_USER_RESPONSE_VALUE = 521;
+ /**
+ * CID_BUDDY_LIST_USERS_STATUS_REQUEST = 522;
+ */
+ public static final int CID_BUDDY_LIST_USERS_STATUS_REQUEST_VALUE = 522;
+ /**
+ * CID_BUDDY_LIST_USERS_STATUS_RESPONSE = 523;
+ */
+ public static final int CID_BUDDY_LIST_USERS_STATUS_RESPONSE_VALUE = 523;
+ /**
+ * CID_BUDDY_LIST_CHANGE_AVATAR_REQUEST = 524;
+ */
+ public static final int CID_BUDDY_LIST_CHANGE_AVATAR_REQUEST_VALUE = 524;
+ /**
+ * CID_BUDDY_LIST_CHANGE_AVATAR_RESPONSE = 525;
+ */
+ public static final int CID_BUDDY_LIST_CHANGE_AVATAR_RESPONSE_VALUE = 525;
+ /**
+ * CID_BUDDY_LIST_PC_LOGIN_STATUS_NOTIFY = 526;
+ */
+ public static final int CID_BUDDY_LIST_PC_LOGIN_STATUS_NOTIFY_VALUE = 526;
+ /**
+ * CID_BUDDY_LIST_REMOVE_SESSION_NOTIFY = 527;
+ */
+ public static final int CID_BUDDY_LIST_REMOVE_SESSION_NOTIFY_VALUE = 527;
+ /**
+ * CID_BUDDY_LIST_DEPARTMENT_REQUEST = 528;
+ */
+ public static final int CID_BUDDY_LIST_DEPARTMENT_REQUEST_VALUE = 528;
+ /**
+ * CID_BUDDY_LIST_DEPARTMENT_RESPONSE = 529;
+ */
+ public static final int CID_BUDDY_LIST_DEPARTMENT_RESPONSE_VALUE = 529;
+
+
+ public final int getNumber() { return value; }
+
+ public static BuddyListCmdID valueOf(int value) {
+ switch (value) {
+ case 513: return CID_BUDDY_LIST_RECENT_CONTACT_SESSION_REQUEST;
+ case 514: return CID_BUDDY_LIST_RECENT_CONTACT_SESSION_RESPONSE;
+ case 515: return CID_BUDDY_LIST_STATUS_NOTIFY;
+ case 516: return CID_BUDDY_LIST_USER_INFO_REQUEST;
+ case 517: return CID_BUDDY_LIST_USER_INFO_RESPONSE;
+ case 518: return CID_BUDDY_LIST_REMOVE_SESSION_REQ;
+ case 519: return CID_BUDDY_LIST_REMOVE_SESSION_RES;
+ case 520: return CID_BUDDY_LIST_ALL_USER_REQUEST;
+ case 521: return CID_BUDDY_LIST_ALL_USER_RESPONSE;
+ case 522: return CID_BUDDY_LIST_USERS_STATUS_REQUEST;
+ case 523: return CID_BUDDY_LIST_USERS_STATUS_RESPONSE;
+ case 524: return CID_BUDDY_LIST_CHANGE_AVATAR_REQUEST;
+ case 525: return CID_BUDDY_LIST_CHANGE_AVATAR_RESPONSE;
+ case 526: return CID_BUDDY_LIST_PC_LOGIN_STATUS_NOTIFY;
+ case 527: return CID_BUDDY_LIST_REMOVE_SESSION_NOTIFY;
+ case 528: return CID_BUDDY_LIST_DEPARTMENT_REQUEST;
+ case 529: return CID_BUDDY_LIST_DEPARTMENT_RESPONSE;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap
+ * command id for msg
+ *
+ */
+ public enum MessageCmdID
+ implements com.google.protobuf.Internal.EnumLite {
+ /**
+ * CID_MSG_DATA = 769;
+ *
+ *
+ *
+ */
+ CID_MSG_DATA(0, 769),
+ /**
+ * CID_MSG_DATA_ACK = 770;
+ *
+ *
+ *
+ */
+ CID_MSG_DATA_ACK(1, 770),
+ /**
+ * CID_MSG_READ_ACK = 771;
+ *
+ *
+ *
+ */
+ CID_MSG_READ_ACK(2, 771),
+ /**
+ * CID_MSG_READ_NOTIFY = 772;
+ *
+ *
+ * 已读消息通知
+ *
+ */
+ CID_MSG_READ_NOTIFY(3, 772),
+ /**
+ * CID_MSG_TIME_REQUEST = 773;
+ *
+ *
+ *
+ */
+ CID_MSG_TIME_REQUEST(4, 773),
+ /**
+ * CID_MSG_TIME_RESPONSE = 774;
+ *
+ *
+ *
+ */
+ CID_MSG_TIME_RESPONSE(5, 774),
+ /**
+ * CID_MSG_UNREAD_CNT_REQUEST = 775;
+ *
+ *
+ *
+ */
+ CID_MSG_UNREAD_CNT_REQUEST(6, 775),
+ /**
+ * CID_MSG_UNREAD_CNT_RESPONSE = 776;
+ *
+ *
+ *
+ */
+ CID_MSG_UNREAD_CNT_RESPONSE(7, 776),
+ /**
+ * CID_MSG_LIST_REQUEST = 777;
+ *
+ *
+ *获取指定队列消息
+ *
+ */
+ CID_MSG_LIST_REQUEST(8, 777),
+ /**
+ * CID_MSG_LIST_RESPONSE = 778;
+ */
+ CID_MSG_LIST_RESPONSE(9, 778),
+ /**
+ * CID_MSG_GET_LATEST_MSG_ID_REQ = 779;
+ */
+ CID_MSG_GET_LATEST_MSG_ID_REQ(10, 779),
+ /**
+ * CID_MSG_GET_LATEST_MSG_ID_RSP = 780;
+ */
+ CID_MSG_GET_LATEST_MSG_ID_RSP(11, 780),
+ /**
+ * CID_MSG_GET_BY_MSG_ID_REQ = 781;
+ */
+ CID_MSG_GET_BY_MSG_ID_REQ(12, 781),
+ /**
+ * CID_MSG_GET_BY_MSG_ID_RES = 782;
+ */
+ CID_MSG_GET_BY_MSG_ID_RES(13, 782),
+ ;
+
+ /**
+ * CID_MSG_DATA = 769;
+ *
+ *
+ *
+ */
+ public static final int CID_MSG_DATA_VALUE = 769;
+ /**
+ * CID_MSG_DATA_ACK = 770;
+ *
+ *
+ *
+ */
+ public static final int CID_MSG_DATA_ACK_VALUE = 770;
+ /**
+ * CID_MSG_READ_ACK = 771;
+ *
+ *
+ *
+ */
+ public static final int CID_MSG_READ_ACK_VALUE = 771;
+ /**
+ * CID_MSG_READ_NOTIFY = 772;
+ *
+ *
+ * 已读消息通知
+ *
+ */
+ public static final int CID_MSG_READ_NOTIFY_VALUE = 772;
+ /**
+ * CID_MSG_TIME_REQUEST = 773;
+ *
+ *
+ *
+ */
+ public static final int CID_MSG_TIME_REQUEST_VALUE = 773;
+ /**
+ * CID_MSG_TIME_RESPONSE = 774;
+ *
+ *
+ *
+ */
+ public static final int CID_MSG_TIME_RESPONSE_VALUE = 774;
+ /**
+ * CID_MSG_UNREAD_CNT_REQUEST = 775;
+ *
+ *
+ *
+ */
+ public static final int CID_MSG_UNREAD_CNT_REQUEST_VALUE = 775;
+ /**
+ * CID_MSG_UNREAD_CNT_RESPONSE = 776;
+ *
+ *
+ *
+ */
+ public static final int CID_MSG_UNREAD_CNT_RESPONSE_VALUE = 776;
+ /**
+ * CID_MSG_LIST_REQUEST = 777;
+ *
+ *
+ *获取指定队列消息
+ *
+ */
+ public static final int CID_MSG_LIST_REQUEST_VALUE = 777;
+ /**
+ * CID_MSG_LIST_RESPONSE = 778;
+ */
+ public static final int CID_MSG_LIST_RESPONSE_VALUE = 778;
+ /**
+ * CID_MSG_GET_LATEST_MSG_ID_REQ = 779;
+ */
+ public static final int CID_MSG_GET_LATEST_MSG_ID_REQ_VALUE = 779;
+ /**
+ * CID_MSG_GET_LATEST_MSG_ID_RSP = 780;
+ */
+ public static final int CID_MSG_GET_LATEST_MSG_ID_RSP_VALUE = 780;
+ /**
+ * CID_MSG_GET_BY_MSG_ID_REQ = 781;
+ */
+ public static final int CID_MSG_GET_BY_MSG_ID_REQ_VALUE = 781;
+ /**
+ * CID_MSG_GET_BY_MSG_ID_RES = 782;
+ */
+ public static final int CID_MSG_GET_BY_MSG_ID_RES_VALUE = 782;
+
+
+ public final int getNumber() { return value; }
+
+ public static MessageCmdID valueOf(int value) {
+ switch (value) {
+ case 769: return CID_MSG_DATA;
+ case 770: return CID_MSG_DATA_ACK;
+ case 771: return CID_MSG_READ_ACK;
+ case 772: return CID_MSG_READ_NOTIFY;
+ case 773: return CID_MSG_TIME_REQUEST;
+ case 774: return CID_MSG_TIME_RESPONSE;
+ case 775: return CID_MSG_UNREAD_CNT_REQUEST;
+ case 776: return CID_MSG_UNREAD_CNT_RESPONSE;
+ case 777: return CID_MSG_LIST_REQUEST;
+ case 778: return CID_MSG_LIST_RESPONSE;
+ case 779: return CID_MSG_GET_LATEST_MSG_ID_REQ;
+ case 780: return CID_MSG_GET_LATEST_MSG_ID_RSP;
+ case 781: return CID_MSG_GET_BY_MSG_ID_REQ;
+ case 782: return CID_MSG_GET_BY_MSG_ID_RES;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap
+ * command id for group message
+ *
+ */
+ public enum GroupCmdID
+ implements com.google.protobuf.Internal.EnumLite {
+ /**
+ * CID_GROUP_NORMAL_LIST_REQUEST = 1025;
+ */
+ CID_GROUP_NORMAL_LIST_REQUEST(0, 1025),
+ /**
+ * CID_GROUP_NORMAL_LIST_RESPONSE = 1026;
+ */
+ CID_GROUP_NORMAL_LIST_RESPONSE(1, 1026),
+ /**
+ * CID_GROUP_INFO_REQUEST = 1027;
+ */
+ CID_GROUP_INFO_REQUEST(2, 1027),
+ /**
+ * CID_GROUP_INFO_RESPONSE = 1028;
+ */
+ CID_GROUP_INFO_RESPONSE(3, 1028),
+ /**
+ * CID_GROUP_CREATE_REQUEST = 1029;
+ */
+ CID_GROUP_CREATE_REQUEST(4, 1029),
+ /**
+ * CID_GROUP_CREATE_RESPONSE = 1030;
+ */
+ CID_GROUP_CREATE_RESPONSE(5, 1030),
+ /**
+ * CID_GROUP_CHANGE_MEMBER_REQUEST = 1031;
+ */
+ CID_GROUP_CHANGE_MEMBER_REQUEST(6, 1031),
+ /**
+ * CID_GROUP_CHANGE_MEMBER_RESPONSE = 1032;
+ */
+ CID_GROUP_CHANGE_MEMBER_RESPONSE(7, 1032),
+ /**
+ * CID_GROUP_SHIELD_GROUP_REQUEST = 1033;
+ */
+ CID_GROUP_SHIELD_GROUP_REQUEST(8, 1033),
+ /**
+ * CID_GROUP_SHIELD_GROUP_RESPONSE = 1034;
+ */
+ CID_GROUP_SHIELD_GROUP_RESPONSE(9, 1034),
+ /**
+ * CID_GROUP_CHANGE_MEMBER_NOTIFY = 1035;
+ */
+ CID_GROUP_CHANGE_MEMBER_NOTIFY(10, 1035),
+ ;
+
+ /**
+ * CID_GROUP_NORMAL_LIST_REQUEST = 1025;
+ */
+ public static final int CID_GROUP_NORMAL_LIST_REQUEST_VALUE = 1025;
+ /**
+ * CID_GROUP_NORMAL_LIST_RESPONSE = 1026;
+ */
+ public static final int CID_GROUP_NORMAL_LIST_RESPONSE_VALUE = 1026;
+ /**
+ * CID_GROUP_INFO_REQUEST = 1027;
+ */
+ public static final int CID_GROUP_INFO_REQUEST_VALUE = 1027;
+ /**
+ * CID_GROUP_INFO_RESPONSE = 1028;
+ */
+ public static final int CID_GROUP_INFO_RESPONSE_VALUE = 1028;
+ /**
+ * CID_GROUP_CREATE_REQUEST = 1029;
+ */
+ public static final int CID_GROUP_CREATE_REQUEST_VALUE = 1029;
+ /**
+ * CID_GROUP_CREATE_RESPONSE = 1030;
+ */
+ public static final int CID_GROUP_CREATE_RESPONSE_VALUE = 1030;
+ /**
+ * CID_GROUP_CHANGE_MEMBER_REQUEST = 1031;
+ */
+ public static final int CID_GROUP_CHANGE_MEMBER_REQUEST_VALUE = 1031;
+ /**
+ * CID_GROUP_CHANGE_MEMBER_RESPONSE = 1032;
+ */
+ public static final int CID_GROUP_CHANGE_MEMBER_RESPONSE_VALUE = 1032;
+ /**
+ * CID_GROUP_SHIELD_GROUP_REQUEST = 1033;
+ */
+ public static final int CID_GROUP_SHIELD_GROUP_REQUEST_VALUE = 1033;
+ /**
+ * CID_GROUP_SHIELD_GROUP_RESPONSE = 1034;
+ */
+ public static final int CID_GROUP_SHIELD_GROUP_RESPONSE_VALUE = 1034;
+ /**
+ * CID_GROUP_CHANGE_MEMBER_NOTIFY = 1035;
+ */
+ public static final int CID_GROUP_CHANGE_MEMBER_NOTIFY_VALUE = 1035;
+
+
+ public final int getNumber() { return value; }
+
+ public static GroupCmdID valueOf(int value) {
+ switch (value) {
+ case 1025: return CID_GROUP_NORMAL_LIST_REQUEST;
+ case 1026: return CID_GROUP_NORMAL_LIST_RESPONSE;
+ case 1027: return CID_GROUP_INFO_REQUEST;
+ case 1028: return CID_GROUP_INFO_RESPONSE;
+ case 1029: return CID_GROUP_CREATE_REQUEST;
+ case 1030: return CID_GROUP_CREATE_RESPONSE;
+ case 1031: return CID_GROUP_CHANGE_MEMBER_REQUEST;
+ case 1032: return CID_GROUP_CHANGE_MEMBER_RESPONSE;
+ case 1033: return CID_GROUP_SHIELD_GROUP_REQUEST;
+ case 1034: return CID_GROUP_SHIELD_GROUP_RESPONSE;
+ case 1035: return CID_GROUP_CHANGE_MEMBER_NOTIFY;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapCID_FILE_LOGIN_REQ = 1281;
+ *
+ *
+ * sender/receiver need to login to
+ *
+ */
+ CID_FILE_LOGIN_REQ(0, 1281),
+ /**
+ * CID_FILE_LOGIN_RES = 1282;
+ *
+ *
+ * login success or failure
+ *
+ */
+ CID_FILE_LOGIN_RES(1, 1282),
+ /**
+ * CID_FILE_STATE = 1283;
+ */
+ CID_FILE_STATE(2, 1283),
+ /**
+ * CID_FILE_PULL_DATA_REQ = 1284;
+ */
+ CID_FILE_PULL_DATA_REQ(3, 1284),
+ /**
+ * CID_FILE_PULL_DATA_RSP = 1285;
+ */
+ CID_FILE_PULL_DATA_RSP(4, 1285),
+ /**
+ * CID_FILE_REQUEST = 1286;
+ *
+ *
+ * To MsgServer
+ *
+ */
+ CID_FILE_REQUEST(5, 1286),
+ /**
+ * CID_FILE_RESPONSE = 1287;
+ *
+ *
+ * receiver -> sender
+ *
+ */
+ CID_FILE_RESPONSE(6, 1287),
+ /**
+ * CID_FILE_NOTIFY = 1288;
+ */
+ CID_FILE_NOTIFY(7, 1288),
+ /**
+ * CID_FILE_HAS_OFFLINE_REQ = 1289;
+ */
+ CID_FILE_HAS_OFFLINE_REQ(8, 1289),
+ /**
+ * CID_FILE_HAS_OFFLINE_RES = 1290;
+ */
+ CID_FILE_HAS_OFFLINE_RES(9, 1290),
+ /**
+ * CID_FILE_ADD_OFFLINE_REQ = 1291;
+ */
+ CID_FILE_ADD_OFFLINE_REQ(10, 1291),
+ /**
+ * CID_FILE_DEL_OFFLINE_REQ = 1292;
+ */
+ CID_FILE_DEL_OFFLINE_REQ(11, 1292),
+ ;
+
+ /**
+ * CID_FILE_LOGIN_REQ = 1281;
+ *
+ *
+ * sender/receiver need to login to
+ *
+ */
+ public static final int CID_FILE_LOGIN_REQ_VALUE = 1281;
+ /**
+ * CID_FILE_LOGIN_RES = 1282;
+ *
+ *
+ * login success or failure
+ *
+ */
+ public static final int CID_FILE_LOGIN_RES_VALUE = 1282;
+ /**
+ * CID_FILE_STATE = 1283;
+ */
+ public static final int CID_FILE_STATE_VALUE = 1283;
+ /**
+ * CID_FILE_PULL_DATA_REQ = 1284;
+ */
+ public static final int CID_FILE_PULL_DATA_REQ_VALUE = 1284;
+ /**
+ * CID_FILE_PULL_DATA_RSP = 1285;
+ */
+ public static final int CID_FILE_PULL_DATA_RSP_VALUE = 1285;
+ /**
+ * CID_FILE_REQUEST = 1286;
+ *
+ *
+ * To MsgServer
+ *
+ */
+ public static final int CID_FILE_REQUEST_VALUE = 1286;
+ /**
+ * CID_FILE_RESPONSE = 1287;
+ *
+ *
+ * receiver -> sender
+ *
+ */
+ public static final int CID_FILE_RESPONSE_VALUE = 1287;
+ /**
+ * CID_FILE_NOTIFY = 1288;
+ */
+ public static final int CID_FILE_NOTIFY_VALUE = 1288;
+ /**
+ * CID_FILE_HAS_OFFLINE_REQ = 1289;
+ */
+ public static final int CID_FILE_HAS_OFFLINE_REQ_VALUE = 1289;
+ /**
+ * CID_FILE_HAS_OFFLINE_RES = 1290;
+ */
+ public static final int CID_FILE_HAS_OFFLINE_RES_VALUE = 1290;
+ /**
+ * CID_FILE_ADD_OFFLINE_REQ = 1291;
+ */
+ public static final int CID_FILE_ADD_OFFLINE_REQ_VALUE = 1291;
+ /**
+ * CID_FILE_DEL_OFFLINE_REQ = 1292;
+ */
+ public static final int CID_FILE_DEL_OFFLINE_REQ_VALUE = 1292;
+
+
+ public final int getNumber() { return value; }
+
+ public static FileCmdID valueOf(int value) {
+ switch (value) {
+ case 1281: return CID_FILE_LOGIN_REQ;
+ case 1282: return CID_FILE_LOGIN_RES;
+ case 1283: return CID_FILE_STATE;
+ case 1284: return CID_FILE_PULL_DATA_REQ;
+ case 1285: return CID_FILE_PULL_DATA_RSP;
+ case 1286: return CID_FILE_REQUEST;
+ case 1287: return CID_FILE_RESPONSE;
+ case 1288: return CID_FILE_NOTIFY;
+ case 1289: return CID_FILE_HAS_OFFLINE_REQ;
+ case 1290: return CID_FILE_HAS_OFFLINE_RES;
+ case 1291: return CID_FILE_ADD_OFFLINE_REQ;
+ case 1292: return CID_FILE_DEL_OFFLINE_REQ;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMap
+ * command id for switch service
+ *
+ */
+ public enum SwitchServiceCmdID
+ implements com.google.protobuf.Internal.EnumLite {
+ /**
+ * CID_SWITCH_P2P_CMD = 1537;
+ *
+ *
+ *
+ */
+ CID_SWITCH_P2P_CMD(0, 1537),
+ ;
+
+ /**
+ * CID_SWITCH_P2P_CMD = 1537;
+ *
+ *
+ *
+ */
+ public static final int CID_SWITCH_P2P_CMD_VALUE = 1537;
+
+
+ public final int getNumber() { return value; }
+
+ public static SwitchServiceCmdID valueOf(int value) {
+ switch (value) {
+ case 1537: return CID_SWITCH_P2P_CMD;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapCID_OTHER_HEARTBEAT = 1793;
+ */
+ CID_OTHER_HEARTBEAT(0, 1793),
+ /**
+ * CID_OTHER_STOP_RECV_PACKET = 1794;
+ */
+ CID_OTHER_STOP_RECV_PACKET(1, 1794),
+ /**
+ * CID_OTHER_VALIDATE_REQ = 1795;
+ */
+ CID_OTHER_VALIDATE_REQ(2, 1795),
+ /**
+ * CID_OTHER_VALIDATE_RSP = 1796;
+ */
+ CID_OTHER_VALIDATE_RSP(3, 1796),
+ /**
+ * CID_OTHER_GET_DEVICE_TOKEN_REQ = 1797;
+ */
+ CID_OTHER_GET_DEVICE_TOKEN_REQ(4, 1797),
+ /**
+ * CID_OTHER_GET_DEVICE_TOKEN_RSP = 1798;
+ */
+ CID_OTHER_GET_DEVICE_TOKEN_RSP(5, 1798),
+ /**
+ * CID_OTHER_ROLE_SET = 1799;
+ */
+ CID_OTHER_ROLE_SET(6, 1799),
+ /**
+ * CID_OTHER_ONLINE_USER_INFO = 1800;
+ */
+ CID_OTHER_ONLINE_USER_INFO(7, 1800),
+ /**
+ * CID_OTHER_MSG_SERV_INFO = 1801;
+ */
+ CID_OTHER_MSG_SERV_INFO(8, 1801),
+ /**
+ * CID_OTHER_USER_STATUS_UPDATE = 1802;
+ */
+ CID_OTHER_USER_STATUS_UPDATE(9, 1802),
+ /**
+ * CID_OTHER_USER_CNT_UPDATE = 1803;
+ */
+ CID_OTHER_USER_CNT_UPDATE(10, 1803),
+ /**
+ * CID_OTHER_SERVER_KICK_USER = 1805;
+ */
+ CID_OTHER_SERVER_KICK_USER(11, 1805),
+ /**
+ * CID_OTHER_LOGIN_STATUS_NOTIFY = 1806;
+ */
+ CID_OTHER_LOGIN_STATUS_NOTIFY(12, 1806),
+ /**
+ * CID_OTHER_PUSH_TO_USER_REQ = 1807;
+ */
+ CID_OTHER_PUSH_TO_USER_REQ(13, 1807),
+ /**
+ * CID_OTHER_PUSH_TO_USER_RSP = 1808;
+ */
+ CID_OTHER_PUSH_TO_USER_RSP(14, 1808),
+ /**
+ * CID_OTHER_GET_SHIELD_REQ = 1809;
+ */
+ CID_OTHER_GET_SHIELD_REQ(15, 1809),
+ /**
+ * CID_OTHER_GET_SHIELD_RSP = 1810;
+ */
+ CID_OTHER_GET_SHIELD_RSP(16, 1810),
+ /**
+ * CID_OTHER_FILE_TRANSFER_REQ = 1841;
+ */
+ CID_OTHER_FILE_TRANSFER_REQ(17, 1841),
+ /**
+ * CID_OTHER_FILE_TRANSFER_RSP = 1842;
+ */
+ CID_OTHER_FILE_TRANSFER_RSP(18, 1842),
+ /**
+ * CID_OTHER_FILE_SERVER_IP_REQ = 1843;
+ */
+ CID_OTHER_FILE_SERVER_IP_REQ(19, 1843),
+ /**
+ * CID_OTHER_FILE_SERVER_IP_RSP = 1844;
+ */
+ CID_OTHER_FILE_SERVER_IP_RSP(20, 1844),
+ ;
+
+ /**
+ * CID_OTHER_HEARTBEAT = 1793;
+ */
+ public static final int CID_OTHER_HEARTBEAT_VALUE = 1793;
+ /**
+ * CID_OTHER_STOP_RECV_PACKET = 1794;
+ */
+ public static final int CID_OTHER_STOP_RECV_PACKET_VALUE = 1794;
+ /**
+ * CID_OTHER_VALIDATE_REQ = 1795;
+ */
+ public static final int CID_OTHER_VALIDATE_REQ_VALUE = 1795;
+ /**
+ * CID_OTHER_VALIDATE_RSP = 1796;
+ */
+ public static final int CID_OTHER_VALIDATE_RSP_VALUE = 1796;
+ /**
+ * CID_OTHER_GET_DEVICE_TOKEN_REQ = 1797;
+ */
+ public static final int CID_OTHER_GET_DEVICE_TOKEN_REQ_VALUE = 1797;
+ /**
+ * CID_OTHER_GET_DEVICE_TOKEN_RSP = 1798;
+ */
+ public static final int CID_OTHER_GET_DEVICE_TOKEN_RSP_VALUE = 1798;
+ /**
+ * CID_OTHER_ROLE_SET = 1799;
+ */
+ public static final int CID_OTHER_ROLE_SET_VALUE = 1799;
+ /**
+ * CID_OTHER_ONLINE_USER_INFO = 1800;
+ */
+ public static final int CID_OTHER_ONLINE_USER_INFO_VALUE = 1800;
+ /**
+ * CID_OTHER_MSG_SERV_INFO = 1801;
+ */
+ public static final int CID_OTHER_MSG_SERV_INFO_VALUE = 1801;
+ /**
+ * CID_OTHER_USER_STATUS_UPDATE = 1802;
+ */
+ public static final int CID_OTHER_USER_STATUS_UPDATE_VALUE = 1802;
+ /**
+ * CID_OTHER_USER_CNT_UPDATE = 1803;
+ */
+ public static final int CID_OTHER_USER_CNT_UPDATE_VALUE = 1803;
+ /**
+ * CID_OTHER_SERVER_KICK_USER = 1805;
+ */
+ public static final int CID_OTHER_SERVER_KICK_USER_VALUE = 1805;
+ /**
+ * CID_OTHER_LOGIN_STATUS_NOTIFY = 1806;
+ */
+ public static final int CID_OTHER_LOGIN_STATUS_NOTIFY_VALUE = 1806;
+ /**
+ * CID_OTHER_PUSH_TO_USER_REQ = 1807;
+ */
+ public static final int CID_OTHER_PUSH_TO_USER_REQ_VALUE = 1807;
+ /**
+ * CID_OTHER_PUSH_TO_USER_RSP = 1808;
+ */
+ public static final int CID_OTHER_PUSH_TO_USER_RSP_VALUE = 1808;
+ /**
+ * CID_OTHER_GET_SHIELD_REQ = 1809;
+ */
+ public static final int CID_OTHER_GET_SHIELD_REQ_VALUE = 1809;
+ /**
+ * CID_OTHER_GET_SHIELD_RSP = 1810;
+ */
+ public static final int CID_OTHER_GET_SHIELD_RSP_VALUE = 1810;
+ /**
+ * CID_OTHER_FILE_TRANSFER_REQ = 1841;
+ */
+ public static final int CID_OTHER_FILE_TRANSFER_REQ_VALUE = 1841;
+ /**
+ * CID_OTHER_FILE_TRANSFER_RSP = 1842;
+ */
+ public static final int CID_OTHER_FILE_TRANSFER_RSP_VALUE = 1842;
+ /**
+ * CID_OTHER_FILE_SERVER_IP_REQ = 1843;
+ */
+ public static final int CID_OTHER_FILE_SERVER_IP_REQ_VALUE = 1843;
+ /**
+ * CID_OTHER_FILE_SERVER_IP_RSP = 1844;
+ */
+ public static final int CID_OTHER_FILE_SERVER_IP_RSP_VALUE = 1844;
+
+
+ public final int getNumber() { return value; }
+
+ public static OtherCmdID valueOf(int value) {
+ switch (value) {
+ case 1793: return CID_OTHER_HEARTBEAT;
+ case 1794: return CID_OTHER_STOP_RECV_PACKET;
+ case 1795: return CID_OTHER_VALIDATE_REQ;
+ case 1796: return CID_OTHER_VALIDATE_RSP;
+ case 1797: return CID_OTHER_GET_DEVICE_TOKEN_REQ;
+ case 1798: return CID_OTHER_GET_DEVICE_TOKEN_RSP;
+ case 1799: return CID_OTHER_ROLE_SET;
+ case 1800: return CID_OTHER_ONLINE_USER_INFO;
+ case 1801: return CID_OTHER_MSG_SERV_INFO;
+ case 1802: return CID_OTHER_USER_STATUS_UPDATE;
+ case 1803: return CID_OTHER_USER_CNT_UPDATE;
+ case 1805: return CID_OTHER_SERVER_KICK_USER;
+ case 1806: return CID_OTHER_LOGIN_STATUS_NOTIFY;
+ case 1807: return CID_OTHER_PUSH_TO_USER_REQ;
+ case 1808: return CID_OTHER_PUSH_TO_USER_RSP;
+ case 1809: return CID_OTHER_GET_SHIELD_REQ;
+ case 1810: return CID_OTHER_GET_SHIELD_RSP;
+ case 1841: return CID_OTHER_FILE_TRANSFER_REQ;
+ case 1842: return CID_OTHER_FILE_TRANSFER_RSP;
+ case 1843: return CID_OTHER_FILE_SERVER_IP_REQ;
+ case 1844: return CID_OTHER_FILE_SERVER_IP_RSP;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapCID_INTERNAL_SYNC_AUTH_INFO_REQ = 2049;
+ */
+ CID_INTERNAL_SYNC_AUTH_INFO_REQ(0, 2049),
+ /**
+ * CID_INTERNAL_SYNC_AUTH_INFO_RSP = 2050;
+ */
+ CID_INTERNAL_SYNC_AUTH_INFO_RSP(1, 2050),
+ /**
+ * CID_INTERNAL_USER_ID_BY_NICK_NAME_REQ = 2051;
+ */
+ CID_INTERNAL_USER_ID_BY_NICK_NAME_REQ(2, 2051),
+ /**
+ * CID_INTERNAL_USER_ID_BY_NICK_NAME_RSP = 2052;
+ */
+ CID_INTERNAL_USER_ID_BY_NICK_NAME_RSP(3, 2052),
+ ;
+
+ /**
+ * CID_INTERNAL_SYNC_AUTH_INFO_REQ = 2049;
+ */
+ public static final int CID_INTERNAL_SYNC_AUTH_INFO_REQ_VALUE = 2049;
+ /**
+ * CID_INTERNAL_SYNC_AUTH_INFO_RSP = 2050;
+ */
+ public static final int CID_INTERNAL_SYNC_AUTH_INFO_RSP_VALUE = 2050;
+ /**
+ * CID_INTERNAL_USER_ID_BY_NICK_NAME_REQ = 2051;
+ */
+ public static final int CID_INTERNAL_USER_ID_BY_NICK_NAME_REQ_VALUE = 2051;
+ /**
+ * CID_INTERNAL_USER_ID_BY_NICK_NAME_RSP = 2052;
+ */
+ public static final int CID_INTERNAL_USER_ID_BY_NICK_NAME_RSP_VALUE = 2052;
+
+
+ public final int getNumber() { return value; }
+
+ public static InternalCmdID valueOf(int value) {
+ switch (value) {
+ case 2049: return CID_INTERNAL_SYNC_AUTH_INFO_REQ;
+ case 2050: return CID_INTERNAL_SYNC_AUTH_INFO_RSP;
+ case 2051: return CID_INTERNAL_USER_ID_BY_NICK_NAME_REQ;
+ case 2052: return CID_INTERNAL_USER_ID_BY_NICK_NAME_RSP;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapREFUSE_REASON_NONE = 0;
+ */
+ REFUSE_REASON_NONE(0, 0),
+ /**
+ * REFUSE_REASON_NO_MSG_SERVER = 1;
+ */
+ REFUSE_REASON_NO_MSG_SERVER(1, 1),
+ /**
+ * REFUSE_REASON_MSG_SERVER_FULL = 2;
+ */
+ REFUSE_REASON_MSG_SERVER_FULL(2, 2),
+ /**
+ * REFUSE_REASON_NO_DB_SERVER = 3;
+ */
+ REFUSE_REASON_NO_DB_SERVER(3, 3),
+ /**
+ * REFUSE_REASON_NO_LOGIN_SERVER = 4;
+ */
+ REFUSE_REASON_NO_LOGIN_SERVER(4, 4),
+ /**
+ * REFUSE_REASON_NO_ROUTE_SERVER = 5;
+ */
+ REFUSE_REASON_NO_ROUTE_SERVER(5, 5),
+ /**
+ * REFUSE_REASON_DB_VALIDATE_FAILED = 6;
+ */
+ REFUSE_REASON_DB_VALIDATE_FAILED(6, 6),
+ /**
+ * REFUSE_REASON_VERSION_TOO_OLD = 7;
+ */
+ REFUSE_REASON_VERSION_TOO_OLD(7, 7),
+ ;
+
+ /**
+ * REFUSE_REASON_NONE = 0;
+ */
+ public static final int REFUSE_REASON_NONE_VALUE = 0;
+ /**
+ * REFUSE_REASON_NO_MSG_SERVER = 1;
+ */
+ public static final int REFUSE_REASON_NO_MSG_SERVER_VALUE = 1;
+ /**
+ * REFUSE_REASON_MSG_SERVER_FULL = 2;
+ */
+ public static final int REFUSE_REASON_MSG_SERVER_FULL_VALUE = 2;
+ /**
+ * REFUSE_REASON_NO_DB_SERVER = 3;
+ */
+ public static final int REFUSE_REASON_NO_DB_SERVER_VALUE = 3;
+ /**
+ * REFUSE_REASON_NO_LOGIN_SERVER = 4;
+ */
+ public static final int REFUSE_REASON_NO_LOGIN_SERVER_VALUE = 4;
+ /**
+ * REFUSE_REASON_NO_ROUTE_SERVER = 5;
+ */
+ public static final int REFUSE_REASON_NO_ROUTE_SERVER_VALUE = 5;
+ /**
+ * REFUSE_REASON_DB_VALIDATE_FAILED = 6;
+ */
+ public static final int REFUSE_REASON_DB_VALIDATE_FAILED_VALUE = 6;
+ /**
+ * REFUSE_REASON_VERSION_TOO_OLD = 7;
+ */
+ public static final int REFUSE_REASON_VERSION_TOO_OLD_VALUE = 7;
+
+
+ public final int getNumber() { return value; }
+
+ public static ResultType valueOf(int value) {
+ switch (value) {
+ case 0: return REFUSE_REASON_NONE;
+ case 1: return REFUSE_REASON_NO_MSG_SERVER;
+ case 2: return REFUSE_REASON_MSG_SERVER_FULL;
+ case 3: return REFUSE_REASON_NO_DB_SERVER;
+ case 4: return REFUSE_REASON_NO_LOGIN_SERVER;
+ case 5: return REFUSE_REASON_NO_ROUTE_SERVER;
+ case 6: return REFUSE_REASON_DB_VALIDATE_FAILED;
+ case 7: return REFUSE_REASON_VERSION_TOO_OLD;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapKICK_REASON_DUPLICATE_USER = 1;
+ */
+ KICK_REASON_DUPLICATE_USER(0, 1),
+ /**
+ * KICK_REASON_MOBILE_KICK = 2;
+ */
+ KICK_REASON_MOBILE_KICK(1, 2),
+ ;
+
+ /**
+ * KICK_REASON_DUPLICATE_USER = 1;
+ */
+ public static final int KICK_REASON_DUPLICATE_USER_VALUE = 1;
+ /**
+ * KICK_REASON_MOBILE_KICK = 2;
+ */
+ public static final int KICK_REASON_MOBILE_KICK_VALUE = 2;
+
+
+ public final int getNumber() { return value; }
+
+ public static KickReasonType valueOf(int value) {
+ switch (value) {
+ case 1: return KICK_REASON_DUPLICATE_USER;
+ case 2: return KICK_REASON_MOBILE_KICK;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapONLINE_LIST_TYPE_FRIEND_LIST = 1;
+ */
+ ONLINE_LIST_TYPE_FRIEND_LIST(0, 1),
+ ;
+
+ /**
+ * ONLINE_LIST_TYPE_FRIEND_LIST = 1;
+ */
+ public static final int ONLINE_LIST_TYPE_FRIEND_LIST_VALUE = 1;
+
+
+ public final int getNumber() { return value; }
+
+ public static OnlineListType valueOf(int value) {
+ switch (value) {
+ case 1: return ONLINE_LIST_TYPE_FRIEND_LIST;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapUSER_STATUS_ONLINE = 1;
+ */
+ USER_STATUS_ONLINE(0, 1),
+ /**
+ * USER_STATUS_OFFLINE = 2;
+ */
+ USER_STATUS_OFFLINE(1, 2),
+ /**
+ * USER_STATUS_LEAVE = 3;
+ */
+ USER_STATUS_LEAVE(2, 3),
+ ;
+
+ /**
+ * USER_STATUS_ONLINE = 1;
+ */
+ public static final int USER_STATUS_ONLINE_VALUE = 1;
+ /**
+ * USER_STATUS_OFFLINE = 2;
+ */
+ public static final int USER_STATUS_OFFLINE_VALUE = 2;
+ /**
+ * USER_STATUS_LEAVE = 3;
+ */
+ public static final int USER_STATUS_LEAVE_VALUE = 3;
+
+
+ public final int getNumber() { return value; }
+
+ public static UserStatType valueOf(int value) {
+ switch (value) {
+ case 1: return USER_STATUS_ONLINE;
+ case 2: return USER_STATUS_OFFLINE;
+ case 3: return USER_STATUS_LEAVE;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapSESSION_TYPE_SINGLE = 1;
+ *
+ *
+ *单个用户会话
+ *
+ */
+ SESSION_TYPE_SINGLE(0, 1),
+ /**
+ * SESSION_TYPE_GROUP = 2;
+ *
+ *
+ *群会话
+ *
+ */
+ SESSION_TYPE_GROUP(1, 2),
+ ;
+
+ /**
+ * SESSION_TYPE_SINGLE = 1;
+ *
+ *
+ *单个用户会话
+ *
+ */
+ public static final int SESSION_TYPE_SINGLE_VALUE = 1;
+ /**
+ * SESSION_TYPE_GROUP = 2;
+ *
+ *
+ *群会话
+ *
+ */
+ public static final int SESSION_TYPE_GROUP_VALUE = 2;
+
+
+ public final int getNumber() { return value; }
+
+ public static SessionType valueOf(int value) {
+ switch (value) {
+ case 1: return SESSION_TYPE_SINGLE;
+ case 2: return SESSION_TYPE_GROUP;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapMSG_TYPE_SINGLE_TEXT = 1;
+ */
+ MSG_TYPE_SINGLE_TEXT(0, 1),
+ /**
+ * MSG_TYPE_SINGLE_AUDIO = 2;
+ */
+ MSG_TYPE_SINGLE_AUDIO(1, 2),
+ /**
+ * MSG_TYPE_GROUP_TEXT = 17;
+ */
+ MSG_TYPE_GROUP_TEXT(2, 17),
+ /**
+ * MSG_TYPE_GROUP_AUDIO = 18;
+ */
+ MSG_TYPE_GROUP_AUDIO(3, 18),
+ ;
+
+ /**
+ * MSG_TYPE_SINGLE_TEXT = 1;
+ */
+ public static final int MSG_TYPE_SINGLE_TEXT_VALUE = 1;
+ /**
+ * MSG_TYPE_SINGLE_AUDIO = 2;
+ */
+ public static final int MSG_TYPE_SINGLE_AUDIO_VALUE = 2;
+ /**
+ * MSG_TYPE_GROUP_TEXT = 17;
+ */
+ public static final int MSG_TYPE_GROUP_TEXT_VALUE = 17;
+ /**
+ * MSG_TYPE_GROUP_AUDIO = 18;
+ */
+ public static final int MSG_TYPE_GROUP_AUDIO_VALUE = 18;
+
+
+ public final int getNumber() { return value; }
+
+ public static MsgType valueOf(int value) {
+ switch (value) {
+ case 1: return MSG_TYPE_SINGLE_TEXT;
+ case 2: return MSG_TYPE_SINGLE_AUDIO;
+ case 17: return MSG_TYPE_GROUP_TEXT;
+ case 18: return MSG_TYPE_GROUP_AUDIO;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapCLIENT_TYPE_WINDOWS = 1;
+ */
+ CLIENT_TYPE_WINDOWS(0, 1),
+ /**
+ * CLIENT_TYPE_MAC = 2;
+ */
+ CLIENT_TYPE_MAC(1, 2),
+ /**
+ * CLIENT_TYPE_IOS = 17;
+ */
+ CLIENT_TYPE_IOS(2, 17),
+ /**
+ * CLIENT_TYPE_ANDROID = 18;
+ */
+ CLIENT_TYPE_ANDROID(3, 18),
+ ;
+
+ /**
+ * CLIENT_TYPE_WINDOWS = 1;
+ */
+ public static final int CLIENT_TYPE_WINDOWS_VALUE = 1;
+ /**
+ * CLIENT_TYPE_MAC = 2;
+ */
+ public static final int CLIENT_TYPE_MAC_VALUE = 2;
+ /**
+ * CLIENT_TYPE_IOS = 17;
+ */
+ public static final int CLIENT_TYPE_IOS_VALUE = 17;
+ /**
+ * CLIENT_TYPE_ANDROID = 18;
+ */
+ public static final int CLIENT_TYPE_ANDROID_VALUE = 18;
+
+
+ public final int getNumber() { return value; }
+
+ public static ClientType valueOf(int value) {
+ switch (value) {
+ case 1: return CLIENT_TYPE_WINDOWS;
+ case 2: return CLIENT_TYPE_MAC;
+ case 17: return CLIENT_TYPE_IOS;
+ case 18: return CLIENT_TYPE_ANDROID;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapGROUP_TYPE_NORMAL = 1;
+ */
+ GROUP_TYPE_NORMAL(0, 1),
+ /**
+ * GROUP_TYPE_TMP = 2;
+ */
+ GROUP_TYPE_TMP(1, 2),
+ ;
+
+ /**
+ * GROUP_TYPE_NORMAL = 1;
+ */
+ public static final int GROUP_TYPE_NORMAL_VALUE = 1;
+ /**
+ * GROUP_TYPE_TMP = 2;
+ */
+ public static final int GROUP_TYPE_TMP_VALUE = 2;
+
+
+ public final int getNumber() { return value; }
+
+ public static GroupType valueOf(int value) {
+ switch (value) {
+ case 1: return GROUP_TYPE_NORMAL;
+ case 2: return GROUP_TYPE_TMP;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapGROUP_MODIFY_TYPE_ADD = 1;
+ */
+ GROUP_MODIFY_TYPE_ADD(0, 1),
+ /**
+ * GROUP_MODIFY_TYPE_DEL = 2;
+ */
+ GROUP_MODIFY_TYPE_DEL(1, 2),
+ ;
+
+ /**
+ * GROUP_MODIFY_TYPE_ADD = 1;
+ */
+ public static final int GROUP_MODIFY_TYPE_ADD_VALUE = 1;
+ /**
+ * GROUP_MODIFY_TYPE_DEL = 2;
+ */
+ public static final int GROUP_MODIFY_TYPE_DEL_VALUE = 2;
+
+
+ public final int getNumber() { return value; }
+
+ public static GroupModifyType valueOf(int value) {
+ switch (value) {
+ case 1: return GROUP_MODIFY_TYPE_ADD;
+ case 2: return GROUP_MODIFY_TYPE_DEL;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapFILE_TYPE_ONLINE = 1;
+ */
+ FILE_TYPE_ONLINE(0, 1),
+ /**
+ * FILE_TYPE_OFFLINE = 2;
+ */
+ FILE_TYPE_OFFLINE(1, 2),
+ ;
+
+ /**
+ * FILE_TYPE_ONLINE = 1;
+ */
+ public static final int FILE_TYPE_ONLINE_VALUE = 1;
+ /**
+ * FILE_TYPE_OFFLINE = 2;
+ */
+ public static final int FILE_TYPE_OFFLINE_VALUE = 2;
+
+
+ public final int getNumber() { return value; }
+
+ public static FileType valueOf(int value) {
+ switch (value) {
+ case 1: return FILE_TYPE_ONLINE;
+ case 2: return FILE_TYPE_OFFLINE;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapCLIENT_FILE_PEER_READY = 0;
+ */
+ CLIENT_FILE_PEER_READY(0, 0),
+ /**
+ * CLIENT_FILE_CANCEL = 1;
+ */
+ CLIENT_FILE_CANCEL(1, 1),
+ /**
+ * CLIENT_FILE_REFUSE = 2;
+ */
+ CLIENT_FILE_REFUSE(2, 2),
+ /**
+ * CLIENT_FILE_DONE = 3;
+ */
+ CLIENT_FILE_DONE(3, 3),
+ ;
+
+ /**
+ * CLIENT_FILE_PEER_READY = 0;
+ */
+ public static final int CLIENT_FILE_PEER_READY_VALUE = 0;
+ /**
+ * CLIENT_FILE_CANCEL = 1;
+ */
+ public static final int CLIENT_FILE_CANCEL_VALUE = 1;
+ /**
+ * CLIENT_FILE_REFUSE = 2;
+ */
+ public static final int CLIENT_FILE_REFUSE_VALUE = 2;
+ /**
+ * CLIENT_FILE_DONE = 3;
+ */
+ public static final int CLIENT_FILE_DONE_VALUE = 3;
+
+
+ public final int getNumber() { return value; }
+
+ public static ClientFileState valueOf(int value) {
+ switch (value) {
+ case 0: return CLIENT_FILE_PEER_READY;
+ case 1: return CLIENT_FILE_CANCEL;
+ case 2: return CLIENT_FILE_REFUSE;
+ case 3: return CLIENT_FILE_DONE;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapCLIENT_REALTIME_SENDER = 1;
+ */
+ CLIENT_REALTIME_SENDER(0, 1),
+ /**
+ * CLIENT_REALTIME_RECVER = 2;
+ */
+ CLIENT_REALTIME_RECVER(1, 2),
+ /**
+ * CLIENT_OFFLINE_UPLOAD = 3;
+ */
+ CLIENT_OFFLINE_UPLOAD(2, 3),
+ /**
+ * CLIENT_OFFLINE_DOWNLOAD = 4;
+ */
+ CLIENT_OFFLINE_DOWNLOAD(3, 4),
+ ;
+
+ /**
+ * CLIENT_REALTIME_SENDER = 1;
+ */
+ public static final int CLIENT_REALTIME_SENDER_VALUE = 1;
+ /**
+ * CLIENT_REALTIME_RECVER = 2;
+ */
+ public static final int CLIENT_REALTIME_RECVER_VALUE = 2;
+ /**
+ * CLIENT_OFFLINE_UPLOAD = 3;
+ */
+ public static final int CLIENT_OFFLINE_UPLOAD_VALUE = 3;
+ /**
+ * CLIENT_OFFLINE_DOWNLOAD = 4;
+ */
+ public static final int CLIENT_OFFLINE_DOWNLOAD_VALUE = 4;
+
+
+ public final int getNumber() { return value; }
+
+ public static ClientFileRole valueOf(int value) {
+ switch (value) {
+ case 1: return CLIENT_REALTIME_SENDER;
+ case 2: return CLIENT_REALTIME_RECVER;
+ case 3: return CLIENT_OFFLINE_UPLOAD;
+ case 4: return CLIENT_OFFLINE_DOWNLOAD;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapFILE_SERVER_ERRNO_OK = 0;
+ */
+ FILE_SERVER_ERRNO_OK(0, 0),
+ /**
+ * FILE_SERVER_ERRNO_CREATE_TASK_ID_ERROR = 1;
+ */
+ FILE_SERVER_ERRNO_CREATE_TASK_ID_ERROR(1, 1),
+ /**
+ * FILE_SERVER_ERRNO_CREATE_TASK_ERROR = 2;
+ */
+ FILE_SERVER_ERRNO_CREATE_TASK_ERROR(2, 2),
+ /**
+ * FILE_SERVER_ERRNO_LOGIN_INVALID_TOKEN = 3;
+ */
+ FILE_SERVER_ERRNO_LOGIN_INVALID_TOKEN(3, 3),
+ /**
+ * FILE_SERVER_ERRNO_INVALID_USER_FOR_TASK = 4;
+ */
+ FILE_SERVER_ERRNO_INVALID_USER_FOR_TASK(4, 4),
+ /**
+ * FILE_SERVER_ERRNO_PULL_DATA_WITH_INVALID_TASK_ID = 5;
+ */
+ FILE_SERVER_ERRNO_PULL_DATA_WITH_INVALID_TASK_ID(5, 5),
+ /**
+ * FILE_SERVER_ERRNO_PULL_DATA_ILLIEAGE_USER = 6;
+ */
+ FILE_SERVER_ERRNO_PULL_DATA_ILLIEAGE_USER(6, 6),
+ /**
+ * FILE_SERVER_ERRNO_PULL_DATA_MKDIR_ERROR = 7;
+ */
+ FILE_SERVER_ERRNO_PULL_DATA_MKDIR_ERROR(7, 7),
+ /**
+ * FILE_SERVER_ERRNO_PULL_DATA_OPEN_FILE_ERROR = 8;
+ */
+ FILE_SERVER_ERRNO_PULL_DATA_OPEN_FILE_ERROR(8, 8),
+ /**
+ * FILE_SERVER_ERRNO_PULL_DATA_READ_FILE_HEADER_ERROR = 9;
+ */
+ FILE_SERVER_ERRNO_PULL_DATA_READ_FILE_HEADER_ERROR(9, 9),
+ /**
+ * FILE_SERVER_ERRNO_PULL_DATA_ALLOC_MEM_ERROR = 10;
+ */
+ FILE_SERVER_ERRNO_PULL_DATA_ALLOC_MEM_ERROR(10, 10),
+ /**
+ * FILE_SERVER_ERRNO_PULL_DATA_SEEK_OFFSET_ERROR = 11;
+ */
+ FILE_SERVER_ERRNO_PULL_DATA_SEEK_OFFSET_ERROR(11, 11),
+ /**
+ * FILE_SERVER_ERRNO_PULL_DATA_FINISHED = 12;
+ */
+ FILE_SERVER_ERRNO_PULL_DATA_FINISHED(12, 12),
+ ;
+
+ /**
+ * FILE_SERVER_ERRNO_OK = 0;
+ */
+ public static final int FILE_SERVER_ERRNO_OK_VALUE = 0;
+ /**
+ * FILE_SERVER_ERRNO_CREATE_TASK_ID_ERROR = 1;
+ */
+ public static final int FILE_SERVER_ERRNO_CREATE_TASK_ID_ERROR_VALUE = 1;
+ /**
+ * FILE_SERVER_ERRNO_CREATE_TASK_ERROR = 2;
+ */
+ public static final int FILE_SERVER_ERRNO_CREATE_TASK_ERROR_VALUE = 2;
+ /**
+ * FILE_SERVER_ERRNO_LOGIN_INVALID_TOKEN = 3;
+ */
+ public static final int FILE_SERVER_ERRNO_LOGIN_INVALID_TOKEN_VALUE = 3;
+ /**
+ * FILE_SERVER_ERRNO_INVALID_USER_FOR_TASK = 4;
+ */
+ public static final int FILE_SERVER_ERRNO_INVALID_USER_FOR_TASK_VALUE = 4;
+ /**
+ * FILE_SERVER_ERRNO_PULL_DATA_WITH_INVALID_TASK_ID = 5;
+ */
+ public static final int FILE_SERVER_ERRNO_PULL_DATA_WITH_INVALID_TASK_ID_VALUE = 5;
+ /**
+ * FILE_SERVER_ERRNO_PULL_DATA_ILLIEAGE_USER = 6;
+ */
+ public static final int FILE_SERVER_ERRNO_PULL_DATA_ILLIEAGE_USER_VALUE = 6;
+ /**
+ * FILE_SERVER_ERRNO_PULL_DATA_MKDIR_ERROR = 7;
+ */
+ public static final int FILE_SERVER_ERRNO_PULL_DATA_MKDIR_ERROR_VALUE = 7;
+ /**
+ * FILE_SERVER_ERRNO_PULL_DATA_OPEN_FILE_ERROR = 8;
+ */
+ public static final int FILE_SERVER_ERRNO_PULL_DATA_OPEN_FILE_ERROR_VALUE = 8;
+ /**
+ * FILE_SERVER_ERRNO_PULL_DATA_READ_FILE_HEADER_ERROR = 9;
+ */
+ public static final int FILE_SERVER_ERRNO_PULL_DATA_READ_FILE_HEADER_ERROR_VALUE = 9;
+ /**
+ * FILE_SERVER_ERRNO_PULL_DATA_ALLOC_MEM_ERROR = 10;
+ */
+ public static final int FILE_SERVER_ERRNO_PULL_DATA_ALLOC_MEM_ERROR_VALUE = 10;
+ /**
+ * FILE_SERVER_ERRNO_PULL_DATA_SEEK_OFFSET_ERROR = 11;
+ */
+ public static final int FILE_SERVER_ERRNO_PULL_DATA_SEEK_OFFSET_ERROR_VALUE = 11;
+ /**
+ * FILE_SERVER_ERRNO_PULL_DATA_FINISHED = 12;
+ */
+ public static final int FILE_SERVER_ERRNO_PULL_DATA_FINISHED_VALUE = 12;
+
+
+ public final int getNumber() { return value; }
+
+ public static FileServerError valueOf(int value) {
+ switch (value) {
+ case 0: return FILE_SERVER_ERRNO_OK;
+ case 1: return FILE_SERVER_ERRNO_CREATE_TASK_ID_ERROR;
+ case 2: return FILE_SERVER_ERRNO_CREATE_TASK_ERROR;
+ case 3: return FILE_SERVER_ERRNO_LOGIN_INVALID_TOKEN;
+ case 4: return FILE_SERVER_ERRNO_INVALID_USER_FOR_TASK;
+ case 5: return FILE_SERVER_ERRNO_PULL_DATA_WITH_INVALID_TASK_ID;
+ case 6: return FILE_SERVER_ERRNO_PULL_DATA_ILLIEAGE_USER;
+ case 7: return FILE_SERVER_ERRNO_PULL_DATA_MKDIR_ERROR;
+ case 8: return FILE_SERVER_ERRNO_PULL_DATA_OPEN_FILE_ERROR;
+ case 9: return FILE_SERVER_ERRNO_PULL_DATA_READ_FILE_HEADER_ERROR;
+ case 10: return FILE_SERVER_ERRNO_PULL_DATA_ALLOC_MEM_ERROR;
+ case 11: return FILE_SERVER_ERRNO_PULL_DATA_SEEK_OFFSET_ERROR;
+ case 12: return FILE_SERVER_ERRNO_PULL_DATA_FINISHED;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapSESSION_STATUS_OK = 0;
+ */
+ SESSION_STATUS_OK(0, 0),
+ /**
+ * SESSION_STATUS_DELETE = 1;
+ */
+ SESSION_STATUS_DELETE(1, 1),
+ ;
+
+ /**
+ * SESSION_STATUS_OK = 0;
+ */
+ public static final int SESSION_STATUS_OK_VALUE = 0;
+ /**
+ * SESSION_STATUS_DELETE = 1;
+ */
+ public static final int SESSION_STATUS_DELETE_VALUE = 1;
+
+
+ public final int getNumber() { return value; }
+
+ public static SessionStatusType valueOf(int value) {
+ switch (value) {
+ case 0: return SESSION_STATUS_OK;
+ case 1: return SESSION_STATUS_DELETE;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMapDEPT_STATUS_OK = 0;
+ */
+ DEPT_STATUS_OK(0, 0),
+ /**
+ * DEPT_STATUS_DELETE = 1;
+ */
+ DEPT_STATUS_DELETE(1, 1),
+ ;
+
+ /**
+ * DEPT_STATUS_OK = 0;
+ */
+ public static final int DEPT_STATUS_OK_VALUE = 0;
+ /**
+ * DEPT_STATUS_DELETE = 1;
+ */
+ public static final int DEPT_STATUS_DELETE_VALUE = 1;
+
+
+ public final int getNumber() { return value; }
+
+ public static DepartmentStatusType valueOf(int value) {
+ switch (value) {
+ case 0: return DEPT_STATUS_OK;
+ case 1: return DEPT_STATUS_DELETE;
+ default: return null;
+ }
+ }
+
+ public static com.google.protobuf.Internal.EnumLiteMaprequired string ip = 1;
+ */
+ boolean hasIp();
+ /**
+ * required string ip = 1;
+ */
+ java.lang.String getIp();
+ /**
+ * required string ip = 1;
+ */
+ com.google.protobuf.ByteString
+ getIpBytes();
+
+ /**
+ * required uint32 port = 2;
+ */
+ boolean hasPort();
+ /**
+ * required uint32 port = 2;
+ */
+ int getPort();
+ }
+ /**
+ * Protobuf type {@code IM.BaseDefine.IpAddr}
+ */
+ public static final class IpAddr extends
+ com.google.protobuf.GeneratedMessageLite implements
+ // @@protoc_insertion_point(message_implements:IM.BaseDefine.IpAddr)
+ IpAddrOrBuilder {
+ // Use IpAddr.newBuilder() to construct.
+ private IpAddr(com.google.protobuf.GeneratedMessageLite.Builder builder) {
+ super(builder);
+ this.unknownFields = builder.getUnknownFields();
+ }
+ private IpAddr(boolean noInit) { this.unknownFields = com.google.protobuf.ByteString.EMPTY;}
+
+ private static final IpAddr defaultInstance;
+ public static IpAddr getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public IpAddr getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ private final com.google.protobuf.ByteString unknownFields;
+ private IpAddr(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ initFields();
+ int mutable_bitField0_ = 0;
+ com.google.protobuf.ByteString.Output unknownFieldsOutput =
+ com.google.protobuf.ByteString.newOutput();
+ com.google.protobuf.CodedOutputStream unknownFieldsCodedOutput =
+ com.google.protobuf.CodedOutputStream.newInstance(
+ unknownFieldsOutput);
+ try {
+ boolean done = false;
+ while (!done) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ done = true;
+ break;
+ default: {
+ if (!parseUnknownField(input, unknownFieldsCodedOutput,
+ extensionRegistry, tag)) {
+ done = true;
+ }
+ break;
+ }
+ case 10: {
+ com.google.protobuf.ByteString bs = input.readBytes();
+ bitField0_ |= 0x00000001;
+ ip_ = bs;
+ break;
+ }
+ case 16: {
+ bitField0_ |= 0x00000002;
+ port_ = input.readUInt32();
+ break;
+ }
+ }
+ }
+ } catch (com.google.protobuf.InvalidProtocolBufferException e) {
+ throw e.setUnfinishedMessage(this);
+ } catch (java.io.IOException e) {
+ throw new com.google.protobuf.InvalidProtocolBufferException(
+ e.getMessage()).setUnfinishedMessage(this);
+ } finally {
+ try {
+ unknownFieldsCodedOutput.flush();
+ } catch (java.io.IOException e) {
+ // Should not happen
+ } finally {
+ unknownFields = unknownFieldsOutput.toByteString();
+ }
+ makeExtensionsImmutable();
+ }
+ }
+ public static com.google.protobuf.Parser