+ if (handler == null)
+ return;
+ if (handlers == null)
+ handlers = new LinkedList <IHttpHandler> ();
+ handlers.AddLast (handler);
+ }
+
+ internal void PopHandler ()
+ {
+ if (handlers == null || handlers.Count == 0)
+ return;
+ handlers.RemoveLast ();
+ }
+
+ IHttpHandler GetCurrentHandler ()
+ {
+ if (handlers == null || handlers.Count == 0)
+ return null;
+
+ return handlers.Last.Value;
+ }
+
+ IHttpHandler GetPreviousHandler ()
+ {
+ if (handlers == null || handlers.Count <= 1)
+ return null;
+ LinkedListNode <IHttpHandler> previous = handlers.Last.Previous;
+ if (previous != null)
+ return previous.Value;
+ return null;
+ }
+
+ public IHttpHandler CurrentHandler {
+ get { return GetCurrentHandler (); }
+ }
+
+ public IHttpHandler PreviousHandler {
+ get { return GetPreviousHandler (); }
+ }
+
+ internal bool ProfileInitialized {
+ get { return profile != null; }
+ }
+
+ public ProfileBase Profile {