Subversion Repository Public Repository

Divide-Framework

This repository has no backups
This repository's network speed is throttled to 100KB/sec

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "Server.h"

using namespace boost::asio;

namespace Divide {

Server::Server()
{
}

Server::~Server()
{
    acceptor_->close();
    delete acceptor_;
}

void Server::init(U16 port,const std::string& broadcast_endpoint_address, bool debugOutput){
    _debugOutput = debugOutput;
    try{
        tcp::endpoint listen_endpoint(tcp::v4(), port);
        udp::endpoint broadcast_endpoint(boost::asio::ip::address::from_string(broadcast_endpoint_address), port);
        acceptor_ = new tcp::acceptor(io_service_, listen_endpoint);
        subscriber_ptr bc(new udp_broadcaster(io_service_, broadcast_endpoint));
        channel_.join(bc);
        tcp_session_ptr new_session(new tcp_session_impl(io_service_, channel_));

        acceptor_->async_accept(new_session->getSocket(),
                        boost::bind(&Server::handle_accept, this, new_session, _1));
        std::auto_ptr<boost::asio::io_service::work> work(new boost::asio::io_service::work(io_service_));
        io_service_.run();
    }catch (std::exception& e){
        std::cout << "SERVER: " << e.what() << std::endl;
    }
}

void Server::handle_accept(tcp_session_ptr session, const boost::system::error_code& ec){
    if (!ec){
      if(_debugOutput)
        std::cout << "New TCP session accepted" << std::endl;
      session->start();

      tcp_session_ptr new_session(new tcp_session_impl(io_service_, channel_));

      acceptor_->async_accept(new_session->getSocket(),
          boost::bind(&Server::handle_accept, this, new_session, _1));
    }else{
        std::cout << "ERROR: " << ec << std::endl;
    }
}

}; //namespace Divide

Commits for Divide-Framework/trunk/Source Code/DivideSever/Server.cpp

Diff revisions: vs.
Revision Author Commited Message
318 Diff Diff IonutCava picture IonutCava Sat 30 Aug, 2014 17:35:53 +0000

[Ionut]
- Wrapped the entire code in a “Divide” namespace
- VertexBuffers now call “shrink_to_fit” on all internal data storage
- Improved some vector performance by preferring “emplace_back” instead of “push_back” + proepr usage of reserve / resize
- Wrapped OIS specific types and classes in Divide::Input namespace
- Added the messageBox.layout file (forgot it in the previous few commits)

171 Diff Diff k1ngp1n picture k1ngp1n Sun 03 Nov, 2013 18:15:06 +0000

-Replaced all tabs with spaces [[BR]]

152 k1ngp1n picture k1ngp1n Thu 20 Jun, 2013 14:23:31 +0000

[Ionut] [[BR]]
- New rendering pipeline (experimental and unstable): [[BR]]
— OpenGL 3.x clean context (glLight commands are still used for now, but UBO support is there, but not used yet) [[BR]]
— Custom matrix stacks and UBO based shader data (UBOs cause some link errors on some nVidia cards)[[BR]]
— Multi-threaded texture loading and shader compilation (mt shader compilation disabled for now. needs more tests) [[BR]]
— VAO rendering is self contained (no more enable/disable calls before a draw request) [[BR]]
— Render instance class used for rendering information [[BR]]
[[BR]]
- New unique ID generation base class: GUIDWrapper. Each class that derives from this, gets an application wide unique id on construction [[BR]]
- Added base code for an in-game editor using CEGUI [[BR]]
- Replaced some mutex locks with lockless data structures or atomic data [[BR]]
- CEGUI 0.8.2, FTGL-GL3 and GLIM 0.4 modified to support GLEW_MX if defined [[BR]]
- Dropped VS2008 support [[BR]]
- Networking library, server framework and ReCast files are now projects inside the Divide Framework solution [[BR]]
- New console command “setFov” that modifies the horizontal FoV value in realtime [[BR]]
- New console command “recompileShader” that reparses shader files, recompiles shaders and relinks shader programs who’s names match or contain the argument string [[BR]]
- New debug utility: axis angle drawn in corner of the screen if needed [[BR]]
- More ‘const’-s pasted around the code, more loop performance tweaks (allocations before a loop, tighter loops, etc), more utility member functions added to various classes [[BR]]