Fixing an issue with output parameters that are of type IntPtr
[castle.git] / MonoRail / Castle.MonoRail.Framework / Routing / IRoutingRuleContainer.cs
blobe8db570490cbbfb1e44fc702003cd12ceb067b7e
1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle.MonoRail.Framework.Routing
17 using System.Collections;
19 /// <summary>
20 ///
21 /// </summary>
22 public delegate void RouteAction(IRouteContext context, RouteMatch match);
24 /// <summary>
25 /// Pendent
26 /// </summary>
27 public interface IRoutingRuleContainer
29 /// <summary>
30 /// Pendent
31 /// </summary>
32 /// <param name="rule">The rule.</param>
33 void Add(IRoutingRule rule);
35 /// <summary>
36 /// Pendent
37 /// </summary>
38 /// <param name="rule">The rule.</param>
39 /// <param name="action">The action executed if the rule matches.</param>
40 void Add(IRoutingRule rule, RouteAction action);
42 /// <summary>
43 /// Pendent
44 /// </summary>
45 /// <param name="routeName">Name of the route.</param>
46 /// <param name="hostname">The hostname.</param>
47 /// <param name="virtualPath">The virtual path.</param>
48 /// <param name="parameters">The parameters.</param>
49 /// <returns></returns>
50 string CreateUrl(string routeName, string hostname, string virtualPath, IDictionary parameters);
52 /// <summary>
53 /// Pendent
54 /// </summary>
55 /// <param name="hostname">The hostname.</param>
56 /// <param name="virtualPath">The virtual path.</param>
57 /// <param name="parameters">The parameters.</param>
58 /// <returns></returns>
59 string CreateUrl(string hostname, string virtualPath, IDictionary parameters);
61 /// <summary>
62 /// Pendent
63 /// </summary>
64 /// <param name="url">The URL.</param>
65 /// <param name="context">The routing context.</param>
66 /// <returns></returns>
67 RouteMatch FindMatch(string url, IRouteContext context);
69 /// <summary>
70 /// Gets a value indicating whether this container is empty.
71 /// </summary>
72 /// <value><c>true</c> if this instance is empty; otherwise, <c>false</c>.</value>
73 bool IsEmpty { get; }