Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __BARRY_CONTROLLERPRIVATE_H__
00023 #define __BARRY_CONTROLLERPRIVATE_H__
00024
00025 #include "probe.h"
00026 #include "pin.h"
00027 #include "socket.h"
00028 #include "router.h"
00029 #include "m_ipmodem.h"
00030
00031 namespace Barry {
00032
00033 class Controller;
00034
00035 class PrivateControllerData
00036 {
00037 friend class Controller;
00038
00039
00040
00041
00042 friend class Barry::Mode::IpModem;
00043
00044
00045 private:
00046 ProbeResult m_result;
00047 Usb::Device m_dev;
00048 Usb::Interface *m_iface;
00049 Pin m_pin;
00050 SocketZero m_zero;
00051 SocketRoutingQueue *m_queue;
00052
00053 private:
00054 PrivateControllerData(const ProbeResult &device, int default_timeout)
00055 : m_result(device)
00056 , m_dev(device.m_dev, default_timeout)
00057 , m_iface(0)
00058 , m_pin(device.m_pin)
00059 , m_zero(m_dev, device.m_ep.write, device.m_ep.read, device.m_zeroSocketSequence)
00060 , m_queue(0)
00061 {
00062 }
00063
00064 PrivateControllerData(const ProbeResult &device,
00065 SocketRoutingQueue &queue, int default_timeout)
00066 : m_result(device)
00067 , m_dev(device.m_dev, default_timeout)
00068 , m_iface(0)
00069 , m_pin(device.m_pin)
00070 , m_zero(queue, device.m_ep.write, device.m_zeroSocketSequence)
00071 , m_queue(&queue)
00072 {
00073 }
00074
00075 public:
00076 ~PrivateControllerData()
00077 {
00078
00079 if( m_queue ) {
00080 m_queue->ClearUsbDevice();
00081 m_queue = 0;
00082 }
00083
00084
00085 delete m_iface;
00086 }
00087 };
00088
00089 }
00090
00091 #endif