#ifndef NOVACOIN_KERNELWORKER_H #define NOVACOIN_KERNELWORKER_H #include class KernelWorker { public: KernelWorker() { } KernelWorker(unsigned char *kernel, uint32_t nBits, uint32_t nInputTxTime, int64_t nValueIn, uint32_t nIntervalBegin, uint32_t nIntervalEnd); void Do(); std::vector >& GetSolutions(); private: // One way hashing. void Do_generic(); // Kernel solutions. std::vector > solutions; // Kernel metadata. uint8_t *kernel; uint32_t nBits; uint32_t nInputTxTime; CBigNum bnValueIn; // Interval boundaries. uint32_t nIntervalBegin; uint32_t nIntervalEnd; }; // Scan given kernel for solutions bool ScanKernelBackward(unsigned char *kernel, uint32_t nBits, uint32_t nInputTxTime, int64_t nValueIn, std::pair &SearchInterval, std::pair &solution); #endif // NOVACOIN_KERNELWORKER_H