blob: 4cde01e324d27f361c6ac33d2e1db1b5e9caa24b [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 "Position.hpp"
#include <geode/DataInput.hpp>
#include <geode/DataOutput.hpp>
namespace DataSerializableTest {
int32_t Position::count = 0;
Position::Position()
: volumeAverageOver20Days_(0),
conversionRatio_(0.0),
valueGain_(0.0),
industry_(0),
issuer_(0),
marketValue_(0.0),
quantity_(0.0),
sharesOutstanding_(0),
volatility_(0),
positionId_(0) {}
Position::Position(std::string id, int32_t outstandingShares) : Position() {
securityId_ = std::move(id);
securityType_ = "a";
sharesOutstanding_ = outstandingShares;
quantity_ = outstandingShares - (count % 2 == 0 ? 1000 : 100);
marketValue_ = quantity_ * 1.2345998;
positionId_ = count++;
}
void Position::toData(apache::geode::client::DataOutput& output) const {
output.writeInt(volumeAverageOver20Days_);
output.writeString(bondRating_);
output.writeDouble(conversionRatio_);
output.writeString(country_);
output.writeDouble(valueGain_);
output.writeInt(industry_);
output.writeInt(issuer_);
output.writeDouble(marketValue_);
output.writeDouble(quantity_);
output.writeString(securityId_);
output.writeString(securityLinks_);
output.writeUTF(securityType_);
output.writeInt(sharesOutstanding_);
output.writeString(underlyingSecurity_);
output.writeInt(volatility_);
output.writeInt(positionId_);
}
void Position::fromData(apache::geode::client::DataInput& input) {
volumeAverageOver20Days_ = input.readInt64();
bondRating_ = input.readString();
conversionRatio_ = input.readDouble();
country_ = input.readString();
valueGain_ = input.readDouble();
industry_ = input.readInt64();
issuer_ = input.readInt64();
marketValue_ = input.readDouble();
quantity_ = input.readDouble();
securityId_ = input.readString();
securityLinks_ = input.readString();
securityType_ = input.readUTF();
sharesOutstanding_ = input.readInt32();
underlyingSecurity_ = input.readString();
volatility_ = input.readInt64();
positionId_ = input.readInt32();
}
} // namespace DataSerializableTest