Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/netp2/src/network/FunctionCallManager.h @ 2988

Last change on this file since 2988 was 2949, checked in by scheusso, 16 years ago

Network Function calls possible now (already used in Pawn::fire/doFire)

include "network/NetworkFunction.h"
register network functions like this:

registerStaticNetworkFunction( functionPointer ); this is for static (member) functions
registerMemberNetworkFunction( class, function );
this is for non-static member functions

call network functions like this:

callStaticNetworkFunction( functionPointer, clientID, arg1, … ); clientID is 0 for server
callMemberNetworkFunction( class, function, objectID, clientID, arg1, … );
objectID can be obtained by this→getObjectID() for synchronisables

arguments must be supported by MultiType !!
object must inherit from Synchronisable !!

File size: 2.0 KB
RevLine 
[2937]1
2#ifndef NETWORKFUNCTIONCALLMANAGER_H
3#define NETWORKFUNCTIONCALLMANAGER_H
4
5#include "NetworkPrereqs.h"
6#include "packet/FunctionCalls.h"
7#include <map>
8
9
10namespace orxonox {
11/**
12        @author
13*/
14
15class MultiType;
16
17class _NetworkExport FunctionCallManager
18{
19public:
[2949]20  static void addCallStatic(uint32_t functionID, uint32_t clientID);
21  static void addCallStatic(uint32_t functionID, uint32_t clientID, const MultiType& mt1);
22  static void addCallStatic(uint32_t functionID, uint32_t clientID, const MultiType& mt1, const MultiType& mt2);
23  static void addCallStatic(uint32_t functionID, uint32_t clientID, const MultiType& mt1, const MultiType& mt2, const MultiType& mt3);
24  static void addCallStatic(uint32_t functionID, uint32_t clientID, const MultiType& mt1, const MultiType& mt2, const MultiType& mt3, const MultiType& mt4);
25  static void addCallStatic(uint32_t functionID, uint32_t clientID, const MultiType& mt1, const MultiType& mt2, const MultiType& mt3, const MultiType& mt4, const MultiType& mt5);
26 
27  static void addCallMember(uint32_t functionID, uint32_t objectID, uint32_t clientID);
28  static void addCallMember(uint32_t functionID, uint32_t objectID, uint32_t clientID, const MultiType& mt1);
29  static void addCallMember(uint32_t functionID, uint32_t objectID, uint32_t clientID, const MultiType& mt1, const MultiType& mt2);
30  static void addCallMember(uint32_t functionID, uint32_t objectID, uint32_t clientID, const MultiType& mt1, const MultiType& mt2, const MultiType& mt3);
31  static void addCallMember(uint32_t functionID, uint32_t objectID, uint32_t clientID, const MultiType& mt1, const MultiType& mt2, const MultiType& mt3, const MultiType& mt4);
32  static void addCallMember(uint32_t functionID, uint32_t objectID, uint32_t clientID, const MultiType& mt1, const MultiType& mt2, const MultiType& mt3, const MultiType& mt4, const MultiType& mt5);
33 
[2937]34  static void sendCalls();
35 
36  static std::map<uint32_t, packet::FunctionCalls*> clientMap_;
37protected:
38  FunctionCallManager();
39  ~FunctionCallManager();
40};
41
42} //namespace orxonox
43
44#endif
Note: See TracBrowser for help on using the repository browser.