UIObservable.h 936 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #pragma once
  2. #include <Array.h>
  3. #include <Critical.h>
  4. #include <Text.h>
  5. struct UIObserver
  6. {
  7. int sourceEntiryId;
  8. Framework::Text uimlElementId;
  9. int networkApiProcessorId;
  10. };
  11. class Entity;
  12. class NetworkMessage;
  13. class UIObservable
  14. {
  15. private:
  16. Framework::Array<UIObserver> observers;
  17. Framework::Array<std::function<void(Entity* zSource,
  18. Framework::Text uimlElementId,
  19. int networkApiProcessorId)>>
  20. onObserverAdded;
  21. Framework::Critical cs;
  22. public:
  23. void notifyObservers(NetworkMessage* msg);
  24. void removeObserver(Entity* zSource,
  25. Framework::Text uimlElementId,
  26. int networkApiProcessorId);
  27. void addObserver(Entity* zSource,
  28. Framework::Text uimlElementId,
  29. int networkApiProcessorId);
  30. void registerOnObserverAddedCall(std::function<void(Entity* zSource,
  31. Framework::Text uimlElementId,
  32. int networkApiProcessorId)> call);
  33. };