SNode.C
Loading...
Searching...
No Matches
apps::towercalculator::KeyboardReader Class Reference

#include <KeyboardReader.h>

Inheritance diagram for apps::towercalculator::KeyboardReader:
Collaboration diagram for apps::towercalculator::KeyboardReader:

Public Member Functions

 KeyboardReader (const std::function< void(long)> &cb)

Protected Member Functions

void readEvent () override
void unobservedEvent () override

Protected Attributes

std::function< void(long)> callBack

Additional Inherited Members

Private Member Functions inherited from core::eventreceiver::ReadEventReceiver
 ReadEventReceiver (const std::string &name, const utils::Timeval &timeout)
virtual void readTimeout ()
Private Member Functions inherited from core::DescriptorEventReceiver
 DescriptorEventReceiver (const std::string &name, DescriptorEventPublisher &descriptorEventPublisher, const utils::Timeval &timeout=TIMEOUT::DISABLE)
int getRegisteredFd () const
bool isEnabled () const
bool isSuspended () const
void setTimeout (const utils::Timeval &timeout)
utils::Timeval getTimeout (const utils::Timeval &currentTime) const
void checkTimeout (const utils::Timeval &currentTime)
bool enable (int fd)
void disable ()
void suspend ()
void resume ()
Private Member Functions inherited from core::EventReceiver
 EventReceiver (const std::string &name)
 EventReceiver (EventReceiver &)=delete
 EventReceiver (EventReceiver &&)=delete
EventReceiveroperator= (EventReceiver &)=delete
EventReceiveroperator= (EventReceiver &&)=delete
virtual void destruct ()
void span ()
void relax ()
const std::string & getName () const
virtual ~EventReceiver ()=default
Static Private Member Functions inherited from core::EventReceiver
static void atNextTick (const std::function< void(void)> &callBack)

Detailed Description

Definition at line 55 of file KeyboardReader.h.

Constructor & Destructor Documentation

◆ KeyboardReader()

apps::towercalculator::KeyboardReader::KeyboardReader ( const std::function< void(long)> & cb)
explicit

Definition at line 58 of file KeyboardReader.cpp.

59 : core::eventreceiver::ReadEventReceiver("KeyboardReader", 0)
60 , callBack(cb) {
61 if (!enable(STDIN_FILENO)) {
62 std::cout << "KeyboardReader not activated";
63 }
64 }
std::function< void(long)> callBack

References callBack, core::DescriptorEventReceiver::enable(), and core::eventreceiver::ReadEventReceiver::ReadEventReceiver().

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ readEvent()

void apps::towercalculator::KeyboardReader::readEvent ( )
overrideprotectedvirtual

Implements core::eventreceiver::ReadEventReceiver.

Definition at line 66 of file KeyboardReader.cpp.

66 {
67 std::cout << "ReadEvent" << std::endl;
68 /*
69 long value;
70
71 std::cin >> long;
72 */
73
74 char buffer[256];
75 const ssize_t ret = read(STDIN_FILENO, buffer, 256);
76
77 if (ret > 0) {
78 buffer[ret] = 0;
79 try {
80 long value = 0;
81 value = std::stol(buffer);
82
83 std::cout << "Value = " << value << std::endl;
84
85 callBack(value);
86 } catch (std::invalid_argument& e) {
87 std::cout << e.what() << ": "
88 << "no conversion possible: input = " << buffer << std::endl;
89 }
90 }
91 }
ssize_t read(int fd, void *buf, std::size_t count)
Definition unistd.cpp:57

References callBack.

◆ unobservedEvent()

void apps::towercalculator::KeyboardReader::unobservedEvent ( )
overrideprotectedvirtual

Implements core::Observer.

Definition at line 93 of file KeyboardReader.cpp.

93 {
94 // delete this; // do not delete
95 }

Member Data Documentation

◆ callBack

std::function<void(long)> apps::towercalculator::KeyboardReader::callBack
protected

Definition at line 63 of file KeyboardReader.h.

Referenced by KeyboardReader(), and readEvent().


The documentation for this class was generated from the following files: