forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			36 lines
		
	
	
		
			864 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			864 B
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#ifndef HX_TELEMETRY_H
							 | 
						||
| 
								 | 
							
								#define HX_TELEMETRY_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define HX_TELEMETRY_VERSION 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <hxcpp.h>
							 | 
						||
| 
								 | 
							
								#include <vector>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								struct TelemetryFrame
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  // microseconds, always valid
							 | 
						||
| 
								 | 
							
								  int gctime;
							 | 
						||
| 
								 | 
							
								  int gcoverhead;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Valid only if profiler is enabled
							 | 
						||
| 
								 | 
							
								  std::vector<int> *samples;
							 | 
						||
| 
								 | 
							
								  std::vector<const char*> *names;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // Valid only if allocations (and profiler) are enabled
							 | 
						||
| 
								 | 
							
								  std::vector<int> *allocation_data;
							 | 
						||
| 
								 | 
							
								  std::vector<int> *stacks;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// --- Telemetry -----------------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								int __hxcpp_hxt_start_telemetry(bool profiler, bool allocations);
							 | 
						||
| 
								 | 
							
								void __hxcpp_hxt_stash_telemetry();
							 | 
						||
| 
								 | 
							
								TelemetryFrame* __hxcpp_hxt_dump_telemetry(int thread_num);
							 | 
						||
| 
								 | 
							
								void __hxcpp_hxt_ignore_allocs(int delta);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// expose these from GCInternal
							 | 
						||
| 
								 | 
							
								int __hxcpp_gc_reserved_bytes();
							 | 
						||
| 
								 | 
							
								int __hxcpp_gc_used_bytes();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 |