Skip to content

Questions for Reviewers

joreg edited this page Mar 22, 2018 · 6 revisions

API

  • ID: byte[] vs. string
  • missing datatypes?
  • missing options in datatypes?
  • public API of server/client - what's missing?
  • how do you want error handling:
    • when to return bools
    • or throw exceptions
    • or have one global OnError event?
    • eg whats happening when calling RCPClient.Initialize() but the client is not yet connected?
      • return false? or even the StatusEnum, throw exception or trigger the global OnError callback
  • inserting groups in groups or adding one parameter to different groups is not allowed: who throws the error?
  • where to use interfaces, where not?
  • does it feel right, to modify the model and then call RCPServer.Update()?
  • are ParameterUpdated and ParameterValueUpdated enough?
  • how to connect user-app parameters with rabbit parameters? dictionary<id, userparam>?
  • extra static ParameterFactory vs. RCPServer.CreateParam<>
  • when calling RCPClient.Connect() should it try to reconnect until successful?
  • how about the claim: "RabbitControl - a distributed parameter model for remote controlling applications"

Protocol

  • chaining parameter would allow a synchronized update of parameters (which the optimized updateValue does not allow right now), something like a flush. -> what would be the usecase?
  • does the packet need a timestamp / id? -> what would be the usecase?
  • size-prefixed strings vs. zero-terminated strings: pro, con?
  • zero-terminators vs option-stop-bit (MSB)
  • why send the datatype with every message?
Clone this wiki locally