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,165 @@
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#include <aws/alexaforbusiness/model/Contact.h>
#include <aws/core/utils/json/JsonSerializer.h>
#include <utility>
using namespace Aws::Utils::Json;
using namespace Aws::Utils;
namespace Aws
{
namespace AlexaForBusiness
{
namespace Model
{
Contact::Contact() :
m_contactArnHasBeenSet(false),
m_displayNameHasBeenSet(false),
m_firstNameHasBeenSet(false),
m_lastNameHasBeenSet(false),
m_phoneNumberHasBeenSet(false),
m_phoneNumbersHasBeenSet(false),
m_sipAddressesHasBeenSet(false)
{
}
Contact::Contact(JsonView jsonValue) :
m_contactArnHasBeenSet(false),
m_displayNameHasBeenSet(false),
m_firstNameHasBeenSet(false),
m_lastNameHasBeenSet(false),
m_phoneNumberHasBeenSet(false),
m_phoneNumbersHasBeenSet(false),
m_sipAddressesHasBeenSet(false)
{
*this = jsonValue;
}
Contact& Contact::operator =(JsonView jsonValue)
{
if(jsonValue.ValueExists("ContactArn"))
{
m_contactArn = jsonValue.GetString("ContactArn");
m_contactArnHasBeenSet = true;
}
if(jsonValue.ValueExists("DisplayName"))
{
m_displayName = jsonValue.GetString("DisplayName");
m_displayNameHasBeenSet = true;
}
if(jsonValue.ValueExists("FirstName"))
{
m_firstName = jsonValue.GetString("FirstName");
m_firstNameHasBeenSet = true;
}
if(jsonValue.ValueExists("LastName"))
{
m_lastName = jsonValue.GetString("LastName");
m_lastNameHasBeenSet = true;
}
if(jsonValue.ValueExists("PhoneNumber"))
{
m_phoneNumber = jsonValue.GetString("PhoneNumber");
m_phoneNumberHasBeenSet = true;
}
if(jsonValue.ValueExists("PhoneNumbers"))
{
Array<JsonView> phoneNumbersJsonList = jsonValue.GetArray("PhoneNumbers");
for(unsigned phoneNumbersIndex = 0; phoneNumbersIndex < phoneNumbersJsonList.GetLength(); ++phoneNumbersIndex)
{
m_phoneNumbers.push_back(phoneNumbersJsonList[phoneNumbersIndex].AsObject());
}
m_phoneNumbersHasBeenSet = true;
}
if(jsonValue.ValueExists("SipAddresses"))
{
Array<JsonView> sipAddressesJsonList = jsonValue.GetArray("SipAddresses");
for(unsigned sipAddressesIndex = 0; sipAddressesIndex < sipAddressesJsonList.GetLength(); ++sipAddressesIndex)
{
m_sipAddresses.push_back(sipAddressesJsonList[sipAddressesIndex].AsObject());
}
m_sipAddressesHasBeenSet = true;
}
return *this;
}
JsonValue Contact::Jsonize() const
{
JsonValue payload;
if(m_contactArnHasBeenSet)
{
payload.WithString("ContactArn", m_contactArn);
}
if(m_displayNameHasBeenSet)
{
payload.WithString("DisplayName", m_displayName);
}
if(m_firstNameHasBeenSet)
{
payload.WithString("FirstName", m_firstName);
}
if(m_lastNameHasBeenSet)
{
payload.WithString("LastName", m_lastName);
}
if(m_phoneNumberHasBeenSet)
{
payload.WithString("PhoneNumber", m_phoneNumber);
}
if(m_phoneNumbersHasBeenSet)
{
Array<JsonValue> phoneNumbersJsonList(m_phoneNumbers.size());
for(unsigned phoneNumbersIndex = 0; phoneNumbersIndex < phoneNumbersJsonList.GetLength(); ++phoneNumbersIndex)
{
phoneNumbersJsonList[phoneNumbersIndex].AsObject(m_phoneNumbers[phoneNumbersIndex].Jsonize());
}
payload.WithArray("PhoneNumbers", std::move(phoneNumbersJsonList));
}
if(m_sipAddressesHasBeenSet)
{
Array<JsonValue> sipAddressesJsonList(m_sipAddresses.size());
for(unsigned sipAddressesIndex = 0; sipAddressesIndex < sipAddressesJsonList.GetLength(); ++sipAddressesIndex)
{
sipAddressesJsonList[sipAddressesIndex].AsObject(m_sipAddresses[sipAddressesIndex].Jsonize());
}
payload.WithArray("SipAddresses", std::move(sipAddressesJsonList));
}
return payload;
}
} // namespace Model
} // namespace AlexaForBusiness
} // namespace Aws