src/StreamletAttributeFinder.h
branchv_0
changeset 62 a467e8cbd16b
parent 61 640ba8948d69
child 70 018e2609f5bb
equal deleted inserted replaced
61:640ba8948d69 62:a467e8cbd16b
   141 					vector<AttributeMetadata> metadata;
   141 					vector<AttributeMetadata> metadata;
   142 					while (true) {
   142 					while (true) {
   143 						SubProcess::Message m = subProcess->read();
   143 						SubProcess::Message m = subProcess->read();
   144 						if (m.code == StreamletMsg::OUTPUT_ATTRIBUTE_METADATA) metadata.push_back({m.parameters[0], writer->toTypeId(m.parameters[1])});
   144 						if (m.code == StreamletMsg::OUTPUT_ATTRIBUTE_METADATA) metadata.push_back({m.parameters[0], writer->toTypeId(m.parameters[1])});
   145 						else if (m.code == StreamletMsg::WAITING_FOR_INPUT_ATTRIBUTES) break;
   145 						else if (m.code == StreamletMsg::WAITING_FOR_INPUT_ATTRIBUTES) break;
       
   146 						else throw RelpipeWriterException(L"Protocol violation from exec sub-process while reading output attribute metadata. Expected OUTPUT_ATTRIBUTE_METADATA or WAITING_FOR_INPUT_ATTRIBUTES but got: " + m.toString());
   146 					}
   147 					}
   147 
   148 
   148 					cachedMetadata[field.id] = metadata;
   149 					cachedMetadata[field.id] = metadata;
   149 					return metadata;
   150 					return metadata;
   150 				} else {
   151 				} else {