src/XattrAttributeFinder.h
branchv_0
changeset 5 ec661baf433a
parent 4 d44ed75822e7
child 8 eb1ecb37c6b7
equal deleted inserted replaced
4:d44ed75822e7 5:ec661baf433a
    54 		}
    54 		}
    55 	}
    55 	}
    56 public:
    56 public:
    57 
    57 
    58 	virtual vector<AttributeMetadata> toMetadata(const RequestedField& field) override {
    58 	virtual vector<AttributeMetadata> toMetadata(const RequestedField& field) override {
    59 		if (field.group == RequestedField::GROUP_XATTR) return { AttributeMetadata{field.name, TypeId::STRING}};
    59 		if (field.group == RequestedField::GROUP_XATTR) {
    60 		else return {};
    60 			vector<AttributeMetadata> metadata;
       
    61 			for (string_t alias : field.getAliases()) metadata.push_back(AttributeMetadata{alias, TypeId::STRING});
       
    62 			return metadata;
       
    63 		} else {
       
    64 			return {};
       
    65 		}
    61 	}
    66 	}
    62 
    67 
    63 	void startFile(const fs::path& file) override {
    68 	void startFile(const fs::path& file) override {
    64 		currentFile = file;
    69 		currentFile = file;
    65 	};
    70 	};
    66 
    71 
    67 	void endFile() override {
    72 	void endFile() override {
    68 	};
    73 	};
    69 
    74 
    70 	virtual void writeField(RelationalWriter* writer, const RequestedField& field) override {
    75 	virtual void writeField(RelationalWriter* writer, const RequestedField& field) override {
    71 		if (field.group == RequestedField::GROUP_XATTR) writer->writeAttribute(getXattr(currentFile, field.name));
    76 		for (string_t alias : field.getAliases()) {
       
    77 			if (field.group == RequestedField::GROUP_XATTR) writer->writeAttribute(getXattr(currentFile, field.name));
       
    78 		}
    72 	}
    79 	}
    73 
    80 
    74 	virtual ~XattrAttributeFinder() override {
    81 	virtual ~XattrAttributeFinder() override {
    75 	}
    82 	}
    76 };
    83 };