Files
developtools_global_resourc…/src/header.cpp
T
fangyunzhong 6576a77829 log信息统一整改
Signed-off-by: fangyunzhong <fangyunzhong2@huawei.com>
2022-11-23 15:06:27 +08:00

72 lines
2.2 KiB
C++

/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "header.h"
#include<algorithm>
#include<fstream>
#include<iomanip>
#include<iostream>
namespace OHOS {
namespace Global {
namespace Restool {
using namespace std;
const std::string Header::LICENSE_HEADER = "/*\n\
* Copyright (c) 2021 Huawei Device Co., Ltd.\n\
* Licensed under the Apache License, Version 2.0 (the \"License\");\n\
* you may not use this file except in compliance with the License.\n\
* You may obtain a copy of the License at\n\
*\n\
* http://www.apache.org/licenses/LICENSE-2.0\n\
*\n\
* Unless required by applicable law or agreed to in writing, software\n\
* distributed under the License is distributed on an \"AS IS\" BASIS,\n\
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n\
* See the License for the specific language governing permissions and\n\
* limitations under the License.\n\
*/\n";
Header::Header(const string &outputPath) : outputPath_(outputPath)
{
}
Header::~Header()
{
}
uint32_t Header::Create(HandleHeaderTail headerHandler, HandleBody bodyHandler, HandleHeaderTail tailHandler) const
{
IdWorker &idWorker = IdWorker::GetInstance();
vector<IdWorker::ResourceId> resourceIds = idWorker.GetHeaderId();
ofstream out(outputPath_, ofstream::out | ofstream::binary);
if (!out.is_open()) {
cerr << "Error: open failed '" << outputPath_ << "', reason: " << strerror(errno) << endl;
return RESTOOL_ERROR;
}
stringstream buffer;
headerHandler(buffer);
for (const auto &resourceId : resourceIds) {
bodyHandler(buffer, resourceId);
}
tailHandler(buffer);
out << buffer.rdbuf();
out.close();
return RESTOOL_SUCCESS;
}
}
}
}