Skip to content
Snippets Groups Projects
Commit 4d106f60 authored by Evgeny Lavrik's avatar Evgeny Lavrik
Browse files

Update barcode generator name to a generic one, update its license

parent cfb3d699
No related branches found
No related tags found
No related merge requests found
......@@ -13,48 +13,48 @@
* Translated from JavaScript by Evgeny Lavrik <evgeny.lavrik@uni-tuebingen.de> *
********************************************************************************/
#include "NayukiBarcode.h"
#include "Barcode.h"
#include <sstream>
#include <map>
#include <regex>
std::string NayukiBarcode::EncodeString(std::string string, NayukiBarcodeType barcodeType)
std::string Barcode::EncodeString(std::string string, Type barcodeType)
{
switch (barcodeType)
{
case NayukiBarcodeType::Code128:
return NayukiBarcode::Code128(string);
case Type::Code128:
return Barcode::Code128(string);
case NayukiBarcodeType::Code93:
return NayukiBarcode::Code93(string);
case Type::Code93:
return Barcode::Code93(string);
case NayukiBarcodeType::Code39:
return NayukiBarcode::Code39(string);
case Type::Code39:
return Barcode::Code39(string);
case NayukiBarcodeType::Codabar:
return NayukiBarcode::Codabar(string);
case Type::Codabar:
return Barcode::Codabar(string);
case NayukiBarcodeType::Interleaved2of5:
return NayukiBarcode::Interleaved2of5(string);
case Type::Interleaved2of5:
return Barcode::Interleaved2of5(string);
case NayukiBarcodeType::UpcA:
return NayukiBarcode::UpcA(string);
case Type::UpcA:
return Barcode::UpcA(string);
case NayukiBarcodeType::UpcACheck:
return NayukiBarcode::UpcACheck(string);
case Type::UpcACheck:
return Barcode::UpcACheck(string);
case NayukiBarcodeType::Ean8:
return NayukiBarcode::Ean8(string);
case Type::Ean8:
return Barcode::Ean8(string);
case NayukiBarcodeType::Ean8Check:
return NayukiBarcode::Ean8Check(string);
case Type::Ean8Check:
return Barcode::Ean8Check(string);
case NayukiBarcodeType::Ean13:
return NayukiBarcode::Ean13(string);
case Type::Ean13:
return Barcode::Ean13(string);
case NayukiBarcodeType::Ean13Check:
return NayukiBarcode::Ean13Check(string);
case Type::Ean13Check:
return Barcode::Ean13Check(string);
default:
return std::string();
......@@ -62,7 +62,7 @@ std::string NayukiBarcode::EncodeString(std::string string, NayukiBarcodeType ba
}
// (all ASCII characters)
std::string NayukiBarcode::Code128(std::string string)
std::string Barcode::Code128(std::string string)
{
// Encode into a sequence of numbers
std::vector<unsigned char> encoded;
......@@ -109,7 +109,7 @@ std::string NayukiBarcode::Code128(std::string string)
}
// (all ASCII characters)
std::string NayukiBarcode::Code93(std::string string)
std::string Barcode::Code93(std::string string)
{
// Escape the string
std::stringstream t;
......@@ -169,7 +169,7 @@ std::string NayukiBarcode::Code93(std::string string)
}
// (uppercase, space, .-+/$%)
std::string NayukiBarcode::Code39(std::string string)
std::string Barcode::Code39(std::string string)
{
if (!std::regex_match(string, std::regex("^[0-9A-Z. +/$%-]*$"))) {
return std::string();
......@@ -203,7 +203,7 @@ std::string NayukiBarcode::Code39(std::string string)
}
// (numbers, .:-+/$)
std::string NayukiBarcode::Codabar(std::string string)
std::string Barcode::Codabar(std::string string)
{
if (!std::regex_match(string, std::regex("^[0-9$$/:.+-]*$"))) {
return std::string();
......@@ -233,7 +233,7 @@ std::string NayukiBarcode::Codabar(std::string string)
}
// (digits only, even length)
std::string NayukiBarcode::Interleaved2of5(std::string string)
std::string Barcode::Interleaved2of5(std::string string)
{
if (!std::regex_match(string, std::regex("^(\\d\\d)*$"))) {
return std::string();
......@@ -264,7 +264,7 @@ std::string NayukiBarcode::Interleaved2of5(std::string string)
}
// (12 numbers)
std::string NayukiBarcode::UpcA(std::string string)
std::string Barcode::UpcA(std::string string)
{
if (!std::regex_match(string, std::regex("^\\d{12}$"))) {
return std::string();
......@@ -286,13 +286,13 @@ std::string NayukiBarcode::UpcA(std::string string)
}
// (7 numbers)
std::string NayukiBarcode::UpcACheck(std::string string)
std::string Barcode::UpcACheck(std::string string)
{
return UpcA(AddCheckDigit(11, string));
}
// (8 numbers)
std::string NayukiBarcode::Ean8(std::string string)
std::string Barcode::Ean8(std::string string)
{
if (!std::regex_match(string, std::regex("^\\d{8}$"))) {
return std::string();
......@@ -314,13 +314,13 @@ std::string NayukiBarcode::Ean8(std::string string)
}
// (7 numbers)
std::string NayukiBarcode::Ean8Check(std::string string)
std::string Barcode::Ean8Check(std::string string)
{
return Ean8(AddCheckDigit(7, string));
}
// (13 numbers)
std::string NayukiBarcode::Ean13(std::string string)
std::string Barcode::Ean13(std::string string)
{
if (!std::regex_match(string, std::regex("^\\d{13}$"))) {
return std::string();
......@@ -349,24 +349,24 @@ std::string NayukiBarcode::Ean13(std::string string)
}
// (12 numbers)
std::string NayukiBarcode::Ean13Check(std::string string)
std::string Barcode::Ean13Check(std::string string)
{
return Ean13(AddCheckDigit(12, string));
}
void NayukiBarcode::AppendDigits(std::stringstream &stream, std::string digits)
void Barcode::AppendDigits(std::stringstream &stream, std::string digits)
{
stream << digits;
}
void NayukiBarcode::AppendRepeat(std::stringstream &stream, int digit, int rep)
void Barcode::AppendRepeat(std::stringstream &stream, int digit, int rep)
{
for (int i = 0; i < rep; i++)
stream << std::to_string(digit);
}
std::string NayukiBarcode::InvertBits(std::string bits)
std::string Barcode::InvertBits(std::string bits)
{
std::stringstream result;
for (int i=0; i < bits.size(); i++) {
......@@ -376,7 +376,7 @@ std::string NayukiBarcode::InvertBits(std::string bits)
}
// e.g. addCheckDigit(7, "3216548") -> "32165487".
std::string NayukiBarcode::AddCheckDigit(int len, std::string string) {
std::string Barcode::AddCheckDigit(int len, std::string string) {
if (!std::regex_match(string, std::regex("^\\d*$")) || string.size() != len) {
return std::string();
}
......
......@@ -13,32 +13,32 @@
* Translated from JavaScript by Evgeny Lavrik <evgeny.lavrik@uni-tuebingen.de> *
********************************************************************************/
#ifndef NAYUKIBARCODE_H
#define NAYUKIBARCODE_H
#ifndef BARCODE_H
#define BARCODE_H
#include <iostream>
#include <vector>
#include <string>
#include "TObject.h"
enum class NayukiBarcodeType {
Code128,
Code93,
Code39,
Codabar,
Interleaved2of5,
UpcA,
UpcACheck,
Ean8,
Ean8Check,
Ean13,
Ean13Check
};
class NayukiBarcode
class Barcode
{
public:
static std::string EncodeString(std::string string, NayukiBarcodeType barcodeType = NayukiBarcodeType::Code128);
enum class Type : int {
Code128,
Code93,
Code39,
Codabar,
Interleaved2of5,
UpcA,
UpcACheck,
Ean8,
Ean8Check,
Ean13,
Ean13Check
};
static std::string EncodeString(std::string string, Type barcodeType = Type::Code128);
static std::string Code128(std::string string);
static std::string Code93(std::string string);
......@@ -59,4 +59,4 @@ class NayukiBarcode
static std::string AddCheckDigit(int len, std::string string);
};
#endif // NAYUKIBARCODE_H
#endif // BARCODE_H
Copyright © 2018 Project Nayuki. (GNU LGPL3 License)
https://www.nayuki.io/page/1d-barcode-generator-javascript
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
......
......@@ -23,12 +23,12 @@ set(LINK_DIRECTORIES
link_directories(${LINK_DIRECTORIES})
set(SRCS
${CMAKE_SOURCE_DIR}/db3rdParty/barcode/NayukiBarcode.cxx
${CMAKE_SOURCE_DIR}/db3rdParty/barcode/Barcode.cxx
FairDbBarcode.cxx
)
set(HEADERS
${CMAKE_SOURCE_DIR}/db3rdParty/barcode/NayukiBarcode.h
${CMAKE_SOURCE_DIR}/db3rdParty/barcode/Barcode.h
FairDbBarcode.h
)
......
#include "FairDbBarcode.h"
TH1F* FairDbBarcode::EncodeString(std::string string, NayukiBarcodeType barcodeType)
TH1F* FairDbBarcode::EncodeString(std::string string, Barcode::Type barcodeType)
{
std::string encoded = NayukiBarcode::EncodeString(string, barcodeType);
std::string encoded = Barcode::EncodeString(string, barcodeType);
Int_t size = encoded.size();
TH1F *hist = new TH1F("Barcode", string.c_str(), size, 0, size);
......
......@@ -5,12 +5,12 @@
#include "TObject.h"
#include "TH1F.h"
#include "NayukiBarcode.h"
#include "Barcode.h"
class FairDbBarcode
{
public:
static TH1F* EncodeString(std::string string, NayukiBarcodeType barcodeType = NayukiBarcodeType::Code128);
static TH1F* EncodeString(std::string string, Barcode::Type barcodeType = Barcode::Type::Code128);
};
#endif // FAIRDBBARCODE_H
......@@ -13,7 +13,6 @@
#pragma link off all functions;
#pragma link C++ class FairDbBarcode-;
#pragma link C++ class NayukiBarcode-;
#pragma link C++ enum NayukiBarcodeType-;
#pragma link C++ class Barcode-;
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment