Subversion Repositories HomeAutomation

Rev

Rev 1959 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1. /*
  2.  *
  3.  *  Copyright (C) 2010  Mattias Runge
  4.  *
  5.  *  This program is free software; you can redistribute it and/or modify
  6.  *  it under the terms of the GNU General Public License as published by
  7.  *  the Free Software Foundation; either version 2 of the License, or
  8.  *  (at your option) any later version.
  9.  *
  10.  *  This program is distributed in the hope that it will be useful,
  11.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  *  GNU General Public License for more details.
  14.  *
  15.  *  You should have received a copy of the GNU General Public License along
  16.  *  with this program; if not, write to the Free Software Foundation, Inc.,
  17.  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  18.  *
  19.  */
  20.  
  21. #include "Subscriber.h"
  22.  
  23. #include <boost/bind.hpp>
  24.  
  25. #include "Manager.h"
  26. #include "common/log.h"
  27.  
  28. namespace atom {
  29. namespace net {
  30.  
  31. static const std::string log_module_ = "net::subscriber";
  32.  
  33. Subscriber::Subscriber()
  34. {
  35.   LOG_DEBUG_ENTER;
  36.  
  37.   Manager::Instance()->ConnectSlots(Manager::SignalOnNewState::slot_type(&Subscriber::SlotOnNewState, this, _1, _2, _3).track(this->tracker_),
  38.                                     Manager::SignalOnNewData::slot_type(&Subscriber::SlotOnNewData, this, _1, _2, _3).track(this->tracker_));
  39.  
  40.   LOG_DEBUG_EXIT;
  41. }
  42.  
  43. Subscriber::~Subscriber()
  44. {
  45.   LOG_DEBUG_ENTER;
  46.   LOG_DEBUG_EXIT;
  47. }
  48.  
  49. void Subscriber::SlotOnNewData(SocketId client_id, SocketId server_id, common::Byteset data)
  50. {
  51.   LOG_DEBUG_ENTER;
  52.  
  53.   this->io_service_.post(boost::bind(&Subscriber::SlotOnNewDataHandler, this, client_id, server_id, data));
  54.  
  55.   LOG_DEBUG_EXIT;
  56. }
  57.  
  58. void Subscriber::SlotOnNewState(SocketId client_id, SocketId server_id, ClientState client_state)
  59. {
  60.   LOG_DEBUG_ENTER;
  61.  
  62.   this->io_service_.post(boost::bind(&Subscriber::SlotOnNewStateHandler, this, client_id, server_id, client_state));
  63.  
  64.   LOG_DEBUG_EXIT;
  65. }
  66.  
  67.  
  68. }; // namespace net
  69. }; // namespace atom
  70.