/// <summary>
        /// Starts a new instance of the miner.
        /// </summary>
        /// <param name="context"></param>
        /// <param name="resource"></param>
        /// <returns></returns>
        public override IMiner StartMiner(IMinerContext context, CpuResource resource)
        {
            var miner = new ManagedMiner(context, (CpuResource)resource);
            miner.Start();

            return miner;
        }
        public void RequireResource(ComputerResourceType current, ComputerResourceType target)
        {
            if (target == current)
            {
                return;
            }
            switch ((target & ComputerResourceType.Cpu) - (current & ComputerResourceType.Cpu))
            {
            case (int)ComputerResourceType.Cpu:
                CpuResource.Wait();
                break;

            case -(int)ComputerResourceType.Cpu:
                CpuResource.Release();
                break;

            default:
                break;
            }
            switch ((target & ComputerResourceType.DiskIO) - (current & ComputerResourceType.DiskIO))
            {
            case (int)ComputerResourceType.DiskIO:
                DiskIOResource.Wait();
                break;

            case -(int)ComputerResourceType.DiskIO:
                DiskIOResource.Release();
                break;

            default:
                break;
            }
            switch ((target & ComputerResourceType.NetworkIO) - (current & ComputerResourceType.NetworkIO))
            {
            case (int)ComputerResourceType.NetworkIO:
                NetworkIOResource.Wait();
                break;

            case -(int)ComputerResourceType.NetworkIO:
                NetworkIOResource.Release();
                break;

            default:
                break;
            }
        }
Beispiel #3
0
 /// <summary>
 /// Initializes a new instance.
 /// </summary>
 /// <param name="context"></param>
 /// <param name="cpu"></param>
 public CpuMiner(IMinerContext context, CpuResource cpu)
 {
     Context = context;
     Cpu = cpu;
 }
Beispiel #4
0
 /// <summary>
 /// Initializes a new instance.
 /// </summary>
 /// <param name="context"></param>
 /// <param name="cpu"></param>
 public AvxMiner(IMinerContext context, CpuResource cpu)
     : base(context, cpu)
 {
 }
Beispiel #5
0
 /// <summary>
 /// Initializes a new instance.
 /// </summary>
 /// <param name="context"></param>
 /// <param name="cpu"></param>
 public ManagedMiner(IMinerContext context, CpuResource cpu)
     : base(context, cpu)
 {
 }
Beispiel #6
0
 /// <summary>
 /// Implemented by children of <see cref="T:CpuMinerFactory"/> to start a custom miner implementation.
 /// </summary>
 /// <param name="context"></param>
 /// <param name="resource"></param>
 /// <returns></returns>
 public new abstract IMiner StartMiner(IMinerContext context, CpuResource resource);