statinfo.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /**
  2. * Licensed to the Apache Software Foundation (ASF) under one
  3. * or more contributor license agreements. See the NOTICE file
  4. * distributed with this work for additional information
  5. * regarding copyright ownership. The ASF licenses this file
  6. * to you under the Apache License, Version 2.0 (the
  7. * "License"); you may not use this file except in compliance
  8. * with the License. You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. #ifndef HDFSPP_STATINFO_H_
  19. #define HDFSPP_STATINFO_H_
  20. namespace hdfs {
  21. /**
  22. * Information that is assumed to be unchanging about a file for the duration of
  23. * the operations.
  24. */
  25. struct StatInfo {
  26. enum FileType {
  27. IS_DIR = 1,
  28. IS_FILE = 2,
  29. IS_SYMLINK = 3
  30. };
  31. int file_type;
  32. ::std::string path;
  33. unsigned long int length;
  34. unsigned long int permissions; //Octal number as in POSIX permissions; e.g. 0777
  35. ::std::string owner;
  36. ::std::string group;
  37. unsigned long int modification_time;
  38. unsigned long int access_time;
  39. ::std::string symlink;
  40. unsigned int block_replication;
  41. unsigned long int blocksize;
  42. unsigned long int fileid;
  43. unsigned long int children_num;
  44. StatInfo()
  45. : file_type(0),
  46. length(0),
  47. permissions(0),
  48. modification_time(0),
  49. access_time(0),
  50. block_replication(0),
  51. blocksize(0),
  52. fileid(0),
  53. children_num(0) {
  54. }
  55. };
  56. }
  57. #endif