PageRenderTime 41ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/source/samples/ObviousCode.Interlace.BitTunnel/Overview.htm

https://bitbucket.org/VahidN/interlace
HTML | 216 lines | 215 code | 1 blank | 0 comment | 0 complexity | 9fa03987ec28df7742bb8dcd44b17039 MD5 | raw file
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>Untitled Page</title>
  5. <style type="text/css">
  6. .style1
  7. {
  8. font-family: Verdana;
  9. font-weight: bold;
  10. }
  11. .style2
  12. {
  13. font-size: small;
  14. }
  15. .style3
  16. {
  17. font-size: medium;
  18. }
  19. .style4
  20. {
  21. font-size: small;
  22. font-weight: normal;
  23. }
  24. .style5
  25. {
  26. font-size: large;
  27. font-weight: bold;
  28. }
  29. .style6
  30. {
  31. font-size: small;
  32. margin-left: 40px;
  33. }
  34. </style>
  35. </head>
  36. <body style="font-family: Verdana">
  37. <ul>
  38. <li>ReMio&lt;FileDU<span class="style1"><b>Adding File</b></span> </li>
  39. <ul>
  40. <li><span class="style2">Application Notifies Client of New File</li></span>
  41. <ul>
  42. <li><span class="style2">Client Sends New File Request
  43. </span>
  44. <ul>
  45. <li class="style2">Full File Property </li>
  46. <li class="style2">Object Server Name </li>
  47. <li class="style2">File Name and Path Id or Guid ? (smaller vs
  48. less spoofable) </li>
  49. </ul>
  50. </li>
  51. <li class="style2">Image Server Broadcasts New File Data To Clients </li>
  52. <li class="style2">Client notifies
  53. Application of New Data </li>
  54. </ul>
  55. </ul>
  56. </ul>
  57. <p>
  58. &nbsp;</p>
  59. <ul>
  60. <li><b>Removing File</b>
  61. <ul>
  62. <li><span class="style2">Application Notifies Client of Removed File
  63. </span>
  64. <ul>
  65. <li><span class="style2">Client Sends Deletion File Request </span>
  66. <ul>
  67. <li class="style2">Simple File Property Object Id (or Guid) </li>
  68. </ul>
  69. </li>
  70. </ul>
  71. </li>
  72. </ul>
  73. </li>
  74. </ul>
  75. <p>
  76. &nbsp;</p>
  77. <ul>
  78. <li><b>Logging to Server </b>
  79. <ul>
  80. <li><span class="style2">Application requests Logon from Client </span>
  81. <ul>
  82. <li><span class="style2">Client sends Logon request to server
  83. <- Id'd in case of multiple servers? </span>
  84. <ul>
  85. <li><span class="style2">Logon request </span>
  86. <ul>
  87. <li class="style2">Server Name</li>
  88. <li class="style2">Client (Guid / Id?)</li>
  89. </ul>
  90. </li>
  91. </ul>
  92. </li>
  93. <li class="style2">Client can&#39;t connect<ul>
  94. <li class="style2">respond as below</li>
  95. </ul>
  96. </li>
  97. <li class="style2">Server responds with fail<ul>
  98. <li class="style2">Enum reason (shared library)</li>
  99. <li class="style2">Text Message if required</li>
  100. </ul>
  101. </li>
  102. <li class="style2">Server success (return server guid / id?)</li>
  103. <li class="style2">Server sends current file list</li>
  104. </ul>
  105. </li>
  106. </ul>
  107. </li>
  108. </ul>
  109. <p>
  110. &nbsp;</p>
  111. <ul>
  112. <li class="style3">File List<ul>
  113. <li class="style4">Server responding to request or server accepts login<ul>
  114. <li class="style4">Client receives list</li>
  115. <li class="style4">Client notifies Application of File List</li>
  116. </ul>
  117. </li>
  118. </ul>
  119. </li>
  120. </ul>
  121. <p class="style5">
  122. Responsibilities:</p>
  123. <p>
  124. <b>Application</b></p>
  125. <p class="style2" style="margin-left: 40px">
  126. Application functionality:
  127. </p>
  128. <p class="style2" style="margin-left: 80px">
  129. Needs to accept files from user</p>
  130. <p class="style2" style="margin-left: 80px">
  131. Needs to accept removed files from user</p>
  132. <p class="style2" style="margin-left: 80px">
  133. Needs to update in response to new file descriptors received from server</p>
  134. <p class="style2" style="margin-left: 80px">
  135. Needs to update in response to removed file descriptors received from server</p>
  136. <p class="style2" style="margin-left: 80px">
  137. Visually show own (removable) files as separate to server files (which should
  138. include own files)</p>
  139. <p class="style2" style="margin-left: 40px">
  140. App to Client:</p>
  141. <p class="style2" style="margin-left: 80px">
  142. Needs to notify Client of added files</p>
  143. <p class="style2" style="margin-left: 80px">
  144. Needs to notify Client of removed files</p>
  145. <p class="style2" style="margin-left: 40px">
  146. Client to App:</p>
  147. <p class="style2" style="margin-left: 80px">
  148. Needs to receive server added files</p>
  149. <p class="style2" style="margin-left: 80px">
  150. Needs to receive server removed files</p>
  151. <p>
  152. Server</p>
  153. <p>
  154. Client</p>
  155. <p class="style5">
  156. Classes:</p>
  157. <p class="style3">
  158. Library?
  159. </p>
  160. <p class="style6">
  161. enum FileDescriptorNotificationMode { FullList, AddedFiles, RemovedFiles}</p>
  162. <p class="style6">
  163. enum FileModificationKey { FileList, FilesAdded, FilesRemoved }</p>
  164. <p class="style6">
  165. enum MessageKey { FileModifications, LoginRequest</p>
  166. <p class="style3">
  167. CClient Application:</p>
  168. <p class="style6">
  169. (Callback) delegate void FileModifications(params FileDescriptor[] addedFiles)</p>
  170. <p class="style6">
  171. (AcceptFilesFromUser ...)</p>
  172. <p class="style6">
  173. (AcceptFileRemovalFromUser ...)</p>
  174. <p class="style6">
  175. UpdateFileUI();</p>
  176. <p class="style3">
  177. ClientService:</p>
  178. <p class="style6">
  179. Ctor(delegate void FileModifications(params FileModificationDescriptor[]
  180. addedFiles))</p>
  181. <p class="style6">
  182. NotifyOnFileChanges(params FileModificationDescriptor[] )</p>
  183. <p class="style6">
  184. RequestLogin(ClientDescriptor)/p>
  185. <p class="style3">
  186. ClientProtocol : FrameProtocol</p>
  187. <p class="style3">
  188. ClientProtocolFactoryp>
  189. <p class="style3">
  190. Server Application</p>
  191. <p class="style3">
  192. ServerService</p>
  193. <p class="style3">
  194. Server Console</p>
  195. <p class="style3">
  196. ServerProtocol</p>
  197. <p class="style3">
  198. ServerProtocolFactory</p>
  199. <p class="style3">
  200. ClientDescriptor</p>
  201. <p class="style3">
  202. FileModification</p>
  203. <p class="style3">
  204. FileModificationDescriptor</p>
  205. <p class="style6">
  206. FileDescriptionNotificationMode mode,
  207. </p>
  208. <p class="style6">
  209. FileFileDescriptor</p>
  210. <p class="style3">
  211. MessMessage</p>
  212. <p class="style6" align="left">
  213. Key: MessageType</p>
  214. </body>
  215. </html>