diff options
author | Michi Henning <michi@zeroc.com> | 2004-05-10 02:15:57 +0000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2004-05-10 02:15:57 +0000 |
commit | a6a7f49b10372b9e4adf2ac2431b361c5638d156 (patch) | |
tree | 1b4e44d9ba7a0209a9faa35b35ce29bb8d4d0e4e /cpp/include | |
parent | Fixed VC6 build (diff) | |
download | ice-a6a7f49b10372b9e4adf2ac2431b361c5638d156.tar.bz2 ice-a6a7f49b10372b9e4adf2ac2431b361c5638d156.tar.xz ice-a6a7f49b10372b9e4adf2ac2431b361c5638d156.zip |
Merged changes from michi_pre_e3 branch
Diffstat (limited to 'cpp/include')
-rw-r--r-- | cpp/include/Ice/BasicStream.h | 20 | ||||
-rw-r--r-- | cpp/include/Ice/Object.h | 4 | ||||
-rw-r--r-- | cpp/include/IceUtil/GCShared.h | 18 | ||||
-rw-r--r-- | cpp/include/Slice/Parser.h | 18 |
4 files changed, 48 insertions, 12 deletions
diff --git a/cpp/include/Ice/BasicStream.h b/cpp/include/Ice/BasicStream.h index 32ccf3f5537..bb9f66d8bcb 100644 --- a/cpp/include/Ice/BasicStream.h +++ b/cpp/include/Ice/BasicStream.h @@ -70,8 +70,19 @@ public: b.resize(sz); } + void reserve(Container::size_type); + void startSeq(int, int); + void checkSeq(); + void checkSeq(int); + void endElement() + { + assert(_seqDataStack); + --_seqDataStack->numElements; + } + void endSeq(int); + void startWriteEncaps(); void endWriteEncaps(); @@ -270,6 +281,15 @@ private: const Container::size_type _messageSizeMax; + struct SeqData + { + SeqData(int, int); + int numElements; + int minSize; + SeqData* previous; + }; + SeqData* _seqDataStack; + ObjectList* _objectList; }; diff --git a/cpp/include/Ice/Object.h b/cpp/include/Ice/Object.h index a1f53c85b95..a9ba7718540 100644 --- a/cpp/include/Ice/Object.h +++ b/cpp/include/Ice/Object.h @@ -85,8 +85,8 @@ public: virtual void __write(::IceInternal::BasicStream*) const; virtual void __read(::IceInternal::BasicStream*, bool); - virtual void __gcReachable(::IceUtil::GCObjectMultiSet&) const; - virtual void __gcClear(); + virtual void __gcReachable(::IceUtil::GCObjectMultiSet&) const {} + virtual void __gcClear() {} }; class ICE_API Blobject : virtual public Object diff --git a/cpp/include/IceUtil/GCShared.h b/cpp/include/IceUtil/GCShared.h index 54151640dd9..cfa9a1803e3 100644 --- a/cpp/include/IceUtil/GCShared.h +++ b/cpp/include/IceUtil/GCShared.h @@ -16,6 +16,7 @@ #define ICE_UTIL_GC_SHARED_H #include <IceUtil/Config.h> +#include <IceUtil/GCRecMutex.h> #include <set> namespace IceUtil @@ -25,7 +26,7 @@ class GC; class GCShared; typedef std::set<GCShared*> GCObjectSet; -extern ICE_UTIL_API GCObjectSet gcObjects; // Set of pointers to all existing classes. +extern ICE_UTIL_API GCObjectSet gcObjects; // Set of pointers to all existing classes with class data members. typedef std::multiset<GCShared*> GCObjectMultiSet; @@ -33,26 +34,23 @@ class ICE_UTIL_API GCShared : public noncopyable { public: - GCShared(); - virtual ~GCShared(); - void __incRef(); - void __decRef(); + GCShared() : _ref(0), _noDelete(false) {} + virtual ~GCShared() {} + virtual void __incRef(); // First derived class with class data members overrides this. + virtual void __decRef(); // Ditto. int __getRef() const; void __setNoDelete(bool); - void __decRefUnsafe(); + void __decRefUnsafe() { --_ref; } virtual void __gcReachable(GCObjectMultiSet&) const = 0; virtual void __gcClear() = 0; protected: static void __addObject(GCObjectMultiSet&, GCShared*); - -private: - int _ref; bool _noDelete; - friend class IceUtil::GC; + friend class IceUtil::GC; // Allows IceUtil::GC to read value of _ref. }; } diff --git a/cpp/include/Slice/Parser.h b/cpp/include/Slice/Parser.h index 8fba7f73350..16debcedcca 100644 --- a/cpp/include/Slice/Parser.h +++ b/cpp/include/Slice/Parser.h @@ -263,6 +263,8 @@ public: virtual bool isLocal() const = 0; virtual std::string typeId() const = 0; virtual bool usesClasses() const = 0; + virtual size_t minWireSize() const = 0; + virtual bool isVariableLength() const = 0; protected: @@ -295,6 +297,8 @@ public: virtual bool isLocal() const; virtual std::string typeId() const; virtual bool usesClasses() const; + virtual size_t minWireSize() const; + virtual bool isVariableLength() const; Kind kind() const; std::string kindAsString() const; @@ -455,6 +459,7 @@ public: virtual bool isLocal() const; virtual std::string typeId() const; + virtual bool isVariableLength() const = 0; ConstructedList dependencies(); virtual void recDependencies(std::set<ConstructedPtr>&) = 0; // Internal operation, don't use directly. @@ -479,6 +484,8 @@ public: virtual ContainedType containedType() const; virtual bool uses(const ContainedPtr&) const; virtual bool usesClasses() const; + virtual size_t minWireSize() const; + virtual bool isVariableLength() const; virtual void visit(ParserVisitor*); virtual std::string kindOf() const; virtual void recDependencies(std::set<ConstructedPtr>&); // Internal operation, don't use directly. @@ -575,6 +582,7 @@ public: DataMemberList allDataMembers() const; DataMemberList classDataMembers() const; DataMemberList allClassDataMembers() const; + bool canBeCyclic() const; bool isAbstract() const; bool isInterface() const; bool isA(const std::string&) const; @@ -610,6 +618,8 @@ public: virtual bool isLocal() const; virtual std::string typeId() const; virtual bool usesClasses() const; + virtual size_t minWireSize() const; + virtual bool isVariableLength() const; ClassDeclPtr _class() const; @@ -667,6 +677,8 @@ public: virtual ContainedType containedType() const; virtual bool uses(const ContainedPtr&) const; virtual bool usesClasses() const; + virtual size_t minWireSize() const; + virtual bool isVariableLength() const; virtual std::string kindOf() const; virtual void visit(ParserVisitor*); virtual void recDependencies(std::set<ConstructedPtr>&); // Internal operation, don't use directly. @@ -689,6 +701,8 @@ public: virtual ContainedType containedType() const; virtual bool uses(const ContainedPtr&) const; virtual bool usesClasses() const; + virtual size_t minWireSize() const; + virtual bool isVariableLength() const; virtual std::string kindOf() const; virtual void visit(ParserVisitor*); virtual void recDependencies(std::set<ConstructedPtr>&); // Internal operation, don't use directly. @@ -714,6 +728,8 @@ public: virtual ContainedType containedType() const; virtual bool uses(const ContainedPtr&) const; virtual bool usesClasses() const; + virtual size_t minWireSize() const; + virtual bool isVariableLength() const; virtual std::string kindOf() const; virtual void visit(ParserVisitor*); virtual void recDependencies(std::set<ConstructedPtr>&); // Internal operation, don't use directly. @@ -743,6 +759,8 @@ public: virtual ContainedType containedType() const; virtual bool uses(const ContainedPtr&) const; virtual bool usesClasses() const; + virtual size_t minWireSize() const; + virtual bool isVariableLength() const; virtual std::string kindOf() const; virtual void visit(ParserVisitor*); virtual void recDependencies(std::set<ConstructedPtr>&); // Internal operation, don't use directly. |