Leosac  0.8.0
Open Source Access Control
FakeWiegandReader.cpp
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 #include "FakeWiegandReader.hpp"
21 
22 using namespace Leosac::Test::Helper;
23 
24 FakeWiegandReader::FakeWiegandReader(zmqpp::context &ctx, const std::string &name)
25  : rep_(ctx, zmqpp::socket_type::rep)
26 {
27  rep_.bind("inproc://" + name);
28 }
29 
30 bool FakeWiegandReader::run(zmqpp::socket *pipe)
31 {
32  zmqpp::poller poller;
33 
34  poller.add(*pipe);
35  poller.add(rep_);
36 
37  pipe->send(zmqpp::signal::ok);
38 
39  while (true)
40  {
41  poller.poll(-1);
42 
43  if (poller.has_input(*pipe))
44  break;
45 
46  if (poller.has_input(rep_))
47  {
48  zmqpp::message msg;
49  rep_.receive(msg);
50  rep_.send("OK");
51  }
52  }
53  return true;
54 }
zmqpp
Definition: CoreUtils.hpp:27
Leosac::Test::Helper::FakeWiegandReader::FakeWiegandReader
FakeWiegandReader(zmqpp::context &ctx, const std::string &name)
Definition: FakeWiegandReader.cpp:24
Leosac::Test::Helper::FakeWiegandReader::run
bool run(zmqpp::socket *pipe)
Runs the dummy ready in a thread.
Definition: FakeWiegandReader.cpp:30
Leosac::Test::Helper
Unit testing utility class that helps writing test.
Definition: FakeGPIO.hpp:28
FakeWiegandReader.hpp
Leosac::Test::Helper::FakeWiegandReader::rep_
zmqpp::socket rep_
Receive command here.
Definition: FakeWiegandReader.hpp:49