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, 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: