public void MergeFrom(Object other)
 {
     if (other == null)
     {
         return;
     }
     if (other.HookType != 0)
     {
         HookType = other.HookType;
     }
     if (other.HookName.Length != 0)
     {
         HookName = other.HookName;
     }
     if (other.request_ != null)
     {
         if (request_ == null)
         {
             request_ = new global::Coprocess.MiniRequestObject();
         }
         Request.MergeFrom(other.Request);
     }
     if (other.session_ != null)
     {
         if (session_ == null)
         {
             session_ = new global::Coprocess.SessionState();
         }
         Session.MergeFrom(other.Session);
     }
     metadata_.Add(other.metadata_);
     spec_.Add(other.spec_);
 }
        public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;

            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                default:
                    input.SkipLastField();
                    break;

                case 8: {
                    hookType_ = (global::Coprocess.HookType)input.ReadEnum();
                    break;
                }

                case 18: {
                    HookName = input.ReadString();
                    break;
                }

                case 26: {
                    if (request_ == null)
                    {
                        request_ = new global::Coprocess.MiniRequestObject();
                    }
                    input.ReadMessage(request_);
                    break;
                }

                case 34: {
                    if (session_ == null)
                    {
                        session_ = new global::Coprocess.SessionState();
                    }
                    input.ReadMessage(session_);
                    break;
                }

                case 42: {
                    metadata_.AddEntriesFrom(input, _map_metadata_codec);
                    break;
                }

                case 50: {
                    spec_.AddEntriesFrom(input, _map_spec_codec);
                    break;
                }
                }
            }
        }