Move WriteCompactSize and ReadCompactSize to serialize.cpp
authorCryptoManiac <balthazar@yandex.ru>
Sat, 23 Apr 2016 21:32:11 +0000 (00:32 +0300)
committerCryptoManiac <balthazar@yandex.ru>
Sat, 23 Apr 2016 21:32:11 +0000 (00:32 +0300)
novacoin-qt.pro
src/makefile.bsd
src/makefile.linux-mingw
src/makefile.mingw
src/makefile.osx
src/makefile.unix
src/serialize.cpp [new file with mode: 0644]
src/serialize.h

index 30a0326..5a9e09f 100644 (file)
@@ -365,7 +365,9 @@ SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \
     src/cryptogram.cpp \
     src/uint256.cpp \
     src/ecies.cpp \
-    src/ipcollector.cpp
+    src/ipcollector.cpp \
+    src/serialize.cpp
+
 
 RESOURCES += \
     src/qt/bitcoin.qrc
index 1ae9cf6..0f2b48e 100644 (file)
@@ -139,7 +139,8 @@ OBJS= \
     obj/kernel_worker.o \
     obj/ecies.o \
     obj/cryptogram.o \
-    obj/ipcollector.o
+    obj/ipcollector.o \
+    obj/template.o
 
 all: novacoind
 
index a2f4720..a240bcb 100644 (file)
@@ -103,7 +103,8 @@ OBJS= \
     obj/kernel_worker.o \
     obj/ecies.o \
     obj/cryptogram.o \
-    obj/ipcollector.o
+    obj/ipcollector.o \
+    obj/template.o
 
 all: novacoind.exe
 
index d8d81c4..254df42 100644 (file)
@@ -93,7 +93,8 @@ OBJS= \
     obj/kernel_worker.o \
     obj/ecies.o \
     obj/cryptogram.o \
-    obj/ipcollector.o
+    obj/ipcollector.o \
+    obj/template.o
 
 all: novacoind.exe
 
index da13b8a..4ce21e7 100644 (file)
@@ -101,7 +101,8 @@ OBJS= \
     obj/kernel_worker.o \
     obj/ecies.o \
     obj/cryptogram.o \
-    obj/ipcollector.o
+    obj/ipcollector.o \
+    obj/template.o
 
 ifneq (${USE_IPV6}, -)
        DEFS += -DUSE_IPV6=$(USE_IPV6)
index 13b75a5..bc05f83 100644 (file)
@@ -140,7 +140,8 @@ OBJS= \
     obj/kernel_worker.o \
     obj/ecies.o \
     obj/cryptogram.o \
-    obj/ipcollector.o
+    obj/ipcollector.o \
+    obj/template.o
 
 all: novacoind
 
diff --git a/src/serialize.cpp b/src/serialize.cpp
new file mode 100644 (file)
index 0000000..ddf2ea4
--- /dev/null
@@ -0,0 +1,79 @@
+#include "serialize.h"
+#include "hash.h"
+
+template<typename Stream>
+void WriteCompactSize(Stream& os, uint64_t nSize)
+{
+    if (nSize < 253)
+    {
+        unsigned char chSize = (unsigned char)nSize;
+        WRITEDATA(os, chSize);
+    }
+    else if (nSize <= std::numeric_limits<unsigned short>::max())
+    {
+        unsigned char chSize = 253;
+        unsigned short xSize = (unsigned short)nSize;
+        WRITEDATA(os, chSize);
+        WRITEDATA(os, xSize);
+    }
+    else if (nSize <= std::numeric_limits<unsigned int>::max())
+    {
+        unsigned char chSize = 254;
+        unsigned int xSize = (unsigned int)nSize;
+        WRITEDATA(os, chSize);
+        WRITEDATA(os, xSize);
+    }
+    else
+    {
+        unsigned char chSize = 255;
+        uint64_t xSize = nSize;
+        WRITEDATA(os, chSize);
+        WRITEDATA(os, xSize);
+    }
+    return;
+}
+
+
+template<typename Stream>
+uint64_t ReadCompactSize(Stream& is)
+{
+    unsigned char chSize;
+    READDATA(is, chSize);
+    uint64_t nSizeRet = 0;
+    if (chSize < 253)
+    {
+        nSizeRet = chSize;
+    }
+    else if (chSize == 253)
+    {
+        unsigned short xSize;
+        READDATA(is, xSize);
+        nSizeRet = xSize;
+    }
+    else if (chSize == 254)
+    {
+        unsigned int xSize;
+        READDATA(is, xSize);
+        nSizeRet = xSize;
+    }
+    else
+    {
+        uint64_t xSize;
+        READDATA(is, xSize);
+        nSizeRet = xSize;
+    }
+    if (nSizeRet > (uint64_t)MAX_SIZE)
+        throw std::ios_base::failure("ReadCompactSize() : size too large");
+    return nSizeRet;
+}
+
+
+
+// Template instantiation
+
+template void WriteCompactSize<CAutoFile>(CAutoFile&, uint64_t);
+template void WriteCompactSize<CDataStream>(CDataStream&, uint64_t);
+template void WriteCompactSize<CHashWriter>(CHashWriter&, uint64_t);
+
+template uint64_t ReadCompactSize<CAutoFile>(CAutoFile&);
+template uint64_t ReadCompactSize<CDataStream>(CDataStream&);
index b3f8d8d..d1ad2f4 100644 (file)
@@ -178,69 +178,10 @@ inline unsigned int GetSizeOfCompactSize(uint64_t nSize)
 }
 
 template<typename Stream>
-void WriteCompactSize(Stream& os, uint64_t nSize)
-{
-    if (nSize < 253)
-    {
-        unsigned char chSize = (unsigned char)nSize;
-        WRITEDATA(os, chSize);
-    }
-    else if (nSize <= std::numeric_limits<unsigned short>::max())
-    {
-        unsigned char chSize = 253;
-        unsigned short xSize = (unsigned short)nSize;
-        WRITEDATA(os, chSize);
-        WRITEDATA(os, xSize);
-    }
-    else if (nSize <= std::numeric_limits<unsigned int>::max())
-    {
-        unsigned char chSize = 254;
-        unsigned int xSize = (unsigned int)nSize;
-        WRITEDATA(os, chSize);
-        WRITEDATA(os, xSize);
-    }
-    else
-    {
-        unsigned char chSize = 255;
-        uint64_t xSize = nSize;
-        WRITEDATA(os, chSize);
-        WRITEDATA(os, xSize);
-    }
-    return;
-}
+void WriteCompactSize(Stream& os, uint64_t nSize);
 
 template<typename Stream>
-uint64_t ReadCompactSize(Stream& is)
-{
-    unsigned char chSize;
-    READDATA(is, chSize);
-    uint64_t nSizeRet = 0;
-    if (chSize < 253)
-    {
-        nSizeRet = chSize;
-    }
-    else if (chSize == 253)
-    {
-        unsigned short xSize;
-        READDATA(is, xSize);
-        nSizeRet = xSize;
-    }
-    else if (chSize == 254)
-    {
-        unsigned int xSize;
-        READDATA(is, xSize);
-        nSizeRet = xSize;
-    }
-    else
-    {
-        uint64_t xSize;
-        READDATA(is, xSize);
-        nSizeRet = xSize;
-    }
-    if (nSizeRet > (uint64_t)MAX_SIZE)
-        throw std::ios_base::failure("ReadCompactSize() : size too large");
-    return nSizeRet;
-}
+uint64_t ReadCompactSize(Stream& is);
 
 // Variable-length integers: bytes are a MSB base-128 encoding of the number.
 // The high bit in each byte signifies whether another digit follows. To make