1 /* 2 * Copyright 2002-2007, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5 #ifndef _SYM_LINK_H 6 #define _SYM_LINK_H 7 8 9 #include <Node.h> 10 #include <StorageDefs.h> 11 12 13 class BDirectory; 14 class BPath; 15 16 class BSymLink : public BNode { 17 public: 18 BSymLink(); 19 BSymLink(const BSymLink &link); 20 BSymLink(const entry_ref *ref); 21 BSymLink(const BEntry *entry); 22 BSymLink(const char *path); 23 BSymLink(const BDirectory *dir, 24 const char *path); 25 virtual ~BSymLink(); 26 27 ssize_t ReadLink(char *buf, size_t size); 28 29 ssize_t MakeLinkedPath(const char *dirPath, 30 BPath *path); 31 ssize_t MakeLinkedPath(const BDirectory *dir, 32 BPath *path); 33 34 bool IsAbsolute(); 35 36 private: 37 virtual void _MissingSymLink1(); 38 virtual void _MissingSymLink2(); 39 virtual void _MissingSymLink3(); 40 virtual void _MissingSymLink4(); 41 virtual void _MissingSymLink5(); 42 virtual void _MissingSymLink6(); 43 44 uint32 _reservedData[4]; 45 BEntry* fSecretEntry; 46 47 private: 48 int get_fd() const; 49 }; 50 51 52 #endif // _SYM_LINK_H 53