Leosac  0.8.0
Open Source Access Control
ProtocolHandler.hpp
Go to the documentation of this file.
1 /*
2  Copyright (C) 2014-2016 Leosac
3 
4  This file is part of Leosac.
5 
6  Leosac is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Affero General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  Leosac is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Affero General Public License for more details.
15 
16  You should have received a copy of the GNU Affero General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #pragma once
21 
22 #include "LeosacFwd.hpp"
24 #include <stdexcept>
25 
26 namespace Leosac
27 {
28 namespace Module
29 {
30 namespace TCPNotifier
31 {
33 {
35 };
36 
37 class ProtocolHandler;
38 using ProtocolHandlerUPtr = std::unique_ptr<ProtocolHandler>;
39 
40 
46 class ProtocolException : public ::std::runtime_error
47 {
48  public:
49  ProtocolException(const std::string &msg)
50  : runtime_error(msg)
51  {
52  }
53 };
54 
66 {
67  protected:
73 
74  public:
80  virtual ByteVector build_cred_msg(const Cred::RFIDCard &card) = 0;
81 
86  static ProtocolHandlerUPtr create(int protocol_id);
87 };
88 }
89 }
90 }
Leosac::Module::TCPNotifier::ProtocolHandler::create
static ProtocolHandlerUPtr create(int protocol_id)
Create an instance of a protocol handler depending on the requested protocol id.
Definition: ProtocolHandler.cpp:27
Leosac::Module::TCPNotifier::ProtocolHandler::ProtocolHandler
ProtocolHandler()
ProtocolHandler shall not be created directly.
Definition: ProtocolHandler.hpp:72
Leosac::Module::TCPNotifier::SIMPLE_CARD_NUMBER
@ SIMPLE_CARD_NUMBER
Definition: ProtocolHandler.hpp:34
Leosac::Module::TCPNotifier::ProtocolException::ProtocolException
ProtocolException(const std::string &msg)
Definition: ProtocolHandler.hpp:49
LeosacFwd.hpp
Leosac::Cred::RFIDCard
An RFID card credential.
Definition: RFIDCard.hpp:33
Leosac::Module::TCPNotifier::ProtocolHandlerUPtr
std::unique_ptr< ProtocolHandler > ProtocolHandlerUPtr
Definition: ProtocolHandler.hpp:38
Leosac
This is the header file for a generated source file, GitSHA1.cpp.
Definition: APIStatusCode.hpp:22
Leosac::ByteVector
std::vector< uint8_t > ByteVector
Definition: LeosacFwd.hpp:37
Leosac::Module::TCPNotifier::ProtocolHandler::build_cred_msg
virtual ByteVector build_cred_msg(const Cred::RFIDCard &card)=0
Returns a binary buffer containing the data that shall be sent over the network to notify the client.
Leosac::Module::TCPNotifier::Protocol
Protocol
Definition: ProtocolHandler.hpp:32
CredentialFwd.hpp
Leosac::Module::TCPNotifier::ProtocolException
An specialized exception that ProtocolHandler can throw when converting the credential to a message f...
Definition: ProtocolHandler.hpp:46
Leosac::Module::TCPNotifier::ProtocolHandler
Implements a given (TCP) protocol for notifying clients.
Definition: ProtocolHandler.hpp:65