UnityEditor.CodeStrippingUtils.WriteStaticallyLinkedModuleRegistration C# (CSharp) Method

WriteStaticallyLinkedModuleRegistration() private static method

private static WriteStaticallyLinkedModuleRegistration ( TextWriter w, HashSet nativeModules, HashSet nativeClasses ) : void
w System.IO.TextWriter
nativeModules HashSet
nativeClasses HashSet
return void
        private static void WriteStaticallyLinkedModuleRegistration(TextWriter w, HashSet<string> nativeModules, HashSet<string> nativeClasses)
        {
            w.WriteLine("struct ClassRegistrationContext;");
            w.WriteLine("void InvokeRegisterStaticallyLinkedModuleClasses(ClassRegistrationContext& context)");
            w.WriteLine("{");
            if (nativeClasses == null)
            {
                w.WriteLine("\tvoid RegisterStaticallyLinkedModuleClasses(ClassRegistrationContext&);");
                w.WriteLine("\tRegisterStaticallyLinkedModuleClasses(context);");
            }
            else
            {
                w.WriteLine("\t// Do nothing (we're in stripping mode)");
            }
            w.WriteLine("}");
            w.WriteLine();
            w.WriteLine("void RegisterStaticallyLinkedModulesGranular()");
            w.WriteLine("{");
            foreach (string str in nativeModules)
            {
                w.WriteLine("\tvoid RegisterModule_" + str + "();");
                w.WriteLine("\tRegisterModule_" + str + "();");
                w.WriteLine();
            }
            w.WriteLine("}");
        }

Usage Example

示例#1
0
 private static void WriteModuleAndClassRegistrationFile(string file, HashSet <string> nativeModules, HashSet <string> nativeClasses)
 {
     using (TextWriter textWriter = new StreamWriter(file))
     {
         CodeStrippingUtils.WriteStaticallyLinkedModuleRegistration(textWriter, nativeModules, nativeClasses);
         textWriter.WriteLine();
         textWriter.WriteLine("void RegisterAllClasses()");
         textWriter.WriteLine("{");
         if (nativeClasses == null)
         {
             textWriter.WriteLine("\tvoid RegisterAllClassesGranular();");
             textWriter.WriteLine("\tRegisterAllClassesGranular();");
         }
         else
         {
             textWriter.WriteLine(string.Format("\t//Total: {0} classes", nativeClasses.Count));
             int num = 0;
             foreach (string current in nativeClasses)
             {
                 textWriter.WriteLine(string.Format("\t//{0}. {1}", num, current));
                 if (current == "MasterServerInterface")
                 {
                     textWriter.WriteLine("\t//Skipping");
                 }
                 else
                 {
                     if (current == "NetworkManager")
                     {
                         textWriter.WriteLine("\t//Skipping");
                     }
                     else
                     {
                         textWriter.WriteLine(string.Format("\tvoid RegisterClass_{0}();", current));
                         textWriter.WriteLine(string.Format("\tRegisterClass_{0}();", current));
                     }
                 }
                 textWriter.WriteLine();
                 num++;
             }
         }
         textWriter.WriteLine("}");
         textWriter.Close();
     }
 }
All Usage Examples Of UnityEditor.CodeStrippingUtils::WriteStaticallyLinkedModuleRegistration