//public static ICopier Create(Type from, Type to) public static ICopier Create <TSrc, TDest>() { const string asmName = "DynamicCopier"; AssemblyBuilder asm = CreateAsm(asmName); ModuleBuilder mb = asm.DefineDynamicModule(asmName, asmName + ".dll"); TypeBuilder typeBuilder = mb.DefineType("DynamicCopier", TypeAttributes.Public, typeof(object), new Type[] { typeof(ICopier) }); MethodBuilder methodBuilder = typeBuilder.DefineMethod( "Copy", MethodAttributes.Virtual | MethodAttributes.Public | MethodAttributes.ReuseSlot, typeof(void), new Type[] { typeof(TSrc), typeof(TDest) } ); ILGenerator ilGenerator = methodBuilder.GetILGenerator(); FieldInfo[] fieldsFrom = typeof(TSrc).GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); for (int i = 0; i < fieldsFrom.Length; i++) { ilGenerator.Emit(OpCodes.Ldarg_2); ilGenerator.Emit(OpCodes.Ldarg_1); ilGenerator.Emit(OpCodes.Ldfld, fieldsFrom[i]); ilGenerator.Emit(OpCodes.Stfld, typeof(TDest).GetField(fieldsFrom[i].Name, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance)); } ilGenerator.Emit(OpCodes.Ret); Type dynCipierType = typeBuilder.CreateType(); ICopier dynCopier = (ICopier)Activator.CreateInstance(dynCipierType); asm.Save(asmName + ".dll"); return(dynCopier); }
public PoolCopierSetter(ICopier copier, FieldInfo field, object source) { this.copier = copier; this.field = field; this.source = source; isUnityObject = source is UnityEngine.Object; }
/// <summary> /// Вызов копировальщика, в соответствие с типом item /// </summary> /// <param name="items">список объектов для копирования</param> /// <param name="dest">каталог назначения</param> /// <param name="interval">интервал копирования</param> public void Copy(List <Item> items, string dest, int interval, bool isDeleteMode) { ICopier copier = null; foreach (var item in items) { if (!item.IsHandled) { lock (_locker) { item.IsHandled = true; if (item.IsDirectory) { copier = DirectoryRecursiveCopier.GetCopier(); } else { copier = FileCopier.GetCopier(); } copier.Copy(item.Name, Path.Combine(dest, Path.GetFileName(item.Name)), isDeleteMode); Thread.Sleep(interval); } } } }
public CopyProcessor(ITaskContextInternal taskContext, ICopier copier, FullPath destinationRootDir, bool logFiles = true) { _taskContext = taskContext; _copier = copier; _destinationRootDir = destinationRootDir; _logFiles = logFiles; }
public ICopier Copy() { const string asmName = "DynamicCopy"; AssemblyBuilder asm = CreateAsm(asmName); ModuleBuilder moduleBuilder = asm.DefineDynamicModule(asmName, asmName + ".dll"); TypeBuilder typeBuilder = moduleBuilder.DefineType("DynamicCopy", TypeAttributes.Public, typeof(object), new Type[] { typeof(ICopier) }); MethodBuilder methodBuilder = typeBuilder.DefineMethod("CopyDynamically", MethodAttributes.Virtual | MethodAttributes.Public | MethodAttributes.ReuseSlot, typeof(object), new Type[] { typeof(object) }); ILGenerator ilGenerator = methodBuilder.GetILGenerator(); ConstructorInfo constr = dst.GetConstructor(Type.EmptyTypes); LocalBuilder result = ilGenerator.DeclareLocal(dst); ilGenerator.Emit(OpCodes.Newobj, constr); ilGenerator.Emit(OpCodes.Stloc_0); ilGenerator.Emit(OpCodes.Ldloc_0); foreach (MatchInfo m in listOfProperties) { MethodInfo gSrc = srcPropertyInfo[m.SrcIdx].GetMethod; MethodInfo sDst = dstPropertyInfo[m.DstIdx].SetMethod; ilGenerator.Emit(OpCodes.Ldarg_1); ilGenerator.Emit(OpCodes.Callvirt, gSrc); ilGenerator.Emit(OpCodes.Callvirt, sDst); ilGenerator.Emit(OpCodes.Ldloc_0); } ilGenerator.Emit(OpCodes.Ret); Type dinamicCreateType = typeBuilder.CreateType(); ICopier dinamicCreate = (ICopier)Activator.CreateInstance(dinamicCreateType); asm.Save(asmName + ".dll"); return(dinamicCreate); }
public void Initialize() { _source = ""; _destination = ""; _copier = new Copier(); }
static void Main(string[] args) { DisplayBanner(); if (args.Length < 1) { DisplayHelp(); return; } IIocContainer iocContainer = InitializeIocContainer(); ReadOnlyControlFile control = new ReadOnlyControlFile(args[0]); IFinder finder = iocContainer.Resolve <IFinder>(); ICopier copier = iocContainer.Resolve <ICopier>(); IUnwantedFileRemover remover = iocContainer.Resolve <IUnwantedFileRemover>(); IUnwantedFolderRemover folderRemover = iocContainer.Resolve <IUnwantedFolderRemover>(); IFileUtilities fileUtilities = iocContainer.Resolve <IFileUtilities>(); IPathUtilities pathUtilities = iocContainer.Resolve <IPathUtilities>(); IPlaylistFactory playlistFactory = iocContainer.Resolve <IPlaylistFactory>(); Generator generator = new Generator(finder, fileUtilities, pathUtilities, playlistFactory); generator.StatusUpdate += new EventHandler <StatusUpdateEventArgs>(StatusUpdate); Synchronizer synchronizer = new Synchronizer(finder, copier, remover, folderRemover); synchronizer.StatusUpdate += new EventHandler <StatusUpdateEventArgs>(StatusUpdate); synchronizer.Synchronize(control, false); if (!string.IsNullOrEmpty(control.GetPlaylistFileName())) { generator.GeneratePlaylist(control, true); } }
public override object getMappedObject(object src) { if (cop == null) { cop = emit.Copy(); } return(cop.CopyDynamically(src)); }
public LoadoutService(ILogger logger, ICopier copier, ILogEventBuilder eventBuilder) { _logger = logger; _copier = copier; _eventBuilder = eventBuilder; _loadoutRepository = new LoadoutRepository(); _byPlayerIdQuery = new LoadoutsByUserId(); }
public HandlerBO() : base() { this.Copier = new SimpleCopy(); ConfigurationBO cbo = (ConfigurationBO)SingletonManager.GetSingleton(typeof(ConfigurationBO)); this.QTimer = new Timer(Convert.ToInt32(cbo.CContainer.WaitTime)); this.QTimer.AutoReset = true; this.QTimer.Elapsed += new ElapsedEventHandler(this.Timer_Tick); }
public static Action <T, R> Build <T, R>(this ICopier <T, R> copier) { if (copier == null) { throw new ArgumentNullException("copier"); } return(copier.Expression.Compile()); }
public Copy(ICopier copier) : base() { this.copier = copier; IsCommand("copy", "Copies a file to a remote host."); HasRequiredOption("s|source=", "Source filename on this local system.", s => source = s); HasRequiredOption("t|target=", "Target filename on remote system.", t => destination = t); }
public CopierFieldInitializer(ICopier copier, object source) { this.copier = copier; this.source = source; if (source is IPoolFieldsInitializable) { ((IPoolFieldsInitializable)source).OnPrePoolFieldsInitialize(this); ((IPoolFieldsInitializable)source).OnPostPoolFieldsInitialize(this); } }
/// <summary> /// construct a podcast synchroniser /// </summary> /// <param name="fileFinder">abstract interface to the file system to find media files</param> /// <param name="fileCopier">abstract file copier</param> /// <param name="fileRemover">abstract file remover, to synchronise deleted files in the source to the destination</param> /// <param name="folderRemover">abstract folder remover, to remove folder that have gone empty during sync</param> public Synchronizer( IFinder fileFinder, ICopier fileCopier, IUnwantedFileRemover fileRemover, IUnwantedFolderRemover folderRemover) { FileFinder = fileFinder; FileCopier = fileCopier; FileRemover = fileRemover; FolderRemover = folderRemover; }
public Main(ICopier copier, ILogger logger) { InitializeComponent(); _copierInstance = copier; _logger = logger; // Watch for changes in the copier _copierInstance.PropertyChanged += _copierInstance_PropertyChanged; }
private static void CopyStudentToPerson(Student s, ICopier copier, String message) { Stopwatch sw = new Stopwatch(); sw.Start(); Person p = null; for (int i = 0; i < NUM_REPETITIONS; ++i) { p = new Person(); copier.Copy(s, p); } // Compare the last one just for sanity check Assert.AreEqual(s.Name, p.Name); Assert.AreEqual(s.Nr, p.Nr); sw.Stop(); Console.WriteLine("{1} copy took {0}ms", sw.ElapsedMilliseconds, message); }
public BatchCopier(ICopier fileCopier, IEnumerable<IBeforeCopyTask> beforeCopyTasks, IEnumerable<IAfterCopyTask> afterCopyTasks) { if (fileCopier == null) { throw new ArgumentNullException("fileCopier"); } if (beforeCopyTasks == null) { throw new ArgumentNullException("beforeCopyTasks"); } if (afterCopyTasks == null) { throw new ArgumentNullException("afterCopyTasks"); } this.fileCopier = fileCopier; this.beforeCopyTasks = new List<IBeforeCopyTask>(); this.beforeCopyTasks.AddRange(beforeCopyTasks); this.afterCopyTasks = new List<IAfterCopyTask>(); this.afterCopyTasks.AddRange(afterCopyTasks); }
static FastCopy() { _asmBuilder = Thread.GetDomain().DefineDynamicAssembly(_asmName, AssemblyBuilderAccess.RunAndSave); _modBuilder = _asmBuilder.DefineDynamicModule(_asmName.Name, _asmName.Name + ".dll", true); var typeBuilder = _modBuilder.DefineType("FastCopier", TypeAttributes.Public | TypeAttributes.AutoClass | TypeAttributes.AnsiClass | TypeAttributes.Class | TypeAttributes.Serializable | TypeAttributes.BeforeFieldInit); typeBuilder.AddInterfaceImplementation(typeof(ICopier)); var copyMethod = typeBuilder.DefineMethod("Copy", MethodAttributes.Public | MethodAttributes.HideBySig | MethodAttributes.Virtual, typeof(void), new Type[] { typeof(byte[]), typeof(byte[]), typeof(int), typeof(uint) }); var code = copyMethod.GetILGenerator(); code.Emit(OpCodes.Ldarg_2); code.Emit(OpCodes.Ldc_I4_0); code.Emit(OpCodes.Ldelema, typeof(byte)); code.Emit(OpCodes.Ldarg_1); code.Emit(OpCodes.Ldarg_3); code.Emit(OpCodes.Ldelema, typeof(byte)); code.Emit(OpCodes.Ldarg, 4); code.Emit(OpCodes.Cpblk); code.Emit(OpCodes.Ret); typeBuilder.DefineMethodOverride(copyMethod, typeof(ICopier).GetMethod("Copy")); var copierType = typeBuilder.CreateType(); _copier = (ICopier)Activator.CreateInstance(copierType); }
public SynchronizeBO() { this.reporter = new SynchronizeReporter(); this.copier = new SimpleCopy(); }
public PoolElementCopierSetter(ICopier copier, object source) { this.copier = copier; this.source = source; isUnityObject = source is UnityEngine.Object; }
public MFU(ICopier copier, IScaner scaner, IPrinter printer) { _copier = copier; _scaner = scaner; _printer = printer; }
public static ICopier <T, R> Copy <T, R, K>(this ICopier <T, R> copier, Expression <Func <T, K> > source, Expression <Func <R, K> > target) { return(new CopierImpl <T, R>(CopyCore <T, R, K>(copier.Expression, source, target))); }
public static ICopier <T, R> Copy <T, R, K>(this ICopier <T, R> copier, Expression <Func <IReturnableMember <T>, K> > source, Expression <Func <IAssignableMember <R>, K> > target) { return(new CopierImpl <T, R>(CopyCore <T, R, K>(copier.Expression, ReflectionBuilder.ReturnableMember <T, K>(source), ReflectionBuilder.AssignableMember <R, K>(target)))); }
public static ICopier <T, R> ApplyTarget <T, R>(this ICopier <T, R> copier, IAccessor <R> accessor) { return(new CopierImpl <T, R>(ApplyTargetCore <T, R>(copier.Expression, accessor.Expression))); }
public static ICopier <T, R> ApplyTarget <T, R>(this ICopier <T, R> copier, Expression <Action <IAccessor <R> > > accessor) { return(new CopierImpl <T, R>(ApplyTargetCore <T, R>(copier.Expression, GetExpression <R>(accessor)))); }
public CopyProcessor(ITaskContext taskContext, ICopier copier, FullPath destinationRootDir) { this.taskContext = taskContext; this.copier = copier; this.destinationRootDir = destinationRootDir; }
public static void Evaluate <T, R>(this ICopier <T, R> copier, T source, R target) { Build(copier)(source, target); }
/// <summary> /// Register a copier with the Spf reader /// </summary> /// <param name="copier">ICopier object</param> public static void RegisterCopier(ICopier copier) { s_lstCopiers.Add(copier); }
public CopyCommand(ICopier copier, IBlobsListing listing) { this.copier = copier; this.listing = listing; }
public Prep(ICopier copier) : base() { this.copier = copier; IsCommand("prep", "Prepares a host for remote Powershell control."); }
public MultiFunctionMachine(ICopier copier, IPrinter printer, IScanner scanner) { _copier = copier ?? throw new ArgumentNullException(paramName: nameof(copier)); _printer = printer ?? throw new ArgumentNullException(paramName: nameof(printer)); _scanner = scanner ?? throw new ArgumentNullException(paramName: nameof(scanner)); }
public DynGeneratedCodeCopier() { //dynCopier = DynCopierBuilder.Create(typeof(Student), typeof(Person)); dynCopier = DynCopierBuilder.Create <Student, Person>(); }
public SynchronizeBO(ICopier copier) : this() { this.copier = copier; }
public void SetCopier(ICopier cp) { copier = cp; }
public CopyProcessor(ILogger logger, ICopier copier, string destinationRootDir) { this.logger = logger; this.copier = copier; this.destinationRootDir = destinationRootDir; }