25 #ifndef SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESET_HPP |
25 #ifndef SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESET_HPP |
26 #define SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESET_HPP |
26 #define SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESET_HPP |
27 |
27 |
28 #include "jfr/utilities/jfrAllocation.hpp" |
28 #include "jfr/utilities/jfrAllocation.hpp" |
29 |
29 |
30 class ClassLoaderData; |
|
31 class JfrArtifactClosure; |
|
32 class JfrArtifactSet; |
|
33 class JfrCheckpointWriter; |
30 class JfrCheckpointWriter; |
34 class Klass; |
|
35 |
|
36 class ModuleEntry; |
|
37 class PackageEntry; |
|
38 |
31 |
39 class JfrTypeSet : AllStatic { |
32 class JfrTypeSet : AllStatic { |
40 friend class CLDCallback; |
33 public: |
41 friend class JfrTypeManager; |
34 static size_t serialize(JfrCheckpointWriter* writer, bool class_unload, bool flushpoint); |
42 friend class TypeSetSerialization; |
|
43 private: |
|
44 static JfrArtifactSet* _artifacts; |
|
45 static JfrArtifactClosure* _subsystem_callback; |
|
46 static bool _class_unload; |
|
47 static bool _flushpoint; |
|
48 static bool is_rotating(); |
|
49 static bool is_not_rotating(); |
|
50 static bool current_epoch(); |
|
51 |
|
52 static void do_klass(Klass* k); |
|
53 static void do_unloaded_klass(Klass* k); |
|
54 static void do_klasses(); |
|
55 |
|
56 static void do_package(PackageEntry* entry); |
|
57 static void do_unloaded_package(PackageEntry* entry); |
|
58 static void do_packages(); |
|
59 |
|
60 static void do_module(ModuleEntry* entry); |
|
61 static void do_unloaded_module(ModuleEntry* entry); |
|
62 static void do_modules(); |
|
63 |
|
64 static void do_class_loader_data(ClassLoaderData* cld); |
|
65 static void do_unloaded_class_loader_data(ClassLoaderData* cld); |
|
66 static void do_class_loaders(); |
|
67 |
|
68 static void write_klass_constants(JfrCheckpointWriter* writer, JfrCheckpointWriter* leakp_writer); |
|
69 static void write_package_constants(JfrCheckpointWriter* writer, JfrCheckpointWriter* leakp_writer); |
|
70 static void write_module_constants(JfrCheckpointWriter* writer, JfrCheckpointWriter* leakp_writer); |
|
71 static void write_class_loader_constants(JfrCheckpointWriter* writer, JfrCheckpointWriter* leakp_writer); |
|
72 static void write_method_constants(JfrCheckpointWriter* writer, JfrCheckpointWriter* leakp_writer); |
|
73 static void write_symbol_constants(JfrCheckpointWriter* writer, JfrCheckpointWriter* leakp_writer); |
|
74 static size_t serialize(JfrCheckpointWriter* writer, JfrCheckpointWriter* leakp_writer, bool class_unload, bool flushpoint); |
|
75 }; |
35 }; |
76 |
36 |
77 #endif // SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESET_HPP |
37 #endif // SHARE_JFR_RECORDER_CHECKPOINT_TYPES_JFRTYPESET_HPP |