namespace console added for console tools, password entry and other stuff
authorMarkus Bröker <mbroeker@largo.dyndns.tv>
Sat, 13 Dec 2008 17:58:11 +0100
changeset 19 933d86c1ff71
parent 18 f3657061ec00
child 20 5fec678f931b
namespace console added for console tools, password entry and other stuff committer: Markus Bröker <mbroeker@largo.homelinux.org>
db_bridge/console.cpp
db_bridge/include/console.h
new file mode 100644
--- /dev/null
+++ b/db_bridge/console.cpp
@@ -0,0 +1,32 @@
+#include <console.h>
+
+int Console::getch ()
+{
+    static int ch = -1, fd = 0;
+    struct termios neu, alt;
+
+    fd = fileno (stdin);
+    tcgetattr (fd, &alt);
+    neu = alt;
+    neu.c_lflag &= ~(ICANON | ECHO);
+    tcsetattr (fd, TCSANOW, &neu);
+    ch = getchar ();
+    tcsetattr (fd, TCSANOW, &alt);
+    return ch;
+}
+
+void Console::getpass (std::string & password)
+{
+    int i = 0;
+    int c;
+    char buffer[17];
+
+    while ((c = getch ()) != '\n' && i < 17) {
+        buffer[i++] = c;
+        std::cout << "*";
+    }
+    buffer[i] = 0;
+
+    password = std::string (buffer);
+    std::cout << std::endl;
+}
new file mode 100644
--- /dev/null
+++ b/db_bridge/include/console.h
@@ -0,0 +1,11 @@
+#ifndef CONSOLE_H
+#define CONSOLE_H
+
+#include <iostream>
+#include <termios.h>
+
+namespace Console {
+    int getch ();
+    void getpass (std::string &);
+};
+#endif