forked from cgvr/DeltaVR
		
	
		
			
				
	
	
		
			62 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using MonoFN.Cecil;
 | 
						|
using SR = System.Reflection;
 | 
						|
 | 
						|
 | 
						|
namespace FishNet.CodeGenerating
 | 
						|
{
 | 
						|
    internal abstract class CodegenBase
 | 
						|
    {
 | 
						|
        //Lazy debug checks.
 | 
						|
        public bool IsIsolatedAsm => (Module.Name.Contains("IsolatedAsm"));
 | 
						|
        public bool IsRuntimeAsm => (Module.Name.Contains("FishNet.Runtime"));
 | 
						|
 | 
						|
        public CodegenSession Session { get; private set; }
 | 
						|
        public ModuleDefinition Module { get; private set; }
 | 
						|
 | 
						|
        public virtual bool ImportReferences() { return true; }
 | 
						|
 | 
						|
        public void Initialize(CodegenSession session)
 | 
						|
        {
 | 
						|
            Session = session;
 | 
						|
            Module = session.Module;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Returns class of type if found within Session.
 | 
						|
        /// </summary>
 | 
						|
        /// <typeparam name="T"></typeparam>
 | 
						|
        /// <returns></returns>
 | 
						|
        internal T GetClass<T>() where T : CodegenBase => Session.GetClass<T>();
 | 
						|
 | 
						|
        #region Logging.
 | 
						|
        /// <summary>
 | 
						|
        /// Logs a warning.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="msg"></param>
 | 
						|
        internal void LogWarning(string msg) => Session.LogWarning(msg);
 | 
						|
        /// <summary>
 | 
						|
        /// Logs an error.
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="msg"></param>
 | 
						|
        internal void LogError(string msg) => Session.LogError(msg);
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region ImportReference.
 | 
						|
        public MethodReference ImportReference(SR.MethodBase method) => Session.ImportReference(method);
 | 
						|
        public MethodReference ImportReference(SR.MethodBase method, IGenericParameterProvider context) => Session.ImportReference(method, context);
 | 
						|
        public TypeReference ImportReference(TypeReference type) => Session.ImportReference(type);
 | 
						|
        public TypeReference ImportReference(TypeReference type, IGenericParameterProvider context) => Session.ImportReference(type, context);
 | 
						|
        public FieldReference ImportReference(FieldReference field) => Session.ImportReference(field);
 | 
						|
        public FieldReference ImportReference(FieldReference field, IGenericParameterProvider context) => Session.ImportReference(field, context);
 | 
						|
        public FieldReference ImportReference(SR.FieldInfo field) => Session.ImportReference(field);
 | 
						|
        public FieldReference ImportReference(SR.FieldInfo field, IGenericParameterProvider context) => Session.ImportReference(field, context);
 | 
						|
        public MethodReference ImportReference(MethodReference method) => Session.ImportReference(method);
 | 
						|
        public MethodReference ImportReference(MethodReference method, IGenericParameterProvider context) => Session.ImportReference(method, context);
 | 
						|
        public TypeReference ImportReference(System.Type type) => Session.ImportReference(type, null);
 | 
						|
        public TypeReference ImportReference(System.Type type, IGenericParameterProvider context) => Session.ImportReference(type, context);
 | 
						|
        #endregion
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
}
 |