GS1 Barcode Syntax Engine — C / C++ API
Library for processing GS1 Application Identifier syntax
Data Structures | Namespaces | Enumerations
gs1encoders.hpp File Reference

Introduction

GS1 Barcode Syntax Engine

Author
GS1 AISBL
License

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Header-only C++ wrapper for the GS1 Barcode Syntax Engine (requires C++17 or later). Provides idiomatic C++ types (std::string, std::vector, std::optional) and a typed exception hierarchy over the underlying C API; the native context is freed automatically when the gs1encoders::GS1Encoder object is destroyed, whether that is at end-of-scope or as part of a longer-lived holder. For an overview, examples and usage instructions see the main documentation page.

#include <gs1encoders.h>
#include <optional>
#include <stdexcept>
#include <string>
#include <vector>
Include dependency graph for gs1encoders.hpp:

Data Structures

class  gs1encoders::GS1EncoderException
 Common base class for all exceptions thrown by this wrapper. More...
 
class  gs1encoders::GS1EncoderGeneralException
 Thrown to indicate a general problem initialising the library, such as when the underlying AI table cannot be loaded. More...
 
class  gs1encoders::GS1EncoderParameterException
 Thrown to indicate a problem with the parameters or input data passed to a setter. When the failure is a linting failure on AI data, gs1encoders::GS1Encoder::err_markup() returns a marked-up rendering of the offending AI. More...
 
class  gs1encoders::GS1EncoderDigitalLinkException
 Thrown to indicate an error processing GS1 Digital Link data. More...
 
class  gs1encoders::GS1EncoderScanDataException
 Thrown to indicate an error processing barcode scan data. More...
 
struct  gs1encoders::InitOpts
 Initialisation options for the gs1encoders::GS1Encoder constructor. More...
 
class  gs1encoders::GS1Encoder
 Main class for processing GS1 barcode data, including validation, format conversion, and generation of outputs such as GS1 Digital Link URIs and Human-Readable Interpretation text. More...
 

Namespaces

namespace  gs1encoders
 Namespace containing the C++ wrapper for the GS1 Barcode Syntax Engine.
 

Enumerations

enum class  gs1encoders::Symbology : int {
  gs1encoders::Symbology::None = gs1_encoder_sNONE , gs1encoders::Symbology::DataBarOmni = gs1_encoder_sDataBarOmni , gs1encoders::Symbology::DataBarTruncated = gs1_encoder_sDataBarTruncated , gs1encoders::Symbology::DataBarStacked = gs1_encoder_sDataBarStacked ,
  gs1encoders::Symbology::DataBarStackedOmni = gs1_encoder_sDataBarStackedOmni , gs1encoders::Symbology::DataBarLimited = gs1_encoder_sDataBarLimited , gs1encoders::Symbology::DataBarExpanded = gs1_encoder_sDataBarExpanded , gs1encoders::Symbology::UPCA = gs1_encoder_sUPCA ,
  gs1encoders::Symbology::UPCE = gs1_encoder_sUPCE , gs1encoders::Symbology::EAN13 = gs1_encoder_sEAN13 , gs1encoders::Symbology::EAN8 = gs1_encoder_sEAN8 , gs1encoders::Symbology::GS1_128_CCA = gs1_encoder_sGS1_128_CCA ,
  gs1encoders::Symbology::GS1_128_CCC = gs1_encoder_sGS1_128_CCC , gs1encoders::Symbology::QR = gs1_encoder_sQR , gs1encoders::Symbology::DM = gs1_encoder_sDM , gs1encoders::Symbology::DotCode = gs1_encoder_sDotCode ,
  gs1encoders::Symbology::NumSyms = gs1_encoder_sNUMSYMS
}
 Recognised GS1 barcode formats ("symbologies") for processing scan data. More...
 
enum class  gs1encoders::Validation : int {
  gs1encoders::Validation::MutexAIs = gs1_encoder_vMUTEX_AIS , gs1encoders::Validation::RequisiteAIs = gs1_encoder_vREQUISITE_AIS , gs1encoders::Validation::RepeatedAIs = gs1_encoder_vREPEATED_AIS , gs1encoders::Validation::DigSigSerialKey = gs1_encoder_vDIGSIG_SERIAL_KEY ,
  gs1encoders::Validation::UnknownAInotDLattr = gs1_encoder_vUNKNOWN_AI_NOT_DL_ATTR , gs1encoders::Validation::NumValidations = gs1_encoder_vNUMVALIDATIONS
}
 Optional AI validation procedures that may be applied to detect invalid inputs. More...