protected virtual void CreateService(RosTypeInfo rosType, ServiceDescriptor service) { if (NameMapper.IsBuiltInType(rosType)) { return; } WriteServiceInternal(rosType); WriteMessageInternal(rosType, DetailedRosMessageType.ServiceRequest, service.Request); WriteMessageInternal(rosType, DetailedRosMessageType.ServiceResponse, service.Response); }
private void WriteMessageInternal(RosTypeInfo rosType, DetailedRosMessageType messageType, MessageDescriptor message) { if (messageType == DetailedRosMessageType.None || messageType == DetailedRosMessageType.Action || messageType == DetailedRosMessageType.Service) { throw new ArgumentException($"message type is not detailed enough", nameof(messageType)); } if (NameMapper.IsBuiltInType(rosType)) { return; } var data = GetMessageTemplateData(rosType, messageType, message); SanitizeMessageTemplateData(data); var filePath = _directories.TempDirectory.GetFilePath($"{data.TypeName}.cs"); var content = _templateEngine.Format(MessageTemplateFile, data); WriteFile(filePath, content); }