Lines Matching refs:member

80 void EmitMemberDecl(std::ostream* file, const CGenerator::Member& member) {
81 *file << member.type << " " << member.name;
82 for (uint32_t array_count : member.array_counts) {
87 void EmitMethodInParamDecl(std::ostream* file, const CGenerator::Member& member) {
88 switch (member.kind) {
90 *file << "const " << member.type << " " << member.name;
91 for (uint32_t array_count : member.array_counts) {
96 *file << "const " << member.element_type << "* " << member.name << "_data, "
97 << "size_t " << member.name << "_count";
100 *file << "const char* " << member.name << "_data, "
101 << "size_t " << member.name << "_size";
106 *file << member.type << " " << member.name;
109 switch (member.decl_kind) {
111 assert(false && "bad decl kind for member");
115 *file << member.type << " " << member.name;
120 switch (member.nullability) {
122 *file << "const " << member.type << " " << member.name;
125 *file << "const " << member.type << "* " << member.name;
134 void EmitMethodOutParamDecl(std::ostream* file, const CGenerator::Member& member) {
135 switch (member.kind) {
137 *file << member.type << " out_" << member.name;
138 for (uint32_t array_count : member.array_counts) {
142 *file << member.element_type << "* " << member.name << "_buffer, "
143 << "size_t " << member.name << "_capacity, "
144 << "size_t* out_" << member.name << "_count";
147 *file << "char* " << member.name << "_buffer, "
148 << "size_t " << member.name << "_capacity, "
149 << "size_t* out_" << member.name << "_size";
154 *file << member.type << "* out_" << member.name;
157 switch (member.decl_kind) {
159 assert(false && "bad decl kind for member");
163 *file << member.type << "* out_" << member.name;
168 switch (member.nullability) {
170 *file << member.type << " out_" << member.name;
173 *file << member.type << "* out_" << member.name;
186 for (const auto& member : request) {
188 EmitMethodInParamDecl(file, member);
190 for (auto member : response) {
192 EmitMethodOutParamDecl(file, member);
201 for (const auto& member : request) {
203 EmitMethodInParamDecl(file, member);
226 for (const auto& member : response) {
228 EmitMethodInParamDecl(file, member);
233 bool IsStoredOutOfLine(const CGenerator::Member& member) {
234 if (member.kind == flat::Type::Kind::kVector ||
235 member.kind == flat::Type::Kind::kString)
237 if (member.kind == flat::Type::Kind::kIdentifier) {
238 return member.nullability == types::Nullability::kNullable &&
239 (member.decl_kind == flat::Decl::Kind::kStruct || member.decl_kind == flat::Decl::Kind::kUnion);
246 for (const auto& member : params) {
247 if (member.kind == flat::Type::Kind::kVector)
248 *file << " + FIDL_ALIGN(sizeof(*" << member.name << "_data) * " << member.name << "_count)";
249 else if (member.kind == flat::Type::Kind::kString)
250 *file << " + FIDL_ALIGN(" << member.name << "_size)";
251 else if (IsStoredOutOfLine(member))
252 *file << " + (" << member.name << " ? sizeof(*" << member.name << ") : 0u)";
258 for (const auto& member : params) {
259 if (member.kind == flat::Type::Kind::kVector)
260 *file << " + FIDL_ALIGN(sizeof(*" << member.name << "_buffer) * " << member.name << "_capacity)";
261 else if (member.kind == flat::Type::Kind::kString)
262 *file << " + FIDL_ALIGN(" << member.name << "_capacity)";
263 else if (IsStoredOutOfLine(member))
264 *file << " + (out_" << member.name << " ? sizeof(*out_" << member.name << ") : 0u)";
274 for (const auto& member : params) {
275 if (IsStoredOutOfLine(member))
287 for (const auto& member : request) {
288 const auto& name = member.name;
289 switch (member.kind) {
312 switch (member.decl_kind) {
314 assert(false && "bad decl kind for member");
325 switch (member.nullability) {
607 for (const auto& member : members) {
609 EmitMemberDecl(&file_, member);
621 for (const auto& member : members) {
623 EmitMemberDecl(&file_, member);
742 for (const auto& member : named_enum.enum_info.members) {
743 std::string member_name = named_enum.name + "_" + NameIdentifier(member.name);
745 EnumValue(named_enum.enum_info.type, member.value.get(), library_, &member_value);
856 for (const auto& member : named_union.union_info.members) {
857 std::string tag_name = NameUnionTag(named_union.name, member);
971 for (const auto& member : response) {
972 if (member.kind == flat::Type::Kind::kVector) {
975 file_ << "(_response->" << member.name << ".count > " << member.name << "_capacity)";
976 } else if (member.kind == flat::Type::Kind::kString) {
979 file_ << "(_response->" << member.name << ".size > " << member.name << "_capacity)";
980 } else if (IsStoredOutOfLine(member)) {
983 file_ << "((uintptr_t)_response->" << member.name << " == FIDL_ALLOC_PRESENT && out_" << member.name << " == NULL)";
1009 for (const auto& member : response) {
1010 const auto& name = member.name;
1011 switch (member.kind) {
1029 switch (member.decl_kind) {
1031 assert(false && "bad decl kind for member");
1042 switch (member.nullability) {
1047 // We don't have a great way of signaling that the optional response member
1127 for (const auto& member : request) {
1128 switch (member.kind) {
1133 file_ << ", request->" << member.name;
1136 file_ << ", (" << member.element_type << "*)request->" << member.name << ".data"
1137 << ", request->" << member.name << ".count";
1140 file_ << ", request->" << member.name << ".data"
1141 << ", request->" << member.name << ".size";
1144 switch (member.decl_kind) {
1146 assert(false && "bad decl kind for member");
1150 file_ << ", request->" << member.name;
1157 switch (member.nullability) {
1159 file_ << ", request->" << member.name;
1162 file_ << ", &(request->" << member.name << ")";