Skip to content

Commit 2599ca7

Browse files
committed
Rename RepliconClient into ClientMessages
Because it holds only messages now.
1 parent 10af8fc commit 2599ca7

File tree

11 files changed

+54
-55
lines changed

11 files changed

+54
-55
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3333
- Rename `replication_registry` module into `registry`.
3434
- Rename `IntoComponentRule::register_component` to `IntoComponentRule::into_rule` and move it to the `shared::replication::rules::component` module.
3535
- Rename `NetworkStats` to `ClientStats` and move it from `shared::backend::connected_client` to `shared::backend`. It's also now a separate resource from `RepliconClient`.
36+
- Rename `RepliconClient` into `ClientMessages`. It holds only messages now.
3637
- Replace `IntoReplicationRule` with `IntoComponentRules`, which returns only `Vec<ComponentRule>`.
3738
- Replace `ReplicationBundle` with `BundleRules`, which returns only `Vec<ComponentRule>` and uses an associated constant to customize the priority.
3839
- Hide `ServerEntityMap` mutation methods from public API.

bevy_replicon_example_backend/src/client.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ fn set_disconnected(mut state: ResMut<NextState<ClientState>>) {
4949
fn receive_packets(
5050
mut commands: Commands,
5151
mut client: ResMut<ExampleClient>,
52-
mut replicon_client: ResMut<RepliconClient>,
52+
mut messages: ResMut<ClientMessages>,
5353
config: Option<Res<ConditionerConfig>>,
5454
) {
5555
let now = Instant::now();
@@ -76,16 +76,16 @@ fn receive_packets(
7676
}
7777

7878
while let Some((channel_id, message)) = client.conditioner.pop(now) {
79-
replicon_client.insert_received(channel_id, message);
79+
messages.insert_received(channel_id, message);
8080
}
8181
}
8282

8383
fn send_packets(
8484
mut commands: Commands,
8585
mut client: ResMut<ExampleClient>,
86-
mut replicon_client: ResMut<RepliconClient>,
86+
mut messages: ResMut<ClientMessages>,
8787
) {
88-
for (channel_id, message) in replicon_client.drain_sent() {
88+
for (channel_id, message) in messages.drain_sent() {
8989
if let Err(e) = tcp::send_message(&mut client.stream, channel_id, &message) {
9090
error!("disconnecting due message write error: {e}");
9191
commands.remove_resource::<ExampleClient>();

src/client.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ pub struct ClientPlugin;
3838

3939
impl Plugin for ClientPlugin {
4040
fn build(&self, app: &mut App) {
41-
app.init_resource::<RepliconClient>()
41+
app.init_resource::<ClientMessages>()
4242
.init_resource::<ClientStats>()
4343
.init_resource::<ServerEntityMap>()
4444
.init_resource::<ServerUpdateTick>()
@@ -98,9 +98,9 @@ impl Plugin for ClientPlugin {
9898
}
9999

100100
app.world_mut()
101-
.resource_scope(|world, mut client: Mut<RepliconClient>| {
101+
.resource_scope(|world, mut messages: Mut<ClientMessages>| {
102102
let channels = world.resource::<RepliconChannels>();
103-
client.setup_server_channels(channels.server_channels().len());
103+
messages.setup_server_channels(channels.server_channels().len());
104104
});
105105
}
106106
}
@@ -126,7 +126,7 @@ pub(super) fn receive_replication(
126126
mut changes: Local<DeferredChanges>,
127127
mut entity_markers: Local<EntityMarkers>,
128128
) {
129-
world.resource_scope(|world, mut client: Mut<RepliconClient>| {
129+
world.resource_scope(|world, mut messages: Mut<ClientMessages>| {
130130
world.resource_scope(|world, mut entity_map: Mut<ServerEntityMap>| {
131131
world.resource_scope(|world, mut buffered_mutations: Mut<BufferedMutations>| {
132132
world.resource_scope(|world, command_markers: Mut<CommandMarkers>| {
@@ -151,7 +151,7 @@ pub(super) fn receive_replication(
151151
apply_replication(
152152
world,
153153
&mut params,
154-
&mut client,
154+
&mut messages,
155155
&mut buffered_mutations,
156156
);
157157

@@ -171,15 +171,15 @@ pub(super) fn receive_replication(
171171
}
172172

173173
fn reset(
174-
mut client: ResMut<RepliconClient>,
174+
mut messages: ResMut<ClientMessages>,
175175
mut stats: ResMut<ClientStats>,
176176
mut update_tick: ResMut<ServerUpdateTick>,
177177
mut entity_map: ResMut<ServerEntityMap>,
178178
mut buffered_mutations: ResMut<BufferedMutations>,
179179
mutate_ticks: Option<ResMut<ServerMutateTicks>>,
180180
replication_stats: Option<ResMut<ClientReplicationStats>>,
181181
) {
182-
client.clear();
182+
messages.clear();
183183
*stats = Default::default();
184184
*update_tick = Default::default();
185185
entity_map.clear();
@@ -209,10 +209,10 @@ fn log_protocol_error(_trigger: Trigger<ProtocolMismatch>) {
209209
fn apply_replication(
210210
world: &mut World,
211211
params: &mut ReceiveParams,
212-
client: &mut RepliconClient,
212+
messages: &mut ClientMessages,
213213
buffered_mutations: &mut BufferedMutations,
214214
) {
215-
for mut message in client.receive(ServerChannel::Updates) {
215+
for mut message in messages.receive(ServerChannel::Updates) {
216216
if let Err(e) = apply_update_message(world, params, &mut message) {
217217
error!("unable to apply update message: {e}");
218218
}
@@ -225,15 +225,15 @@ fn apply_replication(
225225
// (unless user requested history via marker).
226226
let update_tick = *world.resource::<ServerUpdateTick>();
227227
let acks_size =
228-
MutateIndex::POSTCARD_MAX_SIZE * client.received_count(ServerChannel::Mutations);
228+
MutateIndex::POSTCARD_MAX_SIZE * messages.received_count(ServerChannel::Mutations);
229229
if acks_size != 0 {
230230
let mut acks = Vec::with_capacity(acks_size);
231-
for message in client.receive(ServerChannel::Mutations) {
231+
for message in messages.receive(ServerChannel::Mutations) {
232232
if let Err(e) = buffer_mutate_message(params, buffered_mutations, message, &mut acks) {
233233
error!("unable to buffer mutate message: {e}");
234234
}
235235
}
236-
client.send(ClientChannel::MutationAcks, acks);
236+
messages.send(ClientChannel::MutationAcks, acks);
237237
}
238238

239239
apply_mutate_messages(world, params, buffered_mutations, update_tick);
@@ -760,7 +760,7 @@ pub enum ClientSet {
760760
///
761761
/// Runs in [`PreUpdate`].
762762
ReceivePackets,
763-
/// Systems that receive data from [`RepliconClient`].
763+
/// Systems that read data from [`ClientMessages`].
764764
///
765765
/// Runs in [`PreUpdate`] and [`OnEnter`] for [`ClientState::Connected`] (to avoid 1 frame delay).
766766
Receive,
@@ -772,7 +772,7 @@ pub enum ClientSet {
772772
///
773773
/// Runs in [`OnEnter`] for [`ClientState::Connected`].
774774
SendHash,
775-
/// Systems that send data to [`RepliconClient`].
775+
/// Systems that write data to [`ClientMessages`].
776776
///
777777
/// Runs in [`PostUpdate`].
778778
Send,

src/client/event.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ impl Plugin for ClientEventPlugin {
165165
fn send(
166166
events: FilteredResources,
167167
mut readers: FilteredResourcesMut,
168-
mut client: ResMut<RepliconClient>,
168+
mut messages: ResMut<ClientMessages>,
169169
type_registry: Res<AppTypeRegistry>,
170170
entity_map: Res<ServerEntityMap>,
171171
event_registry: Res<RemoteEventRegistry>,
@@ -186,15 +186,15 @@ fn send(
186186

187187
// SAFETY: passed pointers were obtained using this event data.
188188
unsafe {
189-
event.send(&mut ctx, &events, reader.into_inner(), &mut client);
189+
event.send(&mut ctx, &events, reader.into_inner(), &mut messages);
190190
}
191191
}
192192
}
193193

194194
fn receive(
195195
mut events: FilteredResourcesMut,
196196
mut queues: FilteredResourcesMut,
197-
mut client: ResMut<RepliconClient>,
197+
mut messages: ResMut<ClientMessages>,
198198
type_registry: Res<AppTypeRegistry>,
199199
entity_map: Res<ServerEntityMap>,
200200
event_registry: Res<RemoteEventRegistry>,
@@ -220,7 +220,7 @@ fn receive(
220220
&mut ctx,
221221
events.into_inner(),
222222
queue.into_inner(),
223-
&mut client,
223+
&mut messages,
224224
**update_tick,
225225
)
226226
};

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -711,8 +711,8 @@ pub mod prelude {
711711
backend::{
712712
ClientState, ClientStats, DisconnectRequest, ServerState,
713713
channels::{Channel, RepliconChannels},
714+
client_messages::ClientMessages,
714715
connected_client::ConnectedClient,
715-
replicon_client::RepliconClient,
716716
replicon_server::RepliconServer,
717717
},
718718
client_id::ClientId,

src/shared/backend.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
//! - Create channels defined in the [`RepliconChannels`](channels::RepliconChannels) resource.
66
//! This can be done via an extension trait that provides a conversion which the user needs to call manually to get channels for the backend.
77
//! - Manage the [`ClientState`] and [`ServerState`] states.
8-
//! - Update the [`RepliconServer`](replicon_server::RepliconServer) and [`RepliconClient`](replicon_client::RepliconClient) resources.
8+
//! - Update the [`RepliconServer`](replicon_server::RepliconServer) and [`ClientMessages`](client_messages::ClientMessages) resources.
99
//! - Spawn and despawn entities with [`ConnectedClient`](connected_client::ConnectedClient) component.
1010
//! - React on [`DisconnectRequest`] event.
1111
//! - Optionally update statistic in [`ClientStats`] resource and components.
@@ -23,8 +23,8 @@
2323
//! which we maintain.
2424
2525
pub mod channels;
26+
pub mod client_messages;
2627
pub mod connected_client;
27-
pub mod replicon_client;
2828
pub mod replicon_server;
2929

3030
use bevy::prelude::*;
@@ -115,18 +115,18 @@ mod tests {
115115
#[test]
116116
fn client_to_server() {
117117
let channels = RepliconChannels::default();
118-
let mut client = RepliconClient::default();
119-
client.setup_server_channels(channels.server_channels().len());
118+
let mut client_messages = ClientMessages::default();
119+
client_messages.setup_server_channels(channels.server_channels().len());
120120

121121
const MESSAGES: &[&[u8]] = &[&[0], &[1]];
122122
for &message in MESSAGES {
123-
client.send(ClientChannel::MutationAcks, message);
123+
client_messages.send(ClientChannel::MutationAcks, message);
124124
}
125125

126126
let mut server = RepliconServer::default();
127127
server.setup_client_channels(channels.client_channels().len());
128128

129-
for (channel_id, message) in client.drain_sent() {
129+
for (channel_id, message) in client_messages.drain_sent() {
130130
server.insert_received(Entity::PLACEHOLDER, channel_id, message);
131131
}
132132

@@ -148,14 +148,14 @@ mod tests {
148148
server.send(Entity::PLACEHOLDER, ServerChannel::Mutations, message);
149149
}
150150

151-
let mut client = RepliconClient::default();
152-
client.setup_server_channels(channels.server_channels().len());
151+
let mut client_messages = ClientMessages::default();
152+
client_messages.setup_server_channels(channels.server_channels().len());
153153

154154
for (_, channel_id, message) in server.drain_sent() {
155-
client.insert_received(channel_id, message);
155+
client_messages.insert_received(channel_id, message);
156156
}
157157

158-
let messages: Vec<_> = client.receive(ServerChannel::Mutations).collect();
158+
let messages: Vec<_> = client_messages.receive(ServerChannel::Mutations).collect();
159159
assert_eq!(messages, MESSAGES);
160160
}
161161
}

src/shared/backend/replicon_client.rs renamed to src/shared/backend/client_messages.rs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,17 @@ use bevy::prelude::*;
22
use bytes::Bytes;
33
use log::trace;
44

5-
/// Stores information about a client independent from the messaging backend.
5+
/// Sent and received messages for exchange between Replicon and the messaging backend.
66
///
77
/// The messaging backend is responsible for updating this resource:
8-
/// - For receiving messages, [`Self::insert_received`] should be to used.
9-
/// A system to forward backend messages to Replicon should run in
8+
/// - Received messages should be forwarded to Replicon via [`Self::insert_received`] in
109
/// [`ClientSet::ReceivePackets`](crate::prelude::ClientSet::ReceivePackets).
11-
/// - For sending messages, [`Self::drain_sent`] should be used to drain all sent messages.
12-
/// A system to forward Replicon messages to the backend should run in
10+
/// - Replicon messages needs to be forwarded to the backend via [`Self::drain_sent`] in
1311
/// [`ClientSet::SendPackets`](crate::prelude::ClientSet::SendPackets).
1412
///
1513
/// Inserted as resource by [`ClientPlugin`](crate::prelude::ClientPlugin).
1614
#[derive(Resource, Default)]
17-
pub struct RepliconClient {
15+
pub struct ClientMessages {
1816
/// List of received messages for each channel.
1917
///
2018
/// Top index is channel ID.
@@ -25,7 +23,7 @@ pub struct RepliconClient {
2523
sent_messages: Vec<(usize, Bytes)>,
2624
}
2725

28-
impl RepliconClient {
26+
impl ClientMessages {
2927
/// Changes the size of the receive messages storage according to the number of server channels.
3028
pub(crate) fn setup_server_channels(&mut self, channels_count: usize) {
3129
self.received_messages.resize(channels_count, Vec::new());

src/shared/event/client_event.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -229,9 +229,9 @@ impl ClientEvent {
229229
ctx: &mut ClientSendCtx,
230230
events: &Ptr,
231231
reader: PtrMut,
232-
client: &mut RepliconClient,
232+
messages: &mut ClientMessages,
233233
) {
234-
unsafe { (self.send)(self, ctx, events, reader, client) };
234+
unsafe { (self.send)(self, ctx, events, reader, messages) };
235235
}
236236

237237
/// Typed version of [`Self::send`].
@@ -245,7 +245,7 @@ impl ClientEvent {
245245
ctx: &mut ClientSendCtx,
246246
events: &Ptr,
247247
reader: PtrMut,
248-
client: &mut RepliconClient,
248+
messages: &mut ClientMessages,
249249
) {
250250
let reader: &mut ClientEventReader<E> = unsafe { reader.deref_mut() };
251251
let events = unsafe { events.deref() };
@@ -260,7 +260,7 @@ impl ClientEvent {
260260
}
261261

262262
debug!("sending event `{}`", any::type_name::<E>());
263-
client.send(self.channel_id, message);
263+
messages.send(self.channel_id, message);
264264
}
265265
}
266266

@@ -418,7 +418,7 @@ impl ClientEvent {
418418
}
419419

420420
/// Signature of client event sending functions.
421-
type SendFn = unsafe fn(&ClientEvent, &mut ClientSendCtx, &Ptr, PtrMut, &mut RepliconClient);
421+
type SendFn = unsafe fn(&ClientEvent, &mut ClientSendCtx, &Ptr, PtrMut, &mut ClientMessages);
422422

423423
/// Signature of client event receiving functions.
424424
type ReceiveFn = unsafe fn(&ClientEvent, &mut ServerReceiveCtx, PtrMut, &mut RepliconServer);

src/shared/event/server_event.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -436,10 +436,10 @@ impl ServerEvent {
436436
ctx: &mut ClientReceiveCtx,
437437
events: PtrMut,
438438
queue: PtrMut,
439-
client: &mut RepliconClient,
439+
messages: &mut ClientMessages,
440440
update_tick: RepliconTick,
441441
) {
442-
unsafe { (self.receive)(self, ctx, events, queue, client, update_tick) }
442+
unsafe { (self.receive)(self, ctx, events, queue, messages, update_tick) }
443443
}
444444

445445
/// Typed version of [`ServerEvent::receive`].
@@ -453,7 +453,7 @@ impl ServerEvent {
453453
ctx: &mut ClientReceiveCtx,
454454
events: PtrMut,
455455
queue: PtrMut,
456-
client: &mut RepliconClient,
456+
messages: &mut ClientMessages,
457457
update_tick: RepliconTick,
458458
) {
459459
let events: &mut Events<E> = unsafe { events.deref_mut() };
@@ -477,7 +477,7 @@ impl ServerEvent {
477477
}
478478
}
479479

480-
for mut message in client.receive(self.channel_id) {
480+
for mut message in messages.receive(self.channel_id) {
481481
if !self.independent {
482482
let tick = match postcard_utils::from_buf(&mut message) {
483483
Ok(tick) => tick,
@@ -644,7 +644,7 @@ type ReceiveFn = unsafe fn(
644644
&mut ClientReceiveCtx,
645645
PtrMut,
646646
PtrMut,
647-
&mut RepliconClient,
647+
&mut ClientMessages,
648648
RepliconTick,
649649
);
650650

src/test_app.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,16 +135,16 @@ impl ServerTestAppExt for App {
135135

136136
fn exchange_with_client(&mut self, client_app: &mut App) {
137137
let client_entity = **client_app.world().resource::<TestClientEntity>();
138-
let mut client = client_app.world_mut().resource_mut::<RepliconClient>();
138+
let mut client_messages = client_app.world_mut().resource_mut::<ClientMessages>();
139139

140140
let mut server = self.world_mut().resource_mut::<RepliconServer>();
141-
for (channel_id, message) in client.drain_sent() {
141+
for (channel_id, message) in client_messages.drain_sent() {
142142
server.insert_received(client_entity, channel_id, message)
143143
}
144144

145145
server.retain_sent(|(entity, channel_id, message)| {
146146
if *entity == client_entity {
147-
client.insert_received(*channel_id, message.clone());
147+
client_messages.insert_received(*channel_id, message.clone());
148148
false
149149
} else {
150150
true

0 commit comments

Comments
 (0)