MCPcopy Create free account
hub / github.com/ErrorAtLine0/infinipaint / init_client

Method init_client

src/World.cpp:146–186  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

144}
145
146void World::init_client(const std::string& serverFullID) {
147 main.init_net_library();
148 clientStillConnecting = true;
149 netClient = std::make_shared<NetClient>(serverFullID);
150 lastKeepAliveSent = std::chrono::steady_clock::now();
151 NetLibrary::register_client(netClient);
152 netObjMan.set_client(netClient, SERVER_UPDATE_NETWORK_OBJECT);
153 set_name("");
154
155 rMan.init_client_callbacks();
156 drawProg.init_client_callbacks();
157 netClient->add_recv_callback(CLIENT_INITIAL_DATA, [&](cereal::PortableBinaryInputArchive& message) {
158 std::string fileDisplayName;
159 NetworkingObjects::NetObjID clientDataObjID, serverDataObjID;
160 message(fileDisplayName, clientDataObjID, serverDataObjID);
161 set_name(fileDisplayName);
162 clients = netObjMan.read_create_message<NetworkingObjects::NetObjUnorderedSet<ClientData>>(message, nullptr);
163 ownClientData = netObjMan.get_obj_temporary_ref_from_id<ClientData>(clientDataObjID);
164 serverClientData = netObjMan.get_obj_temporary_ref_from_id<ClientData>(serverDataObjID);
165 bMan.read_create_message(message);
166 gridMan.read_create_message(message);
167 drawProg.read_components_client(message);
168 canvasTheme.read_create_message(message);
169 init_client_data_list_callbacks();
170 drawData.cam.smooth_move_to(*main.world, ownClientData->get_cam_coords(), ownClientData->get_window_size(), true);
171
172 #ifdef ENABLE_ORDERED_LIST_TEST
173 listDebugTest = netObjMan.read_create_message<NetworkingObjects::NetObjOrderedList<uint16_t>>(message, nullptr);
174 #endif
175
176 clientStillConnecting = false;
177 set_to_layout_gui_if_focus();
178 });
179 netClient->add_recv_callback(CLIENT_UPDATE_NETWORK_OBJECT, [&](cereal::PortableBinaryInputArchive& message) {
180 netObjMan.read_update_message(message, nullptr);
181 });
182 netClient->add_recv_callback(CLIENT_KEEP_ALIVE, [&](cereal::PortableBinaryInputArchive& message) {
183 });
184
185 netClient->send_items_to_server(RELIABLE_COMMAND_CHANNEL, SERVER_INITIAL_DATA, main.conf.displayName);
186}
187
188void World::send_reliable_multi_command_to_all(const std::function<void()>& captureSendBlock) {
189 if(netServer)

Callers

nothing calls this directly

Calls 9

init_net_libraryMethod · 0.80
set_clientMethod · 0.80
smooth_move_toMethod · 0.80
read_update_messageMethod · 0.80
send_items_to_serverMethod · 0.80
init_client_callbacksMethod · 0.45
add_recv_callbackMethod · 0.45
read_create_messageMethod · 0.45

Tested by

no test coverage detected