public virtual void WriteUntil(int p0, global::Com.Google.Protobuf.CodedOutputStream p1)
                {
                    if (id_writeUntil_ILcom_google_protobuf_CodedOutputStream_ == IntPtr.Zero)
                    {
                        id_writeUntil_ILcom_google_protobuf_CodedOutputStream_ = JNIEnv.GetMethodID(class_ref, "writeUntil", "(ILcom/google/protobuf/CodedOutputStream;)V");
                    }

                    if (GetType() == ThresholdType)
                    {
                        JNIEnv.CallVoidMethod(Handle, id_writeUntil_ILcom_google_protobuf_CodedOutputStream_, new JValue(p0), new JValue(p1));
                    }
                    else
                    {
                        JNIEnv.CallNonvirtualVoidMethod(Handle, ThresholdClass, JNIEnv.GetMethodID(ThresholdClass, "writeUntil", "(ILcom/google/protobuf/CodedOutputStream;)V"), new JValue(p0), new JValue(p1));
                    }
                }
 static void n_WriteUntil_ILcom_google_protobuf_CodedOutputStream_(IntPtr jnienv, IntPtr native__this, int p0, IntPtr native_p1)
 {
     global::Com.Google.Protobuf.GeneratedMessageLite.ExtendableMessage.ExtensionWriter __this = global::Java.Lang.Object.GetObject <global::Com.Google.Protobuf.GeneratedMessageLite.ExtendableMessage.ExtensionWriter> (jnienv, native__this, JniHandleOwnership.DoNotTransfer);
     global::Com.Google.Protobuf.CodedOutputStream p1 = global::Java.Lang.Object.GetObject <global::Com.Google.Protobuf.CodedOutputStream> (native_p1, JniHandleOwnership.DoNotTransfer);
     __this.WriteUntil(p0, p1);
 }