00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __cooperative_h
00010 #define __cooperative_h
00011
00012 #include "communicable.h"
00013 #include "runner.h"
00014
00015 typedef unsigned COOP_ID;
00016
00017 class Cooperative : public Communicable {
00018
00019 public :
00020
00021 Runner * getOwner ();
00022
00023 void setOwner (Runner & __runner);
00024
00025 virtual void pack () = 0;
00026
00027 virtual void unpack () = 0;
00028
00029 void send (Cooperative * __coop);
00030
00031 virtual void notifySending ();
00032
00033 private :
00034
00035 Runner * owner;
00036
00037 };
00038
00039 extern Cooperative * getCooperative (COOP_ID __key);
00040
00041 #endif