PseudoCIFSDiskDriver.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. package de.tudarmstadt.informatik.hostage.protocol.cifs;
  2. //import org.alfresco.config.ConfigElement;
  3. import org.alfresco.jlan.server.SrvSession;
  4. import org.alfresco.jlan.server.core.DeviceContext;
  5. import org.alfresco.jlan.server.core.DeviceContextException;
  6. import org.alfresco.jlan.server.filesys.DiskDeviceContext;
  7. import org.alfresco.jlan.server.filesys.DiskInterface;
  8. import org.alfresco.jlan.server.filesys.FileAttribute;
  9. import org.alfresco.jlan.server.filesys.FileExistsException;
  10. import org.alfresco.jlan.server.filesys.FileInfo;
  11. import org.alfresco.jlan.server.filesys.FileOpenParams;
  12. import org.alfresco.jlan.server.filesys.FileSystem;
  13. import org.alfresco.jlan.server.filesys.NetworkFile;
  14. import org.alfresco.jlan.server.filesys.SearchContext;
  15. import org.alfresco.jlan.server.filesys.TreeConnection;
  16. import org.springframework.extensions.config.ConfigElement;
  17. import java.io.FileNotFoundException;
  18. import java.io.IOException;
  19. public class PseudoCIFSDiskDriver implements DiskInterface {
  20. private static class PseudoNetworkFile extends NetworkFile {
  21. public PseudoNetworkFile(String name){
  22. super(name);
  23. setFileSize(12);
  24. setModifyDate(System.currentTimeMillis());
  25. setCreationDate(System.currentTimeMillis());
  26. }
  27. @Override
  28. public void openFile(boolean createFlag) throws IOException {
  29. setClosed(false);
  30. }
  31. @Override
  32. public int readFile(byte[] buf, int len, int pos, long fileOff) throws IOException {
  33. return 0;
  34. }
  35. @Override
  36. public void writeFile(byte[] buf, int len, int pos, long fileOff) throws IOException {
  37. }
  38. @Override
  39. public long seekFile(long pos, int typ) throws IOException {
  40. return 0;
  41. }
  42. @Override
  43. public void flushFile() throws IOException {
  44. }
  45. @Override
  46. public void truncateFile(long siz) throws IOException {
  47. }
  48. @Override
  49. public void closeFile() throws IOException {
  50. setClosed(true);
  51. }
  52. }
  53. @Override
  54. public void closeFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile) throws IOException {
  55. }
  56. @Override
  57. public void createDirectory(SrvSession srvSession, TreeConnection treeConnection, FileOpenParams fileOpenParams) throws IOException {
  58. }
  59. @Override
  60. public NetworkFile createFile(SrvSession srvSession, TreeConnection treeConnection, FileOpenParams fileOpenParams) throws IOException {
  61. throw new FileExistsException();
  62. }
  63. @Override
  64. public void deleteDirectory(SrvSession srvSession, TreeConnection treeConnection, String s) throws IOException {
  65. }
  66. @Override
  67. public void deleteFile(SrvSession srvSession, TreeConnection treeConnection, String s) throws IOException {
  68. }
  69. @Override
  70. public int fileExists(SrvSession srvSession, TreeConnection treeConnection, String s) {
  71. return 0;
  72. }
  73. @Override
  74. public void flushFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile) throws IOException {
  75. }
  76. @Override
  77. public FileInfo getFileInformation(SrvSession srvSession, TreeConnection treeConnection, String s) throws IOException {
  78. FileInfo finfo = new FileInfo(s, 12, FileAttribute.ReadOnly);
  79. long fdate = System.currentTimeMillis();
  80. finfo.setModifyDateTime(fdate);
  81. finfo.setAllocationSize((12 + 512L) & 0xFFFFFFFFFFFFFE00L);
  82. finfo.setFileId(s.hashCode());
  83. finfo.setCreationDateTime(fdate - 1000);
  84. finfo.setChangeDateTime(fdate);
  85. return finfo;
  86. }
  87. @Override
  88. public boolean isReadOnly(SrvSession srvSession, DeviceContext deviceContext) throws IOException {
  89. return true;
  90. }
  91. @Override
  92. public NetworkFile openFile(SrvSession srvSession, TreeConnection treeConnection, FileOpenParams fileOpenParams) throws IOException {
  93. System.out.println(srvSession + " - " + treeConnection + " - " + fileOpenParams);
  94. NetworkFile netFile = new PseudoNetworkFile("Test");
  95. return netFile;
  96. }
  97. @Override
  98. public int readFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile, byte[] bytes, int i, int i2, long l) throws IOException {
  99. return 0;
  100. }
  101. @Override
  102. public void renameFile(SrvSession srvSession, TreeConnection treeConnection, String s, String s2) throws IOException {
  103. }
  104. @Override
  105. public long seekFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile, long l, int i) throws IOException {
  106. return 0;
  107. }
  108. @Override
  109. public void setFileInformation(SrvSession srvSession, TreeConnection treeConnection, String s, FileInfo fileInfo) throws IOException {
  110. }
  111. @Override
  112. public SearchContext startSearch(SrvSession srvSession, TreeConnection treeConnection, String s, int i) throws FileNotFoundException {
  113. throw new FileNotFoundException();
  114. }
  115. @Override
  116. public void truncateFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile, long l) throws IOException {
  117. }
  118. @Override
  119. public int writeFile(SrvSession srvSession, TreeConnection treeConnection, NetworkFile networkFile, byte[] bytes, int i, int i2, long l) throws IOException {
  120. return 0;
  121. }
  122. @Override
  123. public DeviceContext createContext(String s, ConfigElement configElement) throws DeviceContextException {
  124. DiskDeviceContext ctx = new DiskDeviceContext("/");
  125. ctx.setFilesystemAttributes(FileSystem.CasePreservedNames + FileSystem.UnicodeOnDisk);
  126. ctx.setAvailable(true);
  127. return ctx;
  128. }
  129. @Override
  130. public void treeOpened(SrvSession srvSession, TreeConnection treeConnection) {
  131. }
  132. @Override
  133. public void treeClosed(SrvSession srvSession, TreeConnection treeConnection) {
  134. }
  135. }