Network Design: Difference between revisions

From PSwiki
Jump to navigation Jump to search
Magodra (talk | contribs)
No edit summary
Magodra (talk | contribs)
 
Line 3: Line 3:


===Classes===
===Classes===
<uml>
class psMessageCracker {
  +SendMessage()
  +FireEvent()
  +ToString()
}
psMessageCracker <|-- NPCAuthent
psMessageCracker <|-- MsgStrings
psMessageCracker *-- MsgEntry : msg
MsgEntry *-- psMessageBytes : bytes
</uml>
Each message from/to server/clients is based on the psMessageCracher that provide interfaces to pack/unpack and print the message.
<uml>
MsgHandler "1" *-- "0..N" Subscription : subscribers
MsgHandler "1" *-- "1" NetBase : netbase
MsgHandler "1" *-- "1" MsgQueue : queue
NetBase "1" *-- "0..N" psNetPacketEntry : packets
NetBase "1" *-- "1" NetPacketQueue : NetworkQueue
NetBase "1" *-- "0..N" NetPacketQueue : senders
NetBase "1" *-- "0..N" MsgQueue : inQueues
NetBase "1" *-- "0..N" psNetPacketEntry : awaitingack
psNetPacketEntry "1" *-- "1" psNetPacket : packet
class Connection {
  +uint32_t sequence
}
MsgQueue "1" *-- "0..N" MsgEntry
NetPacketQueue "1" *-- "0..N" psNetPacketEntry 
MsgHandler <|- ClientMsgHandler
ClientMsgHandler "1" *-- "1" OrderedMessageChannel : orderedMessages
OrderedMessageChannel "1" *-- "0..N" MsgEntry : pendingMessages
NetBase <|- psNetConnection
psNetConnection *-- MsgQueue : inQueue
psNetConnection *-- Connection : server
Subscription "1" *-- "1" iNetSubscriber : subscriber
</uml>
==== Server Classes ====
<uml>
class iNetSubscriber {
  +{abstract} bool Verify()
  +{abstract} void HandleMessage()
}
note right: Abstract base class for message recipients.
iNetSubscriber <|-- MessageManagerBase
MessageManagerBase <|-- MessageManager
MessageManager <|-- NPCManager
MessageManager <|-- ProgressionManager
note "Example classes from the server" as Note1
NPCManager .. Note1
ProgressionManager .. Note1
class MessageManagerBase {
  +bool Verify()
}
class MessageManager<SubClass> {
  +void Subscribe()
  +void Unsubscribe()
}
class NPCManager {
  +void HandleMessage()
}
class ProgressionManager {
  +void HandleMessage()
}
</uml>


===Sequences===
===Sequences===

Latest revision as of 18:52, 2 January 2013

Design

This page describe some of the sequences in the Network Design between components. For implementation details in the Server/Clients see the Detailed Network Design page.

Classes

Sequences

Start up NPCClient

Start up Client

Client Movement