//Constructor for regular handlers public Handler(string name, HandlerCallbackType handlerDelegate, params ArgumentType[] arguments) { IsContainer = false; IsDefaultHandler = false; IsChunkedHandler = false; Name = name; HandlerCallback = handlerDelegate; ChunkedCallbackDelegate = null; ArgumentTypes = arguments; Children = new List<Handler>(); Parent = null; }
//Constructor for chunked handlers void ChunkedHandlerInitialisation(string name, ChunkedHandlerCallbackType chunkedHandlerDelegate, ContentType contentType = ContentType.Plain, params ArgumentType[] arguments) { IsContainer = false; IsDefaultHandler = false; IsChunkedHandler = true; //The reply code is currently not customisable because it's not a common use case for chunked handlers ChunkedReplyCode = ReplyCode.Ok; ChunkedContentType = contentType; Name = name; HandlerCallback = null; ChunkedCallbackDelegate = chunkedHandlerDelegate; ArgumentTypes = arguments; Children = new List<Handler>(); Parent = null; }
//Constructor for chunked replies public Reply(ReplyCode code, ContentType type, ChunkedHandlerCallbackType chunkedHandlerDelegate) { Initialise(code, type); IsChunkedHandler = true; ChunkedHandlerDelegate = chunkedHandlerDelegate; }
public static Handler ChunkedHandler(string name, ChunkedHandlerCallbackType chunkedHandlerDelegate, ContentType contentType = ContentType.Plain, params ArgumentType[] arguments) { Handler handler = new Handler(); handler.ChunkedHandlerInitialisation(name, chunkedHandlerDelegate, contentType, arguments); return handler; }
void Initialise(ReplyCode code, ContentType type) { Code = code; Type = type; IsChunkedHandler = false; ChunkedHandlerDelegate = null; IsReferral = false; Encoding = new UTF8Encoding(); }