crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Ругается на privat член noncopyable
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
ViGOur Дата 10.12.2009, 18:01
  :)
MInner Дата 10.12.2009, 17:55
  за моральную поддержку)

soket и io_servise храню в указателях. И run() io_servise'y в конце программы дописал...
ViGOur Дата 7.12.2009, 23:00
  Ты хоть скажи в чм они были, я пытался понять, но так и не понял! :)
Litkevich Yuriy Дата 7.12.2009, 17:45
 
Цитата(MInner @ 7.12.2009, 20:43) *
спасибо
за что спасибо-то :)
MInner Дата 7.12.2009, 17:43
  нашел ошибки... спасибо, можно тему закрыть вообщем-то)...
MInner Дата 6.12.2009, 16:41
  ругался на попытки в конструкторе копировать io_servise и сокета и правильно делал....

Еще прару блох нашел, компилируется, но теперь вылетает с исключением "Нарушение прав доступа при чтении" в создании критических секций в win_mutex.hpp ....
MInner Дата 6.12.2009, 3:34
 
CODE

#include <iostream>

#include <boost/thread/thread.hpp>
#include <boost/threadpool.hpp>
#include <boost/asio.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>


class Connecter {
public:
typedef boost::shared_ptr<Connecter> ConPtr;
private:
boost::asio::io_service t_io;
boost::asio::ip::tcp::socket _sock;
Connecter(boost::asio::io_service& ios) : t_io(ios), _sock(ios) {}
boost::asio::streambuf _inbuffer;
public:
static ConPtr givePtr(boost::asio::io_service& io){ return ConPtr(new Connecter(io)); }
boost::asio::ip::tcp::socket Socket(){return _sock;}
void Read(){ // we do, what we want...
boost::asio::read_until(_sock, _inbuffer, "\r\n\r\n" );
}
void Analys(){};
};

class PortListner {
boost::asio::ip::tcp::acceptor p_acc;
boost::asio::io_service p_io;
boost::threadpool::pool _pool;
Connecter::ConPtr _cur_con;

void WaitForPromt(){ //waits till something happens
p_acc.async_accept(_cur_con->Socket(), boost::bind(&PortListner::ThreadOut, this, boost::asio::placeholders::error));
}

void ThreadOut(boost::system::error_code& e){ //hey! there's something there!
if (!e){
_pool.schedule(boost::bind(&Connecter::Read , _cur_con)); //put it into it's own way...
_cur_con = Connecter::givePtr(p_io);
WaitForPromt();
}
}
public:
PortListner(int port, int thnum):_pool(thnum), p_acc(p_io) {}
};

int pulnum = 5;
int portnum = 80;

int main(){
PortListner(portnum, pulnum);
return 0;
}


ргается мол:

error C2248: boost::noncopyable_::noncopyable::noncopyable: невозможно обратиться к private член, объявленному в классе "boost::noncopyable_::noncopyable" d:\dv\boost\include\boost\boost\asio\io_service.hpp 519


вроде не копирую его же ж...
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 18:31