-
Notifications
You must be signed in to change notification settings - Fork 0
/
example.cpp
108 lines (72 loc) · 2.42 KB
/
example.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
/*
SkypeLowIo usage example.
Copyright (C) 2014 Sergey Kolevatov
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
// $Revision: 1802 $ $Date:: 2015-06-01 #$ $Author: serge $
#include <thread> // std::thread
#include <functional> // std::bind
#include <iostream> // cout
#include "../utils/dummy_logger.h" // dummy_log_set_log_level
#include "skype_low_io.h" // SkypeLowIo
class Callback: virtual public skype_io::ICallback
{
public:
Callback( skype_io::SkypeLowIo * sio ):
sio_( sio )
{
}
// callback interface
virtual void handle( const std::string & s )
{
std::cout << "got " << s << std::endl;
}
void control_thread()
{
std::cout << "type exit or quit to quit: " << std::endl;
std::string input;
while( true )
{
std::cout << "your command: ";
std::getline( std::cin, input );
std::cout << "command: " << input << std::endl;
if( input == "exit" || input == "quit" )
break;
bool b = sio_->send( input );
if( b == false )
{
std::cout << "ERROR: cannot process command '" << input << "'" << std::endl;
}
};
std::cout << "exiting ..." << std::endl;
sio_->shutdown();
}
private:
skype_io::SkypeLowIo * sio_;
};
int main( int argc, char **argv )
{
dummy_logger::set_log_level( log_levels_log4j::TRACE );
skype_io::SkypeLowIo sio;
bool b = sio.init();
if( b == false )
{
std::cout << "cannot initialize SkypeLowIo - " << sio.get_error_msg() << std::endl;
return 0;
}
Callback test( & sio );
sio.register_callback( &test );
std::thread t( std::bind( &Callback::control_thread, &test ) );
t.join();
std::cout << "Done! =)" << std::endl;
return 0;
}