--------------------------------------------------------------------- CLASS: Attributes --CSB PUBLIC METHODS: Some (major) member functions for the Attributes class are described below: **general** toFileEntry() void toFileEntry(FileEntry& fileEntry); Sends all state information from the Attributes class to the FileEntry passed in. ***note***: The Attributes class may be modified in this process. On every toFileEntry() call, the attributes class automatically sets the following bits to False to ensure *osta* compliance: sortedDirectoryBit, nonRelocatableBit, contiguousBit, transformedBit, and multiVersionsBit. Also, all attributes *except* FileType and accessTime, modificationTime, and attributesTime are set to zero on this write if the Attributes is a ExtendedAttributes (the other data fields do not apply). fromFileEntry() void fromFileEntry(FileEntry& fileEntry); Populates all values in this Attributes class from the FileEntry object passed in, which is not modified. from the FileEntry and Attributes class. linkCount() UINT32 linkCount(void) const; This function returns the number of links to this file. NOTE: All files have ONE link by default for the ".." entry, not two as in UNIX for the ".." and "." entries. However, the ExtendedAttributes type of Attributes will always be forced to zero links on a toFileEntry() call. Each platform is free to set up additional links to the file, as long as the file linkCount is appropriately updated. uid() gid() accessTime() modificationTime() attributeTime() operator==() Boolean operator!=(const Attributes& attributes) const; These functions will compare two instances of an Attributes class together. If each Attributes class has the same state as the other for all bits, the logical "True" or "False" value is returned. fileType() void fileType(FileType newType); FileType fileType(void) const; This functions set and get an enumerated value that defines the type of Attributes class stored. While the user may directly set an invalid type, the value "file_InvalidType" is returned if the file type is not a discretely allowed type. **unix-specific**: unixMode() void unixMode(UINT16 newMode); UINT16 unixMode(void) const; These functions allow the user to set parts of the Attributes state with a POSIX compliant stat_t type. This is a UINT16 with RWX bits for owner, group, and other defined by POSIX compliant operating systems. In addition, bits are present for setuid, setgid, and sticky. usrRWXBits() UINT16 usrRWXBits(void) const; grpRWXBits() UINT16 grpRWXBits(void) const; othRWXBits() UINT16 othRWXBits(void) const; usrRWXBits() void usrRWXBits(UINT16 newBits); grpRWXBits() void grpRWXBits(UINT16 newBits); othRWXBits() void othRWXBits(UINT16 newBits); These functions give access to the RWX bits for each usr, grp, or oth. NOTE: although a UINT16 is the parameter, only the RIGHTMOST (low order) three bits are used to set and retrieve the RWX bits. All other bits are silently ignored. **other** Many other member functions exist to set and get values for one logical bit of permissions, file characteristics, etc. at a time. ---------------------------------------------------------------------- --------------------------------------------------------------------- METHOD: Attributes::toFileEntry --CSB Set the FileEntry passed in with our internal data values. ARGS: FileEntry IN/OUT Set to new values according to our internal state. POST-CONDS: (E.g., changes to class data members) FileEntry is modified to reflect the Attributes state. NOTE: The Attributes class is aware of the FileEntry interface, but the reverse is not true. ---------------------------------------------------------------------- void NSR::Attributes::toFileEntry(NSR::FileEntry& fileEntry) ...? printf("ERROR in Attributes::toFileEntry(): Read from Write failure.\n"); RWCString cstr; printf("%s\n", appendAttributes(cstr = "attrib")); printf("%s\n", verifyAttributes.appendAttributes(cstr = "verifyAttributes")); } #endif return; } ---------------------------------------------------------------------- METHOD: Attributes::fromFileEntry --CSB Set ourselves with values from the FileEntry passed in. ARGS: FileEntry IN Source for our new values. POST-CONDS: All internal data members are modified to reflect the state of the FileEntry object passed in. NOTES: This function extracts values from the FileEntry passed in, and modifies the state of all internal Attribute data members to be consistent with the FileEntry passed in. ---------------------------------------------------------------------- void NSR::Attributes::fromFileEntry(NSR::FileEntry& fileEntry) --------------------------------------------------------------------- METHOD: Attributes::toFileEntry --CSB Set the FileEntry passed in with our internal data values. ARGS: FileEntry IN/OUT Set to new values according to our internal state. POST-CONDS: (E.g., changes to class data members) FileEntry is modified to reflect the Attributes state. NOTE: The Attributes class is aware of the FileEntry interface, but the reverse is not true. ---------------------------------------------------------------------- void NSR::Attributes::toFileEntry(NSR::FileEntry& fileEntry) ...? printf("ERROR in Attributes::toFileEntry(): Read from Write failure.\n"); RWCString cstr; printf("%s\n", appendAttributes(cstr = "attrib")); printf("%s\n", verifyAttributes.appendAttributes(cstr = "verifyAttributes")); } #endif return; } ---------------------------------------------------------------------- METHOD: Attributes::fromFileEntry --CSB Set ourselves with values from the FileEntry passed in. ARGS: FileEntry IN Source for our new values. POST-CONDS: All internal data members are modified to reflect the state of the FileEntry object passed in. NOTES: This function extracts values from the FileEntry passed in, and modifies the state of all internal Attribute data members to be consistent with the FileEntry passed in. ---------------------------------------------------------------------- void NSR::Attributes::fromFileEntry(NSR::FileEntry& fileEntry) --------------------------------------------------------------------- METHOD: Attributes::fromFileEntry --CSB Set ourselves with values from the FileEntry passed in. ARGS: FileEntry IN Source for our new values. POST-CONDS: All internal data members are modified to reflect the state of the FileEntry object passed in. NOTES: This function extracts values from the FileEntry passed in, and modifies the state of all internal Attribute data members to be consistent with the FileEntry passed in. ---------------------------------------------------------------------- void NSR::Attributes::fromFileEntry(NSR::FileEntry& fileEntry)