feat(hos_client_create, hos_client_destory): 多次调用destory不会导致重复释放

This commit is contained in:
彭宣正
2020-12-14 17:24:58 +08:00
parent 505d529c32
commit 10b370e486
55976 changed files with 8544395 additions and 2 deletions

View File

@@ -0,0 +1,180 @@
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#include <aws/pinpoint/model/DefaultPushNotificationMessage.h>
#include <aws/core/utils/json/JsonSerializer.h>
#include <utility>
using namespace Aws::Utils::Json;
using namespace Aws::Utils;
namespace Aws
{
namespace Pinpoint
{
namespace Model
{
DefaultPushNotificationMessage::DefaultPushNotificationMessage() :
m_action(Action::NOT_SET),
m_actionHasBeenSet(false),
m_bodyHasBeenSet(false),
m_dataHasBeenSet(false),
m_silentPush(false),
m_silentPushHasBeenSet(false),
m_substitutionsHasBeenSet(false),
m_titleHasBeenSet(false),
m_urlHasBeenSet(false)
{
}
DefaultPushNotificationMessage::DefaultPushNotificationMessage(JsonView jsonValue) :
m_action(Action::NOT_SET),
m_actionHasBeenSet(false),
m_bodyHasBeenSet(false),
m_dataHasBeenSet(false),
m_silentPush(false),
m_silentPushHasBeenSet(false),
m_substitutionsHasBeenSet(false),
m_titleHasBeenSet(false),
m_urlHasBeenSet(false)
{
*this = jsonValue;
}
DefaultPushNotificationMessage& DefaultPushNotificationMessage::operator =(JsonView jsonValue)
{
if(jsonValue.ValueExists("Action"))
{
m_action = ActionMapper::GetActionForName(jsonValue.GetString("Action"));
m_actionHasBeenSet = true;
}
if(jsonValue.ValueExists("Body"))
{
m_body = jsonValue.GetString("Body");
m_bodyHasBeenSet = true;
}
if(jsonValue.ValueExists("Data"))
{
Aws::Map<Aws::String, JsonView> dataJsonMap = jsonValue.GetObject("Data").GetAllObjects();
for(auto& dataItem : dataJsonMap)
{
m_data[dataItem.first] = dataItem.second.AsString();
}
m_dataHasBeenSet = true;
}
if(jsonValue.ValueExists("SilentPush"))
{
m_silentPush = jsonValue.GetBool("SilentPush");
m_silentPushHasBeenSet = true;
}
if(jsonValue.ValueExists("Substitutions"))
{
Aws::Map<Aws::String, JsonView> substitutionsJsonMap = jsonValue.GetObject("Substitutions").GetAllObjects();
for(auto& substitutionsItem : substitutionsJsonMap)
{
Array<JsonView> listOf__stringJsonList = substitutionsItem.second.AsArray();
Aws::Vector<Aws::String> listOf__stringList;
listOf__stringList.reserve((size_t)listOf__stringJsonList.GetLength());
for(unsigned listOf__stringIndex = 0; listOf__stringIndex < listOf__stringJsonList.GetLength(); ++listOf__stringIndex)
{
listOf__stringList.push_back(listOf__stringJsonList[listOf__stringIndex].AsString());
}
m_substitutions[substitutionsItem.first] = std::move(listOf__stringList);
}
m_substitutionsHasBeenSet = true;
}
if(jsonValue.ValueExists("Title"))
{
m_title = jsonValue.GetString("Title");
m_titleHasBeenSet = true;
}
if(jsonValue.ValueExists("Url"))
{
m_url = jsonValue.GetString("Url");
m_urlHasBeenSet = true;
}
return *this;
}
JsonValue DefaultPushNotificationMessage::Jsonize() const
{
JsonValue payload;
if(m_actionHasBeenSet)
{
payload.WithString("Action", ActionMapper::GetNameForAction(m_action));
}
if(m_bodyHasBeenSet)
{
payload.WithString("Body", m_body);
}
if(m_dataHasBeenSet)
{
JsonValue dataJsonMap;
for(auto& dataItem : m_data)
{
dataJsonMap.WithString(dataItem.first, dataItem.second);
}
payload.WithObject("Data", std::move(dataJsonMap));
}
if(m_silentPushHasBeenSet)
{
payload.WithBool("SilentPush", m_silentPush);
}
if(m_substitutionsHasBeenSet)
{
JsonValue substitutionsJsonMap;
for(auto& substitutionsItem : m_substitutions)
{
Array<JsonValue> listOf__stringJsonList(substitutionsItem.second.size());
for(unsigned listOf__stringIndex = 0; listOf__stringIndex < listOf__stringJsonList.GetLength(); ++listOf__stringIndex)
{
listOf__stringJsonList[listOf__stringIndex].AsString(substitutionsItem.second[listOf__stringIndex]);
}
substitutionsJsonMap.WithArray(substitutionsItem.first, std::move(listOf__stringJsonList));
}
payload.WithObject("Substitutions", std::move(substitutionsJsonMap));
}
if(m_titleHasBeenSet)
{
payload.WithString("Title", m_title);
}
if(m_urlHasBeenSet)
{
payload.WithString("Url", m_url);
}
return payload;
}
} // namespace Model
} // namespace Pinpoint
} // namespace Aws