1 /// \file
2 /// \brief Contains enumerations used by the ReplicaManager system.  This file is a lightweight header, so you can include it without worrying about linking in lots of other crap
3 ///
4 /// This file is part of RakNet Copyright 2003 Jenkins Software LLC
5 ///
6 /// Raknet is available under the terms of the GPLv3 license, see /usr/local/share/licenses/raknet-3.9.2_10,1/GPLv3.
7 
8 
9 #ifndef __REPLICA_ENUMS_H
10 #define __REPLICA_ENUMS_H
11 
12 /// Replica interface flags, used to enable and disable function calls on the Replica object
13 /// Passed to ReplicaManager::EnableReplicaInterfaces and ReplicaManager::DisableReplicaInterfaces
14 enum
15 {
16 	REPLICA_RECEIVE_DESTRUCTION=1<<0,
17 	REPLICA_RECEIVE_SERIALIZE=1<<1,
18 	REPLICA_RECEIVE_SCOPE_CHANGE=1<<2,
19 	REPLICA_SEND_CONSTRUCTION=1<<3,
20 	REPLICA_SEND_DESTRUCTION=1<<4,
21 	REPLICA_SEND_SCOPE_CHANGE=1<<5,
22 	REPLICA_SEND_SERIALIZE=1<<6,
23 	REPLICA_SET_ALL = 0xFF // Allow all of the above
24 };
25 
26 enum ReplicaReturnResult
27 {
28 	/// This means call the function again later, with the same parameters
29 	REPLICA_PROCESS_LATER,
30 	/// This means we are done processing (the normal result to return)
31 	REPLICA_PROCESSING_DONE,
32 	/// This means cancel the processing - don't send any network messages and don't change the current state.
33 	REPLICA_CANCEL_PROCESS,
34 	/// Same as REPLICA_PROCESSING_DONE, where a message is sent, but does not clear the send bit.
35 	/// Useful for multi-part sends with different reliability levels.
36 	/// Only currently used by Replica::Serialize
37 	REPLICA_PROCESS_AGAIN,
38 	/// Only returned from the Replica::SendConstruction interface, means act as if the other system had this object but don't actually
39 	/// Send a construction packet.  This way you will still send scope and serialize packets to that system
40 	REPLICA_PROCESS_IMPLICIT
41 };
42 
43 #endif
44