Provides an interface for creating, manipulating, and accessing the contents of symbolic links. More...
Public Member Functions | |
| BSymLink () | |
| Creates an uninitialized BSymLink object. | |
| BSymLink (const BSymLink &link) | |
| Creates a copy of the supplied BSymLink object. | |
| BSymLink (const entry_ref *ref) | |
| Creates a BSymLink object and initializes it to the symbolic link referred to by the supplied entry_ref. | |
| BSymLink (const BEntry *entry) | |
| Creates a BSymLink object and initializes it to the symbolic link referred to by the supplied BEntry. | |
| BSymLink (const char *path) | |
| Creates a BSymLink object and initializes it to the symbolic link referred to by the supplied path name. | |
| BSymLink (const BDirectory *dir, const char *path) | |
| Creates a BSymLink object and initializes it to the symbolic link referred to by the supplied path name relative to the specified BDirectory. | |
| virtual | ~BSymLink () |
| Destroys the object and frees all allocated resources. | |
| int | Dup () |
| Gets the POSIX file descriptor referred to by this node. | |
| status_t | GetAccessTime (time_t *atime) const |
| Fills out atime with the access time of the node. | |
| status_t | GetCreationTime (time_t *ctime) const |
| Fills out ctime with the creation time of the node. | |
| status_t | GetGroup (gid_t *group) const |
| Fills out the node's GID into group. | |
| status_t | GetModificationTime (time_t *mtime) const |
| Fills out mtime with the last modification time of the node. | |
| status_t | GetNodeRef (node_ref *ref) const |
Fills out ref with the node_ref of the node. | |
| status_t | GetOwner (uid_t *owner) const |
| Fills out the node's UID into owner. | |
| status_t | GetPermissions (mode_t *perms) const |
| Fills out perms with the permissions of the node. | |
| status_t | GetSize (off_t *size) const |
| Fills out the size of the node's data (not counting attributes) into size. | |
| virtual status_t | GetStat (struct stat *st) const |
Fills in the given stat structure with the stat() information for this object. | |
| status_t | GetVolume (BVolume *vol) const |
| Fills out vol with the the volume that the node lives on. | |
| status_t | InitCheck () const |
| Checks whether the object has been properly initialized or not. | |
| bool | IsAbsolute () |
| Returns whether or not the object refers to an absolute path. | |
| bool | IsDirectory () const |
| Returns whether or not the node is a directory. | |
| bool | IsFile () const |
| Returns whether or not the node is a file. | |
| bool | IsSymLink () const |
| Returns whether or not the node is a symbolic link. | |
| ssize_t | MakeLinkedPath (const char *dirPath, BPath *path) |
| Combines a directory path and the contents of this symbolic link to form an absolute path. | |
| ssize_t | MakeLinkedPath (const BDirectory *dir, BPath *path) |
| Combines a directory path and the contents of this symbolic link to form an absolute path. | |
| ssize_t | ReadLink (char *buf, size_t size) |
| Reads the contents of the symbolic link into buffer. | |
| status_t | SetAccessTime (time_t atime) |
| Sets the node's access time to atime. | |
| status_t | SetCreationTime (time_t ctime) |
| Sets the node's creation time to ctime. | |
| status_t | SetGroup (gid_t group) |
| Sets the node's GID to group. | |
| status_t | SetModificationTime (time_t mtime) |
| Sets the node's last modification time to mtime. | |
| status_t | SetOwner (uid_t owner) |
| Sets the node's UID to owner. | |
| status_t | SetPermissions (mode_t perms) |
| Sets the node's permissions to perms. | |
Assignment Methods | |
| status_t | SetTo (const entry_ref *ref) |
| Initializes the object to the specified entry_ref. | |
| status_t | SetTo (const BEntry *entry) |
| Initializes the object to the specified filesystem entry. | |
| status_t | SetTo (const BDirectory *dir, const char *path) |
| Initializes the object to the entry referred by the specified path relative to the the specified directory. | |
| void | Unset () |
| Returns the object to an uninitialized state. | |
Locking Methods | |
| status_t | Lock () |
| Attains an exclusive lock on the data referred to by this node so that it may not be modified by any other objects or methods. | |
| status_t | Unlock () |
| Unlocks the date referred to by this node. | |
| status_t | Sync () |
| Immediately performs any pending disk actions on the node. | |
Attribute Methods | |
| ssize_t | WriteAttr (const char *name, type_code type, off_t offset, const void *buffer, size_t length) |
| Writes data from a buffer to an attribute. | |
| ssize_t | ReadAttr (const char *name, type_code type, off_t offset, void *buffer, size_t length) const |
| Reads data from an attribute into buffer. | |
| status_t | RemoveAttr (const char *name) |
| Deletes the attribute given by name. | |
| status_t | RenameAttr (const char *oldName, const char *newName) |
| Moves the attribute given by oldname to newname. | |
| status_t | GetAttrInfo (const char *name, struct attr_info *info) const |
| Fills in the pre-allocated attr_info struct pointed to by info with information about the attribute specified by name. | |
| status_t | GetNextAttrName (char *buffer) |
Copies the name of the attribute into buffer and then advances the pointer to the next attribute. | |
| status_t | RewindAttrs () |
| Resets the object's attribute pointer to the first attribute in the list. | |
| status_t | WriteAttrString (const char *name, const BString *data) |
| Writes the specified string to the specified attribute, clobbering any previous data. | |
| status_t | ReadAttrString (const char *name, BString *result) const |
| Reads the data of the specified attribute into the pre-allocated result. | |
Comparison Methods | |
| bool | operator== (const BNode &node) const |
| Tests whether this and the supplied BNode object are equal. | |
| bool | operator!= (const BNode &node) const |
| Tests whether this and the supplied BNode object are not equal. | |
Provides an interface for creating, manipulating, and accessing the contents of symbolic links.
| BSymLink::BSymLink | ( | const BSymLink & | link | ) |
| BSymLink::BSymLink | ( | const entry_ref * | ref | ) |
| BSymLink::BSymLink | ( | const BEntry * | entry | ) |
| BSymLink::BSymLink | ( | const char * | path | ) |
Creates a BSymLink object and initializes it to the symbolic link referred to by the supplied path name.
| path | The path of the symbolic link. |
| BSymLink::BSymLink | ( | const BDirectory * | dir, |
| const char * | path | ||
| ) |
Creates a BSymLink object and initializes it to the symbolic link referred to by the supplied path name relative to the specified BDirectory.
| dir | The base BDirectory. |
| path | The path of the symbolic link relative to dir. |
| BSymLink::~BSymLink | ( | ) | [virtual] |
Destroys the object and frees all allocated resources.
If the BSymLink was properly initialized, the file descriptor of the symbolic link is also closed.
| int BNode::Dup | ( | ) | [inherited] |
Gets the POSIX file descriptor referred to by this node.
Remember to call close() on the file descriptor when you're through with it.
| status_t BStatable::GetAccessTime | ( | time_t * | atime | ) | const [inherited] |
Fills out atime with the access time of the node.
| status_t BNode::GetAttrInfo | ( | const char * | name, |
| struct attr_info * | info | ||
| ) | const [inherited] |
Fills in the pre-allocated attr_info struct pointed to by info with information about the attribute specified by name.
| name | the name of the attribute |
| info | the attr_info structure to be filled in |
| B_OK | Everything went fine. |
| B_BAD_VALUE | name is NULL. |
| B_FILE_ERROR | The object is not initialized. |
| B_ENTRY_NOT_FOUND | The node has no attribute name. |
| status_t BStatable::GetCreationTime | ( | time_t * | ctime | ) | const [inherited] |
Fills out ctime with the creation time of the node.
| ctime | A pointer to a time_t variable to be set. |
| status_t BStatable::GetGroup | ( | gid_t * | group | ) | const [inherited] |
Fills out the node's GID into group.
| group | a pointer to a gid_t variable to be set. |
| status_t BStatable::GetModificationTime | ( | time_t * | mtime | ) | const [inherited] |
Fills out mtime with the last modification time of the node.
| mtime | A pointer to a time_t variable to be set. |
| status_t BNode::GetNextAttrName | ( | char * | buffer | ) | [inherited] |
Copies the name of the attribute into buffer and then advances the pointer to the next attribute.
The name of the node is first copied into buffer, which should be at least B_ATTR_NAME_LENGTH characters long. The copied node name is NUL terminated. Once the name is copied the attribute list pointer is advanced to the next attribute in the list. When GetNextAttrName() reaches the end of the list it returns B_ENTRY_NOT_FOUND.
| buffer | A buffer to copy the name of the attribute into. |
| B_OK | The Attribute name was copied and there are more attribute names to copy. |
| B_BAD_VALUE | passed in buffer is NULL. |
| B_FILE_ERROR | The object is not initialized. |
| B_ENTRY_NOT_FOUND | There are no more attributes, the last attribute name has already been copied. |
| status_t BStatable::GetOwner | ( | uid_t * | owner | ) | const [inherited] |
Fills out the node's UID into owner.
| owner | A pointer to a uid_t to be set. |
| status_t BStatable::GetPermissions | ( | mode_t * | perms | ) | const [inherited] |
Fills out perms with the permissions of the node.
| perms | A pointer to a mode_t variable to be set. |
| status_t BStatable::GetSize | ( | off_t * | size | ) | const [inherited] |
| status_t BNode::GetStat | ( | struct stat * | st | ) | const [virtual, inherited] |
Fills in the given stat structure with the stat() information for this object.
| st | a pointer to a stat structure to be filled in. |
| B_OK | Everything went fine. |
| B_BAD_VALUE,: | NULL st. |
Implements BStatable.
| status_t BNode::InitCheck | ( | ) | const [inherited] |
Checks whether the object has been properly initialized or not.
| bool BSymLink::IsAbsolute | ( | ) |
Returns whether or not the object refers to an absolute path.
/return true if the object is properly initialized and the symbolic link refers to an absolute path, false otherwise.
| bool BStatable::IsDirectory | ( | ) | const [inherited] |
Returns whether or not the node is a directory.
true, if the node is properly initialized and is a directory, false otherwise. | bool BStatable::IsFile | ( | ) | const [inherited] |
Returns whether or not the node is a file.
true, if the node is properly initialized and is a file, false otherwise. | bool BStatable::IsSymLink | ( | ) | const [inherited] |
Returns whether or not the node is a symbolic link.
true, if the node is properly initialized and is a symlink, false otherwise. | status_t BNode::Lock | ( | ) | [inherited] |
Attains an exclusive lock on the data referred to by this node so that it may not be modified by any other objects or methods.
| B_OK | Everything went fine. |
| B_FILE_ERROR | The object is not initialized. |
| B_BUSY | The node is already locked. |
| ssize_t BSymLink::MakeLinkedPath | ( | const char * | dirPath, |
| BPath * | path | ||
| ) |
Combines a directory path and the contents of this symbolic link to form an absolute path.
| dirPath | The base directory path to combine with the symbolic link. |
| path | The BPath object to be set to the resulting absolute path. |
| B_BAD_VALUE | dirPath or path was NULL or the object didn't refer to a symbolic link. |
| B_FILE_ERROR | The object was not initialized. |
| B_NAME_TOO_LONG | The resulting path name was too long to fit. |
| ssize_t BSymLink::MakeLinkedPath | ( | const BDirectory * | dir, |
| BPath * | path | ||
| ) |
Combines a directory path and the contents of this symbolic link to form an absolute path.
| dir | The base BDirectory object to combine with the symbolic link. |
| path | the BPath object to be set to the resulting absolute path. |
| B_BAD_VALUE | dir or path was NULL or the object didn't refer to a symbolic link. |
| B_FILE_ERROR | The object was not initialized. |
| B_NAME_TOO_LONG | The resulting path name was too long to fit. |
| bool BNode::operator!= | ( | const BNode & | node | ) | const [inherited] |
| bool BNode::operator== | ( | const BNode & | node | ) | const [inherited] |
| ssize_t BNode::ReadAttr | ( | const char * | attr, |
| type_code | type, | ||
| off_t | offset, | ||
| void * | buffer, | ||
| size_t | len | ||
| ) | const [inherited] |
Reads data from an attribute into buffer.
Reads len bytes of data from the attribute given by name into buffer. type and offset are currently ignored.
| attr | the name of the attribute. |
| type | the type of the attribute (currently ignored). |
| offset | the index from which to read the data (currently ignored). |
| buffer | the buffer for the data to be read. |
| len | the number of bytes to be read. |
| B_BAD_VALUE | attr or buffer is NULL. |
| B_FILE_ERROR | The object is not initialized. |
| B_ENTRY_NOT_FOUND | The node has no attribute attr. |
Reads the data of the specified attribute into the pre-allocated result.
| name | the name of the attribute. |
| result | the BString to be set to the value of the attribute. |
| B_OK | Everything went fine. |
| B_BAD_VALUE | name or result is NULL. |
| B_FILE_ERROR | The object is not initialized. |
| B_ENTRY_NOT_FOUND | The node has no attribute attr. |
| ssize_t BSymLink::ReadLink | ( | char * | buffer, |
| size_t | size | ||
| ) |
Reads the contents of the symbolic link into buffer.
The string written to the buffer is guaranteed to be NULL terminated.
| buffer | The buffer to read the symlink's contents into. |
| size | The size of buffer. |
| B_BAD_VALUE | buf was NULL or the object didn't refer to a symbolic link. |
| B_FILE_ERROR | The object was not initialized. |
| status_t BNode::RemoveAttr | ( | const char * | name | ) | [inherited] |
Deletes the attribute given by name.
| name | the name of the attribute to remove. |
| B_OK | Everything went fine. |
| B_BAD_VALUE | name is NULL. |
| B_FILE_ERROR | The object is not initialized or the node it refers to read only. |
| B_ENTRY_NOT_FOUND | The node has no attribute name. |
| B_NOT_ALLOWED | The node resides on a read only volume. |
| status_t BNode::RenameAttr | ( | const char * | oldname, |
| const char * | newname | ||
| ) | [inherited] |
Moves the attribute given by oldname to newname.
If newname already exists, the data is clobbered.
| oldname | the name of the attribute to be renamed. |
| newname | the new name for the attribute. |
| B_OK | Everything went fine. |
| B_BAD_VALUE | oldname or newname is NULL. |
| B_FILE_ERROR | The object is not initialized or the node it refers to is read only. |
| B_ENTRY_NOT_FOUND | The node has no attribute oldname. |
| B_NOT_ALLOWED | The node resides on a read only volume. |
| status_t BNode::RewindAttrs | ( | ) | [inherited] |
Resets the object's attribute pointer to the first attribute in the list.
| B_OK | Everything went fine. |
| B_FILE_ERROR | Some other error occurred. |
| status_t BStatable::SetAccessTime | ( | time_t | atime | ) | [inherited] |
Sets the node's access time to atime.
| status_t BStatable::SetCreationTime | ( | time_t | ctime | ) | [inherited] |
Sets the node's creation time to ctime.
| ctime | The creation time to set the node to. |
| status_t BStatable::SetGroup | ( | gid_t | group | ) | [inherited] |
Sets the node's GID to group.
| group | The GID to set the node to. |
| status_t BStatable::SetModificationTime | ( | time_t | mtime | ) | [inherited] |
Sets the node's last modification time to mtime.
| mtime | The modification time to set the node to. |
| status_t BStatable::SetOwner | ( | uid_t | owner | ) | [inherited] |
Sets the node's UID to owner.
| owner | The UID to set the node to. |
| status_t BStatable::SetPermissions | ( | mode_t | perms | ) | [inherited] |
Sets the node's permissions to perms.
| perms | The permissions to set the node to. |
Initializes the object to the specified entry_ref.
| ref | the entry_ref referring to the entry. |
| B_OK,: | Everything went fine. |
| B_BAD_VALUE,: | NULL ref. |
| B_ENTRY_NOT_FOUND,: | The entry could not be found. |
| B_BUSY,: | The entry is locked. |
Reimplemented in BDirectory.
Initializes the object to the specified filesystem entry.
| entry | the BEntry representing the entry. |
| B_OK | Everything went fine. |
| B_BAD_VALUE | NULL entry. |
| B_ENTRY_NOT_FOUND | The entry could not be found. |
| B_BUSY | The entry is locked. |
Reimplemented in BDirectory.
| status_t BNode::SetTo | ( | const BDirectory * | dir, |
| const char * | path | ||
| ) | [inherited] |
Initializes the object to the entry referred by the specified path relative to the the specified directory.
| dir | the base BDirectory. |
| path | the entry's path name relative to dir |
| B_OK | Everything went fine. |
| B_BAD_VALUE | NULL entry. |
| B_ENTRY_NOT_FOUND | The entry could not be found. |
| B_BUSY | The entry is locked. |
Reimplemented in BDirectory.
| status_t BNode::Sync | ( | ) | [inherited] |
Immediately performs any pending disk actions on the node.
| B_OK | Everything went fine. |
| B_FILE_ERROR | Something went wrong. |
| status_t BNode::Unlock | ( | ) | [inherited] |
Unlocks the date referred to by this node.
| B_OK | Everything went fine. |
| B_FILE_ERROR | The object is not initialized. |
| B_BAD_VALUE | The node is not locked. |
| ssize_t BNode::WriteAttr | ( | const char * | attr, |
| type_code | type, | ||
| off_t | offset, | ||
| const void * | buffer, | ||
| size_t | len | ||
| ) | [inherited] |
Writes data from a buffer to an attribute.
Write len bytes of data from buffer to the attribute specified by name after erasing any data that existed previously. The type specified by type is remembered, and may be queried with GetAttrInfo(). The value of offset is currently ignored.
| attr | the name of the attribute. |
| type | the type of the attribute. |
| offset | the index at which to write the data (currently ignored). |
| buffer | the buffer containing the data to be written. |
| len | the number of bytes to be written. |
| B_BAD_VALUE | attr or buffer is NULL. |
| B_FILE_ERROR | The object is not initialized or the node it refers to is read only. |
| B_NOT_ALLOWED | The node resides on a read only volume. |
| B_DEVICE_FULL | Insufficient disk space. |
| B_NO_MEMORY | Insufficient memory to complete the operation. |
Writes the specified string to the specified attribute, clobbering any previous data.
| name | the name of the attribute. |
| data | the BString to be written to the attribute. |
| B_OK | Everything went fine. |
| B_BAD_VALUE | NULL name or data |
| B_FILE_ERROR | The object is not initialized or the node it refers to is read only. |
| B_NOT_ALLOWED | The node resides on a read only volume. |
| B_DEVICE_FULL | Insufficient disk space. |
| B_NO_MEMORY | Insufficient memory to complete the operation. |