Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

157 lines
2.4 KiB

  1. UL APIs that need to be represented in the managed interface:
  2. UlOpenAppPool
  3. UlReceiveHttpRequest
  4. UlReceiveEntityBody
  5. UlSendHttpResponse
  6. UlSendEntityBody
  7. UlCloseConnection <- NYI, questionable value
  8. UlFlushResponseCache
  9. UlEnumerateCacheContents <- New API wanted by XSP folks
  10. UlRegisterUrlPrefix <- New transient registrations APIs
  11. UlDeregisterUrlPrefix <-
  12. class UlGlobal
  13. {
  14. static UlListener OpenAppPool( ... );
  15. static UlListener RegisterUrlPrefix( ... );
  16. };
  17. class UlListener
  18. {
  19. // Async I/O callback stuff
  20. AsyncResult ReceiveRequest( ... ); // async, UlRequest via delegate?
  21. UlRequest ReceiveRequest( ... ); // synch
  22. ??? Deregister( ... ); // implied via destructor?
  23. AsyncResult FlushCache( ... );
  24. ??? QueryCache( ... );
  25. };
  26. class UlRequest // derives from common base shared with Net Classes
  27. {
  28. AsyncResult ReceiveEntityBody( ... );
  29. AsyncResult ForceDisconnect( ... );
  30. UlResponse GetResponse( ... );
  31. };
  32. class UlResponse // derives from common base shared with Net Classes
  33. {
  34. AsyncResult SendResponse( ... );
  35. AsyncResult SendEntityBody( ... );
  36. };
  37. class HttpGlobal
  38. {
  39. static HttpListener OpenAppPool( ... );
  40. static HttpListener RegisterUrlPrefix( ... );
  41. };
  42. class HttpListener
  43. {
  44. // Async I/O Goo goes here
  45. ServerHttpRequest GetRequest( ... );
  46. AsyncResult AsyncGetRequest( ... );
  47. ??? FlushCache( ... );
  48. AsyncResult AsyncFlushCache( ... );
  49. ??? QueryCache( ... );
  50. };
  51. class BaseHttpRequest
  52. {
  53. read-only Verb
  54. read-only Headers
  55. read-only URL
  56. };
  57. class ClientHttpRequest : BaseHttpRequest
  58. {
  59. read-write Verb
  60. read-write Headers
  61. ClientHttpResponse GetResponse( ... );
  62. AsyncResult AsyncGetResponse( ... );
  63. };
  64. class ServerHttpRequest : BaseHttpRequest
  65. {
  66. ServerHttpResponse GetResponse( ... );
  67. };
  68. class BaseHttpResponse
  69. {
  70. read-only result-code
  71. read-only result-string
  72. read-only headers
  73. };
  74. class ClientHttpResponse : BaseHttpResponse
  75. {
  76. ??
  77. };
  78. class ServerHttpResponse : BaseHttpResponse
  79. {
  80. // Async I/O Goo goes here
  81. AsyncResult SendResponse( ... {pbuf, cb} );
  82. AsyncResult SendEntityBody( ... );
  83. read-write base properties
  84. };
  85. ISSUES:
  86. Mechanism to indicate client disconnects to user-mode?
  87. Integrate AppPool and transient URL registration?