Skip to main content

System Coupling C++ library 2023 R2

OutputVectorData

Last update: 17.07.2025
1/*
2* Copyright 2023 ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.
3*/
4
5#pragma once
6
7#include "SystemCouplingParticipant/LibraryType.hpp"
8
9#include "SystemCouplingParticipant/CommonTypes.hpp"
10
11#include <cstddef>
12#include <vector>
13
14namespace sysc {
15
27class SYSTEM_COUPLING_PARTICIPANT_DLL OutputVectorData {
28public:
35 OutputVectorData(const double* data, std::size_t size);
36
43 OutputVectorData(const float* data, std::size_t size);
44
50 OutputVectorData(const std::vector<double>& data);
51
57 OutputVectorData(const std::vector<float>& data);
58
69 const double* data0,
70 const double* data1,
71 const double* data2,
72 std::size_t size);
73
84 const float* data0,
85 const float* data1,
86 const float* data2,
87 std::size_t size);
88
98 const std::vector<double>& data0,
99 const std::vector<double>& data1,
100 const std::vector<double>& data2);
101
111 const std::vector<float>& data0,
112 const std::vector<float>& data1,
113 const std::vector<float>& data2);
114
116 OutputVectorData() = default;
117
120
123
126
129
131 std::size_t size() const;
132
138
144 bool isSplitVector() const;
145
151 const void* getData0() const;
152
158 const void* getData1() const;
159
165 const void* getData2() const;
166
167private:
169 bool m_isSplitVector{false};
170 const void* m_data0{nullptr};
171 const void* m_data1{nullptr};
172 const void* m_data2{nullptr};
173 std::size_t m_size{0};
174};
175
176} // namespace sysc
Provide a class for output vector data.
OutputVectorData(const std::vector< float > &data)
Provide a constructor for output vector data with compact storage.
sysc::PrimitiveType getDataType() const
Get the primitive type of data.
OutputVectorData(const OutputVectorData &)=default
Provide a copy-constructor.
OutputVectorData(const std::vector< double > &data)
Provide a constructor for output vector data with compact storage.
OutputVectorData(const double *data, std::size_t size)
Provide a constructor for output vector data with compact storage.
OutputVectorData(const float *data0, const float *data1, const float *data2, std::size_t size)
Create an output vector data access object with split storage.
OutputVectorData & operator=(const OutputVectorData &)=default
Provide a copy-assign operator.
bool isSplitVector() const
Query whether it's a split or compact vector layout.
const void * getData0() const
Get pointer to data0.
const void * getData2() const
Get pointer to data2.
const void * getData1() const
Get pointer to data1.
OutputVectorData()=default
Provide a default constructor.
OutputVectorData & operator=(OutputVectorData &&)=default
Provide a move-assign operator.
OutputVectorData(const std::vector< float > &data0, const std::vector< float > &data1, const std::vector< float > &data2)
Create an output vector data access object with split storage.
OutputVectorData(OutputVectorData &&)=default
Provide a move-constructor.
std::size_t size() const
Get the size of data.
OutputVectorData(const std::vector< double > &data0, const std::vector< double > &data1, const std::vector< double > &data2)
Create an output vector data access object with split storage.
OutputVectorData(const double *data0, const double *data1, const double *data2, std::size_t size)
Create an output vector data access object with split storage.
OutputVectorData(const float *data, std::size_t size)
Provide a constructor for output vector data with compact storage.
PrimitiveType
Provide enum for supported primitive types.

Connect with Ansys