HaikuDepot: Fixes for Language Handling

Change-Id: Ic6d5a59396f778f684985fad0e39985197c380b3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7524
Reviewed-by: Jérôme Duval <[email protected]>
Tested-by: Commit checker robot <[email protected]>
This commit is contained in:
Andrew Lindesay
2024-03-18 04:10:28 +00:00
parent a40cec84d6
commit 43e19c4715
7 changed files with 9 additions and 16 deletions
+3 -3
View File
@@ -93,7 +93,7 @@ void
LanguageModel::_SetPreferredLanguage(const Language& language) LanguageModel::_SetPreferredLanguage(const Language& language)
{ {
fPreferredLanguage = LanguageRef(new Language(language)); fPreferredLanguage = LanguageRef(new Language(language));
HDDEBUG("set preferred language [%s]", language.ID()); HDDEBUG("set preferred language [%s]", fPreferredLanguage->ID());
} }
@@ -271,9 +271,9 @@ LanguageModel::_NullSafeStrCmp(const char* s1, const char* s2) {
if ((NULL == s1) && (NULL == s2)) if ((NULL == s1) && (NULL == s2))
return 0; return 0;
if (NULL == s1) if (NULL == s1)
return 1; return -1;
if (NULL == s2) if (NULL == s2)
return -1; return 1;
return strcmp(s1, s2); return strcmp(s1, s2);
} }
+3 -3
View File
@@ -834,7 +834,7 @@ Model::DumpExportRepositoryDataPath(BPath& path)
{ {
BString leaf; BString leaf;
leaf.SetToFormat("repository-all_%s.json.gz", leaf.SetToFormat("repository-all_%s.json.gz",
Language()->PreferredLanguage()->Code()); Language()->PreferredLanguage()->ID());
return StorageUtils::LocalWorkingFilesPath(leaf, path); return StorageUtils::LocalWorkingFilesPath(leaf, path);
} }
@@ -849,7 +849,7 @@ Model::DumpExportReferenceDataPath(BPath& path)
{ {
BString leaf; BString leaf;
leaf.SetToFormat("reference-all_%s.json.gz", leaf.SetToFormat("reference-all_%s.json.gz",
Language()->PreferredLanguage()->Code()); Language()->PreferredLanguage()->ID());
return StorageUtils::LocalWorkingFilesPath(leaf, path); return StorageUtils::LocalWorkingFilesPath(leaf, path);
} }
@@ -867,7 +867,7 @@ Model::DumpExportPkgDataPath(BPath& path,
{ {
BString leaf; BString leaf;
leaf.SetToFormat("pkg-all-%s-%s.json.gz", repositorySourceCode.String(), leaf.SetToFormat("pkg-all-%s-%s.json.gz", repositorySourceCode.String(),
Language()->PreferredLanguage()->Code()); Language()->PreferredLanguage()->ID());
return StorageUtils::LocalWorkingFilesPath(leaf, path); return StorageUtils::LocalWorkingFilesPath(leaf, path);
} }
@@ -130,7 +130,6 @@ ProcessCoordinatorFactory::CreateBulkLoadCoordinator(
for (int32 i = 0; i < repoNames.CountStrings(); i++) { for (int32 i = 0; i < repoNames.CountStrings(); i++) {
AbstractProcessNode* processNode = new ThreadedProcessNode( AbstractProcessNode* processNode = new ThreadedProcessNode(
new ServerPkgDataUpdateProcess( new ServerPkgDataUpdateProcess(
model->Language()->PreferredLanguage()->Code(),
repoNames.StringAt(i), model, serverProcessOptions)); repoNames.StringAt(i), model, serverProcessOptions));
processNode->AddPredecessor(serverRepositoryDataUpdate); processNode->AddPredecessor(serverRepositoryDataUpdate);
processNode->AddPredecessor(serverReferenceDataUpdate); processNode->AddPredecessor(serverReferenceDataUpdate);
@@ -203,15 +203,11 @@ PackageFillingPkgListener::Complete()
ServerPkgDataUpdateProcess::ServerPkgDataUpdateProcess( ServerPkgDataUpdateProcess::ServerPkgDataUpdateProcess(
BString naturalLanguageCode,
// note that this is the ID of the language from ICU but it is called
// `code` in the HDS system. Here we use the nomenclature of the server.
BString depotName, BString depotName,
Model *model, Model *model,
uint32 serverProcessOptions) uint32 serverProcessOptions)
: :
AbstractSingleFileServerProcess(serverProcessOptions), AbstractSingleFileServerProcess(serverProcessOptions),
fNaturalLanguageCode(naturalLanguageCode),
fModel(model), fModel(model),
fDepotName(depotName) fDepotName(depotName)
{ {
@@ -248,7 +244,7 @@ ServerPkgDataUpdateProcess::UrlPathComponent()
BString urlPath; BString urlPath;
urlPath.SetToFormat("/__pkg/all-%s-%s.json.gz", urlPath.SetToFormat("/__pkg/all-%s-%s.json.gz",
_DeriveWebAppRepositorySourceCode().String(), _DeriveWebAppRepositorySourceCode().String(),
fNaturalLanguageCode.String()); fModel->Language()->PreferredLanguage()->ID());
return urlPath; return urlPath;
} }
@@ -20,7 +20,6 @@
class ServerPkgDataUpdateProcess : public AbstractSingleFileServerProcess { class ServerPkgDataUpdateProcess : public AbstractSingleFileServerProcess {
public: public:
ServerPkgDataUpdateProcess( ServerPkgDataUpdateProcess(
BString naturalLanguageCode,
BString depotName, BString depotName,
Model *model, Model *model,
uint32 serverProcessOptions); uint32 serverProcessOptions);
@@ -43,7 +42,6 @@ protected:
private: private:
BString _DeriveWebAppRepositorySourceCode() const; BString _DeriveWebAppRepositorySourceCode() const;
BString fNaturalLanguageCode;
Model* fModel; Model* fModel;
BString fDepotName; BString fDepotName;
BString fName; BString fName;
@@ -66,7 +66,7 @@ ServerReferenceDataUpdateProcess::UrlPathComponent()
BString result; BString result;
AutoLocker<BLocker> locker(fModel->Lock()); AutoLocker<BLocker> locker(fModel->Lock());
result.SetToFormat("/__reference/all-%s.json.gz", result.SetToFormat("/__reference/all-%s.json.gz",
fModel->Language()->PreferredLanguage()->Code()); fModel->Language()->PreferredLanguage()->ID());
return result; return result;
} }
@@ -191,7 +191,7 @@ ServerRepositoryDataUpdateProcess::UrlPathComponent()
BString result; BString result;
AutoLocker<BLocker> locker(fModel->Lock()); AutoLocker<BLocker> locker(fModel->Lock());
result.SetToFormat("/__repository/all-%s.json.gz", result.SetToFormat("/__repository/all-%s.json.gz",
fModel->Language()->PreferredLanguage()->Code()); fModel->Language()->PreferredLanguage()->ID());
return result; return result;
} }