fork(1) download
  1. /* package whatever; // don't place package name! */
  2. // Template header
  3. ///
  4. template<size_t stack_size> struct static_task{
  5.  
  6. TaskHandle_t handle; /// Task handle after initialization
  7. StaticTask_t state; /// Internal task state struct
  8. const char* const name; /// Task name
  9. const BaseType_t affinity; /// Task core
  10. const BaseType_t basic_priority; /// Task init priority
  11. const TaskFunction_t function; /// Task function pointer
  12. void* const ctx; /// Task context pointer
  13. struct stack{
  14. static constexpr size_t size = stack_size; /// Stack size
  15. StackType_t data[stack_size]; /// Stack data pointer
  16. };
  17. };
  18.  
  19. // Lib header
  20. template<size_t size> esp_err_t xTaskStaticInit(static_task<size>& task_struct);
  21.  
  22. // Lib CPP
  23. template<size_t size> esp_err_t xTaskStaticInit(static_task<size>& task_struct){
  24.  
  25.  
  26. task_struct.handle = xTaskCreateStaticPinnedToCore
  27. (
  28. task_struct->function,
  29. task_struct.name,
  30. task_struct.stack.size,
  31. task_struct.ctx,
  32. task_struct.basic_priority,
  33. task_struct.stack.data,
  34. &task_struct.state,
  35. task_struct.affinity
  36. );
  37.  
  38. if(task_struct.handle == nullptr) { return ESP_FAIL; }
  39. else { return ESP_OK; }
  40. };
  41.  
  42.  
  43. // Main CPP
  44.  
  45. static_task<2048> board_task = {
  46. .name = "board_task",
  47. .affinity = 1,
  48. .basic_priority = 5,
  49. .function = BoardTask,
  50. .ctx = nullptr,
  51. };
  52.  
  53. void main(void){
  54.  
  55. xTaskStaticInit(board_task);
  56. }
  57.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:4: error: class, interface, or enum expected
template<size_t stack_size> struct static_task{
^
Main.java:7: error: class, interface, or enum expected
	StaticTask_t			state;					/// Internal task state struct
	^
Main.java:8: error: class, interface, or enum expected
	const char* const		name;					/// Task name
	^
Main.java:9: error: class, interface, or enum expected
	const BaseType_t		affinity;				/// Task core
	^
Main.java:10: error: class, interface, or enum expected
	const BaseType_t		basic_priority;			/// Task init priority
	^
Main.java:11: error: class, interface, or enum expected
	const TaskFunction_t	function;				/// Task function pointer
	^
Main.java:12: error: class, interface, or enum expected
	void* const 			ctx;					/// Task context pointer
	^
Main.java:13: error: class, interface, or enum expected
	struct stack{
	^
Main.java:15: error: class, interface, or enum expected
		StackType_t 			data[stack_size];	/// Stack data pointer
		^
Main.java:16: error: class, interface, or enum expected
	};
	^
Main.java:17: error: class, interface, or enum expected
};
^
Main.java:20: error: class, interface, or enum expected
template<size_t size> esp_err_t xTaskStaticInit(static_task<size>& task_struct);
^
Main.java:23: error: class, interface, or enum expected
template<size_t size> esp_err_t xTaskStaticInit(static_task<size>& task_struct){
^
Main.java:38: error: class, interface, or enum expected
		if(task_struct.handle == nullptr) { return ESP_FAIL; }
		^
Main.java:38: error: class, interface, or enum expected
		if(task_struct.handle == nullptr) { return ESP_FAIL; }
		                                                     ^
Main.java:39: error: class, interface, or enum expected
		else { return ESP_OK; }
		                      ^
Main.java:45: error: class, interface, or enum expected
static_task<2048> board_task = {
^
Main.java:53: error: class, interface, or enum expected
void main(void){
^
Main.java:56: error: class, interface, or enum expected
}
^
19 errors
stdout
Standard output is empty