mirror of
https://review.haiku-os.org/haiku
synced 2025-02-06 05:50:48 +01:00
Global and user settings files can be declared. For global ones an update policy can be specified. If not specified, the settings file is not included in the package, but created by the program (or user) later. If an update type is specified, it defines what to do with the settings file when updating the package to a newer version. User settings files are never included in the package; they are always created by the program or the user. If the package contains a template/ default settings file, it can be declared, but for informative purposes only.
124 lines
2.3 KiB
C++
124 lines
2.3 KiB
C++
/*
|
|
* Copyright 2009,2011, Haiku, Inc.
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
#ifndef _PACKAGE__HPKG__PACKAGE_INFO_ATTRIBUTE_VALUE_H_
|
|
#define _PACKAGE__HPKG__PACKAGE_INFO_ATTRIBUTE_VALUE_H_
|
|
|
|
|
|
#include <SupportDefs.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <package/PackageArchitecture.h>
|
|
#include <package/PackageInfoAttributes.h>
|
|
#include <package/PackageResolvableOperator.h>
|
|
#include <package/SettingsFileUpdateType.h>
|
|
|
|
|
|
namespace BPackageKit {
|
|
|
|
namespace BHPKG {
|
|
|
|
|
|
struct BPackageVersionData {
|
|
const char* major;
|
|
const char* minor;
|
|
const char* micro;
|
|
const char* preRelease;
|
|
uint32 revision;
|
|
};
|
|
|
|
|
|
struct BPackageResolvableData {
|
|
const char* name;
|
|
bool haveVersion;
|
|
bool haveCompatibleVersion;
|
|
BPackageVersionData version;
|
|
BPackageVersionData compatibleVersion;
|
|
};
|
|
|
|
|
|
struct BPackageResolvableExpressionData {
|
|
const char* name;
|
|
bool haveOpAndVersion;
|
|
BPackageResolvableOperator op;
|
|
BPackageVersionData version;
|
|
};
|
|
|
|
|
|
struct BGlobalSettingsFileInfoData {
|
|
const char* path;
|
|
BSettingsFileUpdateType updateType;
|
|
};
|
|
|
|
|
|
struct BUserSettingsFileInfoData {
|
|
const char* path;
|
|
const char* templatePath;
|
|
};
|
|
|
|
|
|
struct BPackageInfoAttributeValue {
|
|
union {
|
|
uint64 unsignedInt;
|
|
const char* string;
|
|
BPackageVersionData version;
|
|
BPackageResolvableData resolvable;
|
|
BPackageResolvableExpressionData resolvableExpression;
|
|
BGlobalSettingsFileInfoData globalSettingsFileInfo;
|
|
BUserSettingsFileInfoData userSettingsFileInfo;
|
|
};
|
|
BPackageInfoAttributeID attributeID;
|
|
|
|
public:
|
|
BPackageInfoAttributeValue();
|
|
|
|
void SetTo(BPackageInfoAttributeID id,
|
|
uint8 value);
|
|
void SetTo(BPackageInfoAttributeID id,
|
|
const char* value);
|
|
|
|
void Clear();
|
|
};
|
|
|
|
|
|
inline
|
|
BPackageInfoAttributeValue::BPackageInfoAttributeValue()
|
|
{
|
|
Clear();
|
|
}
|
|
|
|
|
|
inline void
|
|
BPackageInfoAttributeValue::SetTo(BPackageInfoAttributeID id, uint8 value)
|
|
{
|
|
attributeID = id;
|
|
unsignedInt = value;
|
|
}
|
|
|
|
|
|
inline void
|
|
BPackageInfoAttributeValue::SetTo(BPackageInfoAttributeID id,
|
|
const char* value)
|
|
{
|
|
attributeID = id;
|
|
string = value;
|
|
}
|
|
|
|
|
|
inline void
|
|
BPackageInfoAttributeValue::Clear()
|
|
{
|
|
memset(this, 0, sizeof(BPackageInfoAttributeValue));
|
|
attributeID = B_PACKAGE_INFO_ENUM_COUNT;
|
|
}
|
|
|
|
|
|
} // namespace BHPKG
|
|
|
|
} // namespace BPackageKit
|
|
|
|
|
|
#endif // _PACKAGE__HPKG__PACKAGE_ATTRIBUTE_VALUE_H_
|