|
Last change
on this file since 5284 was 5284, checked in by mies, 16 years ago |
|
+ added new transport modules and adapted ariba to them
+ exchange endpoint descriptors an link establishment
+ clean up of base communication
+ link establishment with in the presence of multiple endpoints
+ local discovery for ipv6, ipv4 and bluetooth mac addresses
|
|
File size:
1000 bytes
|
| Line | |
|---|
| 1 | // Internal version: Please do not publish!
|
|---|
| 2 | // (... until released under FreeBSD-like license *g*)
|
|---|
| 3 | // Code: Sebastian Mies <mies@tm.uka.de>
|
|---|
| 4 |
|
|---|
| 5 | #ifndef ASIO_IO_SERVICE_H_
|
|---|
| 6 | #define ASIO_IO_SERVICE_H_
|
|---|
| 7 |
|
|---|
| 8 | #include<boost/thread.hpp>
|
|---|
| 9 | #include<boost/asio.hpp>
|
|---|
| 10 |
|
|---|
| 11 | namespace ariba {
|
|---|
| 12 | namespace transport {
|
|---|
| 13 | namespace detail {
|
|---|
| 14 |
|
|---|
| 15 | /**
|
|---|
| 16 | * TODO: Doc
|
|---|
| 17 | *
|
|---|
| 18 | * @author Sebastian Mies <mies@tm.uka.de>
|
|---|
| 19 | */
|
|---|
| 20 | class asio_io_service {
|
|---|
| 21 | private:
|
|---|
| 22 | int references;
|
|---|
| 23 | volatile bool running;
|
|---|
| 24 | volatile bool destroy;
|
|---|
| 25 | boost::thread* thread;
|
|---|
| 26 | boost::asio::io_service* service;
|
|---|
| 27 |
|
|---|
| 28 | static asio_io_service* singleton;
|
|---|
| 29 |
|
|---|
| 30 | friend class boost::thread;
|
|---|
| 31 | friend class boost::detail::thread_data<boost::reference_wrapper<asio_io_service> >;
|
|---|
| 32 |
|
|---|
| 33 | protected:
|
|---|
| 34 | void operator ()();
|
|---|
| 35 | asio_io_service();
|
|---|
| 36 | ~asio_io_service();
|
|---|
| 37 | void internal_start();
|
|---|
| 38 | void internal_stop();
|
|---|
| 39 | public:
|
|---|
| 40 | static boost::asio::io_service& alloc();
|
|---|
| 41 | static void free();
|
|---|
| 42 | static void start();
|
|---|
| 43 | static void stop();
|
|---|
| 44 | };
|
|---|
| 45 |
|
|---|
| 46 | }}} // namespace ariba::transport::detail
|
|---|
| 47 |
|
|---|
| 48 | #endif /* ASIO_IO_SERVICE_H_ */
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.