Changeset 47eacc32f1c58d8b7506672c4bf60f06a6b509bf

Show
Ignore:
Timestamp:
01/06/07 23:47:34 (6 years ago)
Author:
Philipp Kern <phil@…>
Parents:
ab042e610ec8465af4744f07b6ec79925be3bd2c
Children:
4a2cffcccc9521265333d37f29697b890e28dcb5
git-committer:
Philipp Kern <phil@0x539.de> / 2007-01-06T22:47:34Z+0000
Message:

[project @ Adjusted buffer wrapper because peer has been renamed to user in net6]

Original author: Armin Burgmeier <armin@…>
Date: 2005-09-06 12:31:28+00:00

Files:
3 modified

Legend:

Unmodified
Added
Removed
  • inc/io/buffer_wrapper.hpp

    r27bfdd1 r47eacc3  
    8484        }; 
    8585 
    86         typedef std::map<const net6::server::peer*, main_connection*> 
    87                 peer_map_type; 
     86        typedef std::map<const net6::user*, main_connection*> 
     87                user_map_type; 
    8888 
    8989        /** Constructs a new server object. Note that you have to perform a call 
     
    117117        virtual void reopen(unsigned int port); 
    118118 
    119         /** Sends a packet to the given peer. 
    120          */ 
    121         virtual void send(const net6::packet& pack, net6::host::peer& to); 
    122  
    123 protected: 
    124         /** Called when a new peer has connected to the server. This callback 
    125          * is used to create a new main_connection for this peer and storing it 
    126          * in the peer map. 
    127          */ 
    128         virtual void on_connect(net6::host::peer& new_peer); 
     119        /** Sends a packet to all currently connected users. 
     120         */ 
     121        virtual void send(const net6::packet& pack); 
     122 
     123        /** Sends a packet to the given user. 
     124         */ 
     125        virtual void send(const net6::packet& pack, const net6::user& to); 
     126 
     127protected: 
     128        /** Called when a new user has connected to the server. This callback 
     129         * is used to create a new main_connection for this user and storing it 
     130         * in the user map. 
     131         */ 
     132        virtual void on_connect(const net6::user& new_user); 
    129133 
    130134        /** Called when a all data in the send queue of a client connection has 
    131135         * been sent. This is used to remove the IO_OUT flag. 
    132136         */ 
    133         virtual void on_send_event(net6::host::peer& to); 
     137        virtual void on_send_event(net6::user& to); 
    134138 
    135139        /** Deletes the main_connection on connection loss. 
    136140         */ 
    137         virtual void remove_client(net6::host::peer* client); 
    138  
    139         /** Returns the iterator for the given peer. If this peer is not present 
    140          * in the map (which should never occur), host::Error is thrown. 
    141          */ 
    142         peer_map_type::iterator get_peer_iter(const net6::server::peer& peer); 
     141        virtual void remove_client(const net6::user* client); 
     142 
     143        /** Returns the iterator for the given user. If this user is not present 
     144         * in the map (which should never occur), server::Error is thrown. 
     145         */ 
     146        user_map_type::iterator get_user_iter(const net6::user& user); 
    143147 
    144148#ifdef WIN32 
     
    146150#endif 
    147151        std::auto_ptr<main_connection> m_serv_connection; 
    148         peer_map_type m_peer_map; 
     152        user_map_type m_user_map; 
    149153private: 
    150154        void shutdown_impl(); 
     
    154158/** The host is bit tricky: 
    155159 * We derive from io::server to get all the IO handling and from net6::host to 
    156  * get the underlaying host with its local peer. 
     160 * get the underlaying host with its local user. 
    157161 */ 
    158162 
     
    185189        virtual ~host(); 
    186190 
    187         /** Sends a packet to the given peer. No packet will be send if to 
     191        /** Sends a packet to all connected users. 
     192         */ 
     193        virtual void send(const net6::packet& pack); 
     194 
     195        /** Sends a packet to the given user. No packet will be sent if to 
    188196         * is the local user. 
    189197         */ 
    190         virtual void send(const net6::packet& pack, net6::host::peer& to); 
     198        virtual void send(const net6::packet& pack, const net6::user& to); 
    191199protected: 
    192200        /** Called when a all data in the send queue of a client connection has 
    193201         * been sent. This is used to remove the IO_OUT flag. 
    194202         */ 
    195         virtual void on_send_event(net6::host::peer& to); 
     203        virtual void on_send_event(net6::user& to); 
    196204}; 
    197205 
  • src/document.cpp

    r76caa79 r47eacc3  
    660660        // queue_draw() after the apply_tag call, but it did not help 
    661661        // - Armin 
    662         for(int i = 0; i < 2; ++ i) 
     662//      for(int i = 0; i < 2; ++ i) 
     663//      // Applying once seems to work now? 
     664//      // - Armin (29.07.2005) 
    663665                buffer->apply_tag(tag, begin, end); 
    664666} 
  • src/io/buffer_wrapper.cpp

    rf122ca6 r47eacc3  
    9696 
    9797        // Remove client main_connections 
    98         peer_map_type::iterator iter; 
    99         for(iter = m_peer_map.begin(); iter != m_peer_map.end(); ++ iter) 
     98        user_map_type::iterator iter; 
     99        for(iter = m_user_map.begin(); iter != m_user_map.end(); ++ iter) 
    100100                delete iter->second; 
    101101} 
     
    117117} 
    118118 
    119 void obby::io::server::send(const net6::packet& pack, net6::server::peer& to) 
     119void obby::io::server::send(const net6::packet& pack) 
     120{ 
     121        // Call base function 
     122        net6::server::send(pack); 
     123} 
     124 
     125void obby::io::server::send(const net6::packet& pack, const net6::user& to) 
    120126{ 
    121127        // Add Glib::IO_OUT event 
    122         peer_map_type::iterator iter = get_peer_iter(to); 
     128        user_map_type::iterator iter = get_user_iter(to); 
    123129        iter->second->add_events(main_connection::IO_OUT); 
    124130 
     
    127133} 
    128134 
    129 void obby::io::server::on_connect(net6::server::peer& new_peer) 
     135void obby::io::server::on_connect(const net6::user& new_user) 
    130136{ 
    131137        // Build main_connection 
     
    134140                m_window, 
    135141#endif 
    136                 new_peer.get_socket(), 
     142                new_user.get_connection().get_socket(), 
    137143                main_connection::IO_IN | main_connection::IO_ERROR 
    138144        ); 
    139145 
    140         // Insert into peer map 
    141         m_peer_map[&new_peer] = conn; 
    142  
    143         // Call base function 
    144         net6::server::on_connect(new_peer); 
    145 } 
    146  
    147 void obby::io::server::on_send_event(net6::server::peer& to) 
    148 { 
    149         // Find peer in peer map 
    150         peer_map_type::iterator iter = get_peer_iter(to); 
     146        // Insert into user map 
     147        m_user_map[&new_user] = conn; 
     148 
     149        // Call base function 
     150        net6::server::on_connect(new_user); 
     151} 
     152 
     153void obby::io::server::on_send_event(net6::user& to) 
     154{ 
     155        // Find user in user map 
     156        user_map_type::iterator iter = get_user_iter(to); 
    151157        main_connection* conn = iter->second; 
    152158 
     
    158164} 
    159165 
    160 void obby::io::server::remove_client(net6::server::peer* peer) 
    161 { 
    162         // Find peer in peer map 
    163         peer_map_type::iterator iter = get_peer_iter(*peer); 
     166void obby::io::server::remove_client(const net6::user* user) 
     167{ 
     168        // Find user in user map 
     169        user_map_type::iterator iter = get_user_iter(*user); 
    164170 
    165171        // Remove main_connection 
    166172        delete iter->second; 
    167         m_peer_map.erase(iter); 
    168  
    169         // Call base function 
    170         net6::server::remove_client(peer); 
    171 } 
    172  
    173 obby::io::server::peer_map_type::iterator 
    174 obby::io::server::get_peer_iter(const net6::server::peer& peer) 
    175 { 
    176         // Find peer 
    177         peer_map_type::iterator iter = m_peer_map.find(&peer); 
     173        m_user_map.erase(iter); 
     174 
     175        // Call base function 
     176        net6::server::remove_client(user); 
     177} 
     178 
     179obby::io::server::user_map_type::iterator 
     180obby::io::server::get_user_iter(const net6::user& user) 
     181{ 
     182        // Find user 
     183        user_map_type::iterator iter = m_user_map.find(&user); 
    178184 
    179185        // Not found? 
    180         if(iter == m_peer_map.end() ) 
     186        if(iter == m_user_map.end() ) 
    181187        { 
    182188                // Should not happen... 
    183                 obby::format_string str( 
    184                         _("Peer %0% (%1%) not found in peer list") ); 
    185                 str << peer.get_name() << peer.get_address().get_name(); 
    186                 throw Error(Error::PEER_NOT_FOUND, str.str() ); 
     189                throw Error( 
     190                        Error::PEER_NOT_FOUND, 
     191                        "obby::io::server::get_user_iter" 
     192                ); 
    187193        } 
    188194 
     
    238244} 
    239245 
    240 void obby::io::host::send(const net6::packet& pack, net6::host::peer& to) 
     246void obby::io::host::send(const net6::packet& pack) 
     247{ 
     248        // Call base function from server 
     249        server::send(pack); 
     250} 
     251 
     252void obby::io::host::send(const net6::packet& pack, const net6::user& to) 
    241253{ 
    242254        // Prevent from sendint packets to ourselves 
     
    246258} 
    247259 
    248 void obby::io::host::on_send_event(net6::host::peer& to) 
     260void obby::io::host::on_send_event(net6::user& to) 
    249261{ 
    250262        // Prevent from sending packets to ourselves 
     
    327339        m_server = host; 
    328340 
    329         assert(host->get_self() != NULL); 
    330         m_self = m_usertable.add_user(*host->get_self(), red, green, blue); 
     341        m_self = m_usertable.add_user(host->get_self(), red, green, blue); 
    331342        register_signal_handlers(); 
    332343}