* Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
* http://license.coscl.org.cn/MulanPSL2
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*/
#include "../../core/memory/DataInputView.h"
#include "TimeWindow.h"
TimeWindow::TimeWindow() {}
TimeWindow::TimeWindow(int64_t start, int64_t end) : start(start), end(end) {}
TimeWindow::Serializer::Serializer() {}
bool TimeWindow::Serializer::isImmutableType() const
{
return true;
}
TimeWindow *TimeWindow::Serializer::createInstance() const
{
return new TimeWindow(0, 1);
}
TimeWindow *TimeWindow::Serializer::copy(TimeWindow *from) const
{
return from;
}
TimeWindow *TimeWindow::Serializer::copy(TimeWindow *from, TimeWindow *reuse) const
{
return from;
}
int32_t TimeWindow::Serializer::getLength() const
{
return sizeof(int64_t) * 2;
}
void TimeWindow::Serializer::serialize(void *input, DataOutputSerializer &target)
{
TimeWindow *record = (TimeWindow *) input;
target.writeLong(record->start);
target.writeLong(record->end);
}
void *TimeWindow::Serializer::deserialize(DataInputView &source)
{
int64_t start1;
int64_t end1;
start1 = source.readLong();
end1 = source.readLong();
return new TimeWindow(start1, end1);
}
void TimeWindow::Serializer::copy(DataInputView *source, DataOutputSerializer *target) const
{
target->writeLong(source->readLong());
target->writeLong(source->readLong());
}
BackendDataType TimeWindow::Serializer::getBackendId() const
{
return BackendDataType::TIME_WINDOW_BK;
}