public List <TDocument> Find <TDocument>(QueryPlanResult plan, int page, int pageSize, int skip, out int total) where TDocument : hOOt.Document { lock (_gate) { BornOrRessurectIfDead(); if (plan.GetVersion(Type.TypeToken) != _version) { throw new DocumentIndexConcurrentAccessException(); } return(_documentIndex.Find <TDocument>(plan, page, pageSize, skip, out total)); } }