Web.PublishedCache - introduce contextual caches

This commit is contained in:
Stephan
2013-03-19 17:51:55 -01:00
parent cb966ac70b
commit ce0c72d9f8
34 changed files with 450 additions and 184 deletions

View File

@@ -9,20 +9,44 @@ using Umbraco.Core.Xml;
namespace Umbraco.Web.PublishedCache
{
/// <summary>
/// Defines the methods for published documents
/// </summary>
[UmbracoExperimentalFeature("http://issues.umbraco.org/issue/U4-1153",
/// <summary>
/// Provides access to cached contents.
/// </summary>
[UmbracoExperimentalFeature("http://issues.umbraco.org/issue/U4-1153",
"We need to create something like the IPublishListener interface to have proper published content storage.")]
internal interface IPublishedCache
{
// FIXME do we need the context here?!
// FIXME write documentation
/// <summary>
/// Gets a content identified by its unique identifier.
/// </summary>
/// <param name="umbracoContext">The context.</param>
/// <param name="contentId">The content unique identifier.</param>
/// <returns>The content, or null.</returns>
IPublishedContent GetById(UmbracoContext umbracoContext, int contentId);
IPublishedContent GetById(UmbracoContext umbracoContext, int nodeId);
IEnumerable<IPublishedContent> GetAtRoot(UmbracoContext umbracoContext);
/// <summary>
/// Gets contents at root.
/// </summary>
/// <param name="umbracoContext">The context.</param>
/// <returns>The contents.</returns>
IEnumerable<IPublishedContent> GetAtRoot(UmbracoContext umbracoContext);
IPublishedContent GetSingleByXPath(UmbracoContext umbracoContext, string xpath, XPathVariable[] vars);
/// <summary>
/// Gets a content resulting from an XPath query.
/// </summary>
/// <param name="umbracoContext">The context.</param>
/// <param name="xpath">The XPath query.</param>
/// <param name="vars">Optional XPath variables.</param>
/// <returns>The content, or null.</returns>
IPublishedContent GetSingleByXPath(UmbracoContext umbracoContext, string xpath, XPathVariable[] vars);
/// <summary>
/// Gets contents resulting from an XPath query.
/// </summary>
/// <param name="umbracoContext">The context.</param>
/// <param name="xpath">The XPath query.</param>
/// <param name="vars">Optional XPath variables.</param>
/// <returns>The contents.</returns>
IEnumerable<IPublishedContent> GetByXPath(UmbracoContext umbracoContext, string xpath, XPathVariable[] vars);
// ... GetXPath single or multi