ProtocolBuffers.ProtoPrepare.SearchMessageUp C# (CSharp) Method

SearchMessageUp() static private method

Searchs the message for matchink classes
static private SearchMessageUp ( Message p, string name ) : MessageEnumBase
p Message
name string /// name from .proto ///
return MessageEnumBase
        static MessageEnumBase SearchMessageUp(Message p, string[] name)
        {
            if (p is Proto)
                return SearchMessageDown (p, name);

            Message m = p as Message;
            if (m.ProtoName == name [0]) {
                if (name.Length == 1)
                    return m;

                string[] subName = new string[name.Length - 1];
                Array.Copy (name, 1, subName, 0, subName.Length);

                return SearchMessageDown (m, subName);
            }

            MessageEnumBase down = SearchMessageDown (p, name);
            if (down != null)
                return down;

            return SearchMessageUp (m.Parent, name);
        }