Move package attribute ID definitions to a separate file
... <package/hpkg/PackageAttributes.h>, which also defines other properties (name and type) for each attribute. It does so via a macro that the caller can define to generate whatever code is desired.
This commit is contained in:
@@ -0,0 +1 @@
|
||||
#include <../os/package/hpkg/PackageAttributes.h>
|
||||
@@ -86,52 +86,10 @@ extern const char* const B_HPKG_PACKAGE_INFO_FILE_NAME;
|
||||
|
||||
// package attribute IDs
|
||||
enum BHPKGAttributeID {
|
||||
B_HPKG_ATTRIBUTE_ID_DIRECTORY_ENTRY = 0,
|
||||
B_HPKG_ATTRIBUTE_ID_FILE_TYPE = 1,
|
||||
B_HPKG_ATTRIBUTE_ID_FILE_PERMISSIONS = 2,
|
||||
B_HPKG_ATTRIBUTE_ID_FILE_USER = 3,
|
||||
B_HPKG_ATTRIBUTE_ID_FILE_GROUP = 4,
|
||||
B_HPKG_ATTRIBUTE_ID_FILE_ATIME = 5,
|
||||
B_HPKG_ATTRIBUTE_ID_FILE_MTIME = 6,
|
||||
B_HPKG_ATTRIBUTE_ID_FILE_CRTIME = 7,
|
||||
B_HPKG_ATTRIBUTE_ID_FILE_ATIME_NANOS = 8,
|
||||
B_HPKG_ATTRIBUTE_ID_FILE_MTIME_NANOS = 9,
|
||||
B_HPKG_ATTRIBUTE_ID_FILE_CRTIM_NANOS = 10,
|
||||
B_HPKG_ATTRIBUTE_ID_FILE_ATTRIBUTE = 11,
|
||||
B_HPKG_ATTRIBUTE_ID_FILE_ATTRIBUTE_TYPE = 12,
|
||||
B_HPKG_ATTRIBUTE_ID_DATA = 13,
|
||||
B_HPKG_ATTRIBUTE_ID_SYMLINK_PATH = 14,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_NAME = 15,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_SUMMARY = 16,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_DESCRIPTION = 17,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_VENDOR = 18,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_PACKAGER = 19,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_FLAGS = 20,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_ARCHITECTURE = 21,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_VERSION_MAJOR = 22,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_VERSION_MINOR = 23,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_VERSION_MICRO = 24,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_VERSION_REVISION = 25,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_COPYRIGHT = 26,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_LICENSE = 27,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_PROVIDES = 28,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_REQUIRES = 29,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_SUPPLEMENTS = 30,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_CONFLICTS = 31,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_FRESHENS = 32,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_REPLACES = 33,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_RESOLVABLE_OPERATOR = 34,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_CHECKSUM = 35,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_VERSION_PRE_RELEASE = 36,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_PROVIDES_COMPATIBLE = 37,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_URL = 38,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_SOURCE_URL = 39,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_INSTALL_PATH = 40,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_BASE_PACKAGE = 41,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_GLOBAL_SETTINGS_FILE = 42,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_USER_SETTINGS_FILE = 43,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_SETTINGS_FILE_UPDATE_TYPE = 44,
|
||||
B_HPKG_ATTRIBUTE_ID_PACKAGE_SETTINGS_FILE_TEMPLATE = 45,
|
||||
#define B_DEFINE_HPKG_ATTRIBUTE(id, type, name, constant) \
|
||||
B_HPKG_ATTRIBUTE_ID_##constant = id,
|
||||
#include <package/hpkg/PackageAttributes.h>
|
||||
#undef B_DEFINE_HPKG_ATTRIBUTE
|
||||
//
|
||||
B_HPKG_ATTRIBUTE_ID_ENUM_COUNT,
|
||||
};
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright 2009-2013, Haiku, Inc.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
|
||||
|
||||
// This file defines the HPKG file attributes with all their properties in one
|
||||
// place. Includers of the file need to define the macro
|
||||
// B_DEFINE_HPKG_ATTRIBUTE(id, type, name, constant) so that it evaluates to
|
||||
// whatever is desired in their context.
|
||||
|
||||
|
||||
B_DEFINE_HPKG_ATTRIBUTE( 0, STRING, "dir:entry", DIRECTORY_ENTRY)
|
||||
B_DEFINE_HPKG_ATTRIBUTE( 1, UINT, "file:type", FILE_TYPE)
|
||||
B_DEFINE_HPKG_ATTRIBUTE( 2, UINT, "file:permissions", FILE_PERMISSIONS)
|
||||
B_DEFINE_HPKG_ATTRIBUTE( 3, STRING, "file:user", FILE_USER)
|
||||
B_DEFINE_HPKG_ATTRIBUTE( 4, STRING, "file:group", FILE_GROUP)
|
||||
B_DEFINE_HPKG_ATTRIBUTE( 5, UINT, "file:atime", FILE_ATIME)
|
||||
B_DEFINE_HPKG_ATTRIBUTE( 6, UINT, "file:mtime", FILE_MTIME)
|
||||
B_DEFINE_HPKG_ATTRIBUTE( 7, UINT, "file:crtime", FILE_CRTIME)
|
||||
B_DEFINE_HPKG_ATTRIBUTE( 8, UINT, "file:atime:nanos", FILE_ATIME_NANOS)
|
||||
B_DEFINE_HPKG_ATTRIBUTE( 9, UINT, "file:mtime:nanos", FILE_MTIME_NANOS)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(10, UINT, "file:crtime:nanos", FILE_CRTIM_NANOS)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(11, STRING, "file:attribute", FILE_ATTRIBUTE)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(12, UINT, "file:attribute:type", FILE_ATTRIBUTE_TYPE)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(13, RAW, "data", DATA)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(14, STRING, "symlink:path", SYMLINK_PATH)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(15, STRING, "package:name", PACKAGE_NAME)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(16, STRING, "package:summary", PACKAGE_SUMMARY)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(17, STRING, "package:description", PACKAGE_DESCRIPTION)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(18, STRING, "package:vendor", PACKAGE_VENDOR)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(19, STRING, "package:packager", PACKAGE_PACKAGER)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(20, UINT, "package:flags", PACKAGE_FLAGS)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(21, UINT, "package:architecture",
|
||||
PACKAGE_ARCHITECTURE)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(22, STRING, "package:version.major",
|
||||
PACKAGE_VERSION_MAJOR)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(23, STRING, "package:version.minor",
|
||||
PACKAGE_VERSION_MINOR)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(24, STRING, "package:version.micro",
|
||||
PACKAGE_VERSION_MICRO)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(25, UINT, "package:version.revision",
|
||||
PACKAGE_VERSION_REVISION)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(26, STRING, "package:copyright", PACKAGE_COPYRIGHT)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(27, STRING, "package:license", PACKAGE_LICENSE)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(28, STRING, "package:provides", PACKAGE_PROVIDES)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(29, STRING, "package:requires", PACKAGE_REQUIRES)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(30, STRING, "package:supplements", PACKAGE_SUPPLEMENTS)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(31, STRING, "package:conflicts", PACKAGE_CONFLICTS)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(32, STRING, "package:freshens", PACKAGE_FRESHENS)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(33, STRING, "package:replaces", PACKAGE_REPLACES)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(34, UINT, "package:resolvable.operator",
|
||||
PACKAGE_RESOLVABLE_OPERATOR)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(35, STRING, "package:checksum", PACKAGE_CHECKSUM)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(36, STRING, "package:version.prerelease",
|
||||
PACKAGE_VERSION_PRE_RELEASE)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(37, STRING, "package:provides.compatible",
|
||||
PACKAGE_PROVIDES_COMPATIBLE)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(38, STRING, "package:url", PACKAGE_URL)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(39, STRING, "package:source-url", PACKAGE_SOURCE_URL)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(40, STRING, "package:install-path",
|
||||
PACKAGE_INSTALL_PATH)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(41, STRING, "package:base-package",
|
||||
PACKAGE_BASE_PACKAGE)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(42, STRING, "package:global-settings-file",
|
||||
PACKAGE_GLOBAL_SETTINGS_FILE)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(43, STRING, "package:user-settings-file",
|
||||
PACKAGE_USER_SETTINGS_FILE)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(44, UINT, "package:settings-file-update-type",
|
||||
PACKAGE_SETTINGS_FILE_UPDATE_TYPE)
|
||||
B_DEFINE_HPKG_ATTRIBUTE(45, STRING, "package:settings-file-template",
|
||||
PACKAGE_SETTINGS_FILE_TEMPLATE)
|
||||
@@ -16,49 +16,12 @@ namespace BHPKG {
|
||||
|
||||
|
||||
static const char* kAttributeNames[B_HPKG_ATTRIBUTE_ID_ENUM_COUNT + 1] = {
|
||||
"dir:entry",
|
||||
"file:type",
|
||||
"file:permissions",
|
||||
"file:user",
|
||||
"file:group",
|
||||
"file:atime",
|
||||
"file:mtime",
|
||||
"file:crtime",
|
||||
"file:atime:nanos",
|
||||
"file:mtime:nanos",
|
||||
"file:crtime:nanos",
|
||||
"file:attribute",
|
||||
"file:attribute:type",
|
||||
"data",
|
||||
"symlink:path",
|
||||
"package:name",
|
||||
"package:summary",
|
||||
"package:description",
|
||||
"package:vendor",
|
||||
"package:packager",
|
||||
"package:flags",
|
||||
"package:architecture",
|
||||
"package:version.major",
|
||||
"package:version.minor",
|
||||
"package:version.micro",
|
||||
"package:version.revision",
|
||||
"package:copyright",
|
||||
"package:license",
|
||||
"package:provides",
|
||||
"package:requires",
|
||||
"package:supplements",
|
||||
"package:conflicts",
|
||||
"package:freshens",
|
||||
"package:replaces",
|
||||
"package:resolvable.operator",
|
||||
"package:checksum",
|
||||
"package:version.prerelease",
|
||||
"package:provides.compatible",
|
||||
"package:url",
|
||||
"package:source-url",
|
||||
"package:install-path",
|
||||
"package:base-package",
|
||||
NULL
|
||||
#define B_DEFINE_HPKG_ATTRIBUTE(id, type, name, constant) \
|
||||
name,
|
||||
#include <package/hpkg/PackageAttributes.h>
|
||||
#undef B_DEFINE_HPKG_ATTRIBUTE
|
||||
//
|
||||
NULL // B_HPKG_ATTRIBUTE_ID_ENUM_COUNT
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user