const ClientPtr ClientsRegister::look_up_with_id(ClientID id) const {
    boost::unique_lock< boost::shared_mutex > lock(access_);

    if (clients_.find(id) != clients_.end())
        return clients_.at(id);
    else
        return ClientPtr(nullptr);
}
ClientID ClientsRegister::register_client(const Address *address, TcpPointer pointer, std::string nickname) {
    boost::unique_lock< boost::shared_mutex > lock(access_);
    std::cout << "* Rejestracja klienta: " << nickname << " łączącego się z ip: "<< address->ip << " i portu: " << address->port  << ".\n";

    auto it = clients_.insert(std::pair<ClientID, ClientPtr>(address->owner, ClientPtr(new Client(address, pointer, nickname))));
    //zawiadomienie obserwatorów o nowym kliencie w rejestrze
    Packet p(Packet::UPDATED_RESOURCE, nullptr, new ClientDataRaw(*(it.first)->second));
    Subject::notify(p);
    return address->owner;
}
Exemplo n.º 3
0
	HttpInterfaceClient::HttpInterfaceClient(const std::string& ifacename, const TBS::Services::JsonClientParams & p) :
			interfaceName(ifacename), p(p) {

		LTRACE("Json") << "create json http conector " << p.hostName() << " port " << p.port() << LE;

		if (p.isHttps()){
			//std::cout << "no verify " << std::endl;
			Poco::Net::Context::Ptr context = new Poco::Net::Context(Poco::Net::Context::CLIENT_USE, "", "", "", Poco::Net::Context::VERIFY_NONE);

			//std::cout << "create https for "<< p.hostName() << " port " << p.port() << std::endl;
			client = ClientPtr(new Poco::Net::HTTPSClientSession(p.hostName(), p.port(), context));
			//std::cout << "create https done" << std::endl;
		} else {
			//std::cout << "create http" << std::endl;
			client = ClientPtr(new Poco::Net::HTTPClientSession(p.hostName(), p.port()));
			//std::cout << "create http done" << std::endl;
		}

		client->setTimeout(5l * 1000000l);
	}
Exemplo n.º 4
0
	DotNetClient::DotNetClient(const TBS::Services::DotNetClientParams & params) :
			params(params) {

		LTRACE("Camera") << "construct: "  << "create client " << params.host << ":" << params.port << LE;

		std::cout << "create client " << params.host << ":" << params.port << std::endl;
		client = ClientPtr(new Poco::Net::HTTPClientSession(params.host, params.port));
		std::cout << "create client " << params.host << ":" << params.port << " done" << std::endl;

		LTRACE("Camera") << "construct: "  << "create client " << params.host << ":" << params.port  << " done" << LE;


	}
Exemplo n.º 5
0
	DotNetClient::DotNetClient(const TBS::Services::DotNetClientParams & params) :
			params(params) {

		LTRACE("Camera") << "construct: "  << "create client " << params.host << ":" << params.port << LE;

		std::cout << "create client " << params.host << ":" << params.port << std::endl;
		client = ClientPtr(new Poco::Net::HTTPClientSession(params.host, params.port));
		if (params.timeout.totalMilliseconds() > 0) {
			client->setTimeout(params.timeout);
		}
		std::cout << "create client " << params.host << ":" << params.port << " done" << std::endl;

		LTRACE("Camera") << "construct: "  << "create client " << params.host << ":" << params.port  << " done" << LE;

		LTRACE("Camera") << "client timeout: " << client->getTimeout().totalSeconds() << LE;

	}
Exemplo n.º 6
0
PlayerFactory::PlayerFactory( const unsigned char player_id, CameraPtr camera ) {
	FrameworkPtr fw = Framework::getInstance ( );
	DevicePtr device = DevicePtr( new Device );
	KeyboardPtr keyboad = KeyboardPtr( new Keyboard );
	MousePtr mouse = MousePtr( new Mouse );
	ClientPtr client = ClientPtr( new Client );
	AppPtr app = AppPtr( new App( player_id )  );
	ViewerPtr viewer = ViewerPtr( new Viewer );
	DrawerPtr drawer = DrawerPtr( new Drawer( "../Resource" ) );
	SoundPtr sound = SoundPtr( new Sound( ) );
	if ( !camera ) {
		camera = PlayerCameraPtr( new PlayerCamera );
	}

	fw->addTask( Device::getTag( ), device );
	fw->addTask( Keyboard::getTag( ), keyboad );
	fw->addTask( Mouse::getTag( ), mouse );
	fw->addTask( Client::getTag( ), client );
	fw->addTask( Viewer::getTag( ), viewer );
	fw->addTask( Drawer::getTag( ), drawer );
	fw->addTask( App::getTag( ), app );
	fw->addTask( Camera::getTag( ), camera );
	fw->addTask( Sound::getTag( ), sound );
}