Rework some header files
[novacoin.git] / src / kernel_worker.h
index 63217b9..38e8b05 100644 (file)
@@ -1,39 +1,37 @@
-#ifndef BITCOIN_HERNELWORKER_H
-#define BITCOIN_HERNELWORKER_H
+#ifndef NOVACOIN_KERNELWORKER_H
+#define NOVACOIN_KERNELWORKER_H
+
+#include <vector>
+
 
 class KernelWorker
 {
 public:
     KernelWorker()
     { }
-    KernelWorker(unsigned char *kernel, uint32_t nBits, uint32_t nInputTxTime, int64_t nValueIn, uint32_t nIntervalBegin, uint32_t nIntervalEnd);
+    KernelWorker(uint8_t *kernel, uint32_t nBits, uint32_t nInputTxTime, int64_t nValueIn, uint32_t nIntervalBegin, uint32_t nIntervalEnd);
     void Do();
-    vector<std::pair<uint256,uint32_t> >& GetSolutions();
+    std::vector<std::pair<uint256,uint32_t> >& GetSolutions();
 
 private:
-#ifdef USE_ASM
-#ifdef __x86_64__
-    // AVX2 CPUs: 8-way hashing.
-    void Do_8way();
-#endif
-    // SSE2, Neon: 4-way hashing.
-    void Do_4way();
-#endif
     // One way hashing.
     void Do_generic();
 
     // Kernel solutions.
     std::vector<std::pair<uint256,uint32_t> > solutions;
 
-    // Kernel metadaya
-    uint8_t *kernel;
-    uint32_t nBits;
-    uint32_t nInputTxTime;
-    CBigNum  bnValueIn;
+    // Kernel metadata.
+    uint8_t *kernel = nullptr;
+    uint32_t nBits = 0;
+    uint32_t nInputTxTime = 0;
+    CBigNum  bnValueIn = 0;
 
     // Interval boundaries.
-    uint32_t nIntervalBegin;
-    uint32_t nIntervalEnd;
+    uint32_t nIntervalBegin = 0;
+    uint32_t nIntervalEnd = 0;
 };
 
-#endif
+// Scan given kernel for solutions
+bool ScanKernelBackward(uint8_t *kernel, uint32_t nBits, uint32_t nInputTxTime, int64_t nValueIn, std::pair<uint32_t, uint32_t> &SearchInterval, std::pair<uint256, uint32_t> &solution);
+
+#endif // NOVACOIN_KERNELWORKER_H