diff options
author | Joshua Haberman <jhaberman@gmail.com> | 2011-09-04 19:29:36 -0700 |
---|---|---|
committer | Joshua Haberman <jhaberman@gmail.com> | 2011-09-04 19:29:36 -0700 |
commit | 621c0cdcb5efc4f7c2382031becded018ef0b62b (patch) | |
tree | d6af78ef0872c9db0f48c99e6c93b8d4c43fa689 /bindings/cpp/upb/def.hpp | |
parent | 8f2758dda2ba12b78ae8f8c7170decc5e88dd28c (diff) |
Const invasion: large parts of upb made const-correct.
Diffstat (limited to 'bindings/cpp/upb/def.hpp')
-rw-r--r-- | bindings/cpp/upb/def.hpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/bindings/cpp/upb/def.hpp b/bindings/cpp/upb/def.hpp index 6500243..d64625c 100644 --- a/bindings/cpp/upb/def.hpp +++ b/bindings/cpp/upb/def.hpp @@ -17,9 +17,14 @@ namespace upb { class MessageDef : public upb_msgdef { public: + // Converting from C types to C++ wrapper types. static MessageDef* Cast(upb_msgdef *md) { return (MessageDef*)md; } + static const MessageDef* Cast(const upb_msgdef *md) { + return (const MessageDef*)md; + } - void Unref() { return upb_msgdef_unref(this); } + void Ref() const { upb_msgdef_ref(this); } + void Unref() const { upb_msgdef_unref(this); } private: MessageDef(); @@ -28,14 +33,20 @@ class MessageDef : public upb_msgdef { class SymbolTable : public upb_symtab { public: + // Converting from C types to C++ wrapper types. static SymbolTable* Cast(upb_symtab *s) { return (SymbolTable*)s; } + static const SymbolTable* Cast(const upb_symtab *s) { + return (SymbolTable*)s; + } + static SymbolTable* New() { return Cast(upb_symtab_new()); } - void Unref() { return upb_symtab_unref(this); } + void Ref() const { upb_symtab_unref(this); } + void Unref() const { upb_symtab_unref(this); } // If the given name refers to a message in this symbol table, returns a new // ref to that MessageDef object, otherwise returns NULL. - MessageDef* LookupMessage(const char *name) { + const MessageDef* LookupMessage(const char *name) const { return MessageDef::Cast(upb_symtab_lookupmsg(this, name)); } |