From 621c0cdcb5efc4f7c2382031becded018ef0b62b Mon Sep 17 00:00:00 2001 From: Joshua Haberman Date: Sun, 4 Sep 2011 19:29:36 -0700 Subject: Const invasion: large parts of upb made const-correct. --- bindings/cpp/upb/def.hpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'bindings/cpp/upb/def.hpp') 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)); } -- cgit v1.2.3