DCCL Refactored API
Simpler API to DCCL in support of a Standalone Refactored DCCL
Blueprint information
- Status:
- Complete
- Approver:
- toby schneider
- Priority:
- Medium
- Drafter:
- Chris Murphy
- Direction:
- Approved
- Assignee:
- Chris Murphy
- Definition:
- Superseded
- Series goal:
- Accepted for 2.1
- Implementation:
- Not started
- Milestone target:
- None
- Started by
- Completed by
- toby schneider
Related branches
Related bugs
Sprints
Whiteboard
Ugly Draft 0
namespace dccl {
// Interface TBD - derived from FlexOstream
class Logger : public std::ostream {
public:
Logger();
~Logger();
};
// TypeRegistry wraps/replaces the functionality of DynamicProtobuf
// FieldCodecManager and the like. Perhaps they still exist, but this is the
// public API.
class TypeRegistry {
public:
TypeRegist
~TypeRegis
// Pass dccl_load() a pointer to this type registry, not a codec.
void load_shared_
template<
void register_
template<
void register_
template<
void info(const google:
void info_all(
};
class MessageCodec {
public:
MessageCod
~MessageCo
// ID Codec is any field codec in the type registry with type uint32.
configure(
// If crypto string is empty, don't use encryption.
// There are some limitations to DCCL Crypto and support may change
// in the future? This is a reasonable place to start.
void set_crypto_
// Return the message size in bytes
unsigned size(const google:
void encode(std::string* bytes, const google:
void decode(const std::string& bytes, google:
template <typename ProtobufMessage> unsigned id() const;
unsigned id(const google:
unsigned id(const std::string& encoded_bytes);
};
}
Work Items
Work items:
Agree on API : TODO
Prepare 3.0 codeline : TODO
Refactor 3.0 codeline : TODO
Ship It : TODO