package Ġcom . github . kor ni lo va _ l . fl ame graph . plugin . server . converters . c fl ame graph Ċ Ċ import Ġcom . github . kor ni lo va _ l . fl ame graph . c fl ame graph . Names Ċ import Ġcom . github . kor ni lo va _ l . fl ame graph . c fl ame graph . Node Ċ import Ġcom . github . kor ni lo va _ l . fl ame graph . c fl ame graph . Tree Ċ import Ġcom . github . kor ni lo va _ l . fl ame graph . plugin . server . File ToFile Converter File Saver Ċ import Ġcom . google . flat buffers . Flat Buffer Builder Ċ import Ġjava . io . File Ċ import Ġjava . io . File OutputStream Ċ Ċ class ĠC Fl ame graph File Saver Ġ: ĠFile ToFile Converter File Saver () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġextension Ġ= ĠProfiler To C Fl ame graph Converter Factory . c Fl ame graph Extension ĊĊĠĠĠ Ġoverride Ġfun Ġtry To Convert ( file : ĠFile ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġc Fl ame graph Ġ= ĠProfiler To C Fl ame graph Converter Factory . convert ( file ) Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠFlat Buffer Builder ( 1 0 2 4 ) ĊĊĠĠĠĠĠĠĠ Ġval ĠclassNames Offsets Ġ= ĠInt Array ( c Fl ame graph . class Names . size ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġc Fl ame graph . class Names . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠclassNames Offsets [ i ] Ġ= Ġbuilder . create String ( c Fl ame graph . class Names [ i ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠclassNames Ġ= ĠNames . createClass Names Vector ( builder , ĠclassNames Offsets ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmethod Names Offsets Ġ= ĠInt Array ( c Fl ame graph . method Names . size ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġc Fl ame graph . method Names . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Names Offsets [ i ] Ġ= Ġbuilder . create String ( c Fl ame graph . method Names [ i ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmethod Names Ġ= ĠNames . create Method Names Vector ( builder , Ġmethod Names Offsets ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdescriptions Offsets Ġ= ĠInt Array ( c Fl ame graph . descriptions . size ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġc Fl ame graph . descriptions . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescriptions Offsets [ i ] Ġ= Ġbuilder . create String ( c Fl ame graph . descriptions [ i ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġdescriptions Ġ= ĠNames . create Descriptions Vector ( builder , Ġdescriptions Offsets ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnames Ġ= ĠNames . create Names ( builder , ĠclassNames , Ġmethod Names , Ġdescriptions ) ĊĊĠĠĠĠĠĠĠ ĠTree . start Nodes Vector ( builder , Ġc Fl ame graph . lines . size ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġc Fl ame graph . lines . size Ġ- Ġ 1 Ġdown To Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġline Ġ= Ġc Fl ame graph . lines [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNode . createNode ( builder , Ġline . className Id Ġ?: Ġ- 1 , Ġline . methodName Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline . desc Id Ġ?: Ġ- 1 , Ġline . width , Ġline . depth ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġnodes Ġ= Ġbuilder . end Vector () ĊĊĠĠĠĠĠĠĠ Ġval Ġtree Ġ= ĠTree . create Tree ( builder , Ġnames , Ġnodes ) ĊĊĠĠĠĠĠĠĠ Ġbuilder . finish ( tree ) ĊĠĠĠĠĠĠĠ Ġval Ġfo Stream Ġ= ĠFileOutputStream ( file ) ĊĠĠĠĠĠĠĠ Ġfo Stream . write ( builder . sized ByteArray ()) ĊĠĠĠĠĠĠĠ Ġfo Stream . close () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ