Poco

class RefCountedObject

File Information

Library: Foundation
Package: Core
Header: Poco/RefCountedObject.h

Description

A base class for objects that employ reference counting based garbage collection.

Reference-counted objects inhibit construction by copying and assignment.

Inheritance

Known Derived Classes: Poco::XSD::Types::AnnotatedObject, Poco::XSD::Types::ElementTypeRef, Poco::XSD::Types::ElementRef, Poco::XSD::Types::SimpleRestrictionInlineType, Poco::Zip::Replace, Poco::XSD::Types::AbstractAttributeGroup, Poco::XSD::Types::Choice, Poco::XSD::Types::Any, Poco::XSD::Types::AnyAttribute, Poco::XSD::Types::List, Poco::XSD::Types::Schema, Poco::Zip::Keep, Poco::Zip::ZipOperation, Poco::XSD::Types::ComplexType, Poco::XSD::Types::Message, Poco::Zip::Add, Poco::Net::Impl::IPAddressImpl, Poco::Net::Impl::IPv4AddressImpl, Poco::Net::Impl::IPv6AddressImpl, Poco::Net::TCPServerParams, Poco::Net::WebSocketImpl, Poco::OSP::Auth::PooledAuthAdminService, Poco::OSP::Mail::MailDeliveryHandle, Poco::OSP::Mail::MailDeliveryService, Poco::OSP::BundleFactory, Poco::OSP::BundleInstallerService, Poco::OSP::BundleFile, Poco::OSP::BundleManifest, Poco::OSP::BundleProperties, Poco::RemotingNG::HTTP::Transport, Poco::RemotingNG::TCP::ServerTransport, Poco::RemotingNG::Authorizer, Poco::Util::Application, Poco::RemotingNG::Listener, Poco::Util::IniFileConfiguration, Poco::Util::LocalConfigurationView, Poco::Util::JSONConfiguration, Poco::Util::Subsystem, Poco::Util::TimerTaskAdapter, Poco::Net::RemoteSyslogChannel, Poco::Net::ServerSocketImpl, Poco::Net::Impl::SocketAddressImpl, Poco::Net::Impl::IPv4SocketAddressImpl, Poco::Net::Impl::IPv6SocketAddressImpl, Poco::Net::Impl::LocalSocketAddressImpl, Poco::Net::SocketImpl, Poco::Net::SocketNotification, Poco::Net::ReadableNotification, Poco::Net::WritableNotification, Poco::Net::ErrorNotification, Poco::Net::TimeoutNotification, Poco::Net::IdleNotification, Poco::Net::ShutdownNotification, Poco::Net::SocketNotifier, Poco::Net::SocketProactor::IONotification, Poco::OSP::Web::MediaTypeMapper, Poco::OSP::Web::TokenValidator, Poco::OSP::Web::WebFilterExtensionPoint, Poco::OSP::Web::WebServerExtensionPoint, Poco::OSP::PreferencesService, Poco::RemotingNG::HTTP::TransportFactory, Poco::RemotingNG::JSONRPC::CookieStore, Poco::RemotingNG::REST::CookieStore, Poco::RemotingNG::TCP::Frame, Poco::RemotingNG::TCP::Listener, Poco::RemotingNG::TCP::Listener::EventSubscription, Poco::RemotingNG::TCP::TransportFactory, Poco::RemotingNG::EventDispatcher, Poco::RemotingNG::EventDispatcher::SubscriberInfo, Poco::RemotingNG::Proxy, Poco::Util::LoggingSubsystem, Poco::Util::Validator, Poco::XSD::Types::AnnotationContent, Poco::XSD::Types::AppInfo, Poco::XSD::Types::GroupRef, Poco::XSD::Types::Order, Poco::XSD::Types::OrderIteratorImpl, Poco::XSD::Types::PortType, Poco::XSD::Types::Type, Poco::Net::TCPServerConnectionFilter, Poco::Net::RawSocketImpl, Poco::OSP::Auth::AuthAdminService, Poco::OSP::Mail::MailDeliveryServiceImpl, Poco::OSP::WebEvent::WebEventService, Poco::OSP::Bundle, Poco::OSP::ExtensionPoint, Poco::OSP::Preferences, Poco::OSP::ServiceListener, Poco::RemotingNG::JSONRPC::JSValue, Poco::RemotingNG::REST::JSScalar, Poco::RemotingNG::REST::Listener, Poco::RemotingNG::REST::TransportFactory, Poco::RemotingNG::SOAP::TransportFactory, Poco::RemotingNG::TCP::FrameHandler, Poco::RemotingNG::TCP::TimerTask, Poco::RemotingNG::EventFilter, Poco::RemotingNG::ORB::RemoteObjectInfo, Poco::RemotingNG::Transport, Poco::Util::XMLConfiguration, Poco::RemotingNG::TransportFactory, Poco::OSP::Web::WebServerDispatcher, Poco::OSP::BundleContext, Poco::OSP::Configuration, Poco::OSP::QLExpr, Poco::OSP::QLAndExpr, Poco::OSP::QLOrExpr, Poco::OSP::QLNotExpr, Poco::OSP::QLExistsExpr, Poco::OSP::QLRelExpr, Poco::OSP::QLEqExpr, Poco::OSP::QLNeExpr, Poco::OSP::QLLtExpr, Poco::OSP::QLLeExpr, Poco::OSP::QLGtExpr, Poco::OSP::QLGeExpr, Poco::OSP::QLMatchExpr, Poco::OSP::QLMatchRegExpr, Poco::OSP::QLTrueExpr, Poco::OSP::ServiceRef, Poco::RemotingNG::HTTP::Listener, Poco::RemotingNG::JSONRPC::Transport, Poco::RemotingNG::REST::JSValue, Poco::RemotingNG::TCP::SCRAMAuthenticator, Poco::RemotingNG::EventSubscriber, Poco::RemotingNG::Identifiable, Poco::Util::AbstractConfiguration, Poco::Util::ServerApplication, Poco::Util::WinRegistryConfiguration, Poco::XSD::Types::AbstractGroup, Poco::XSD::Types::Binding, Poco::XSD::Types::Documentation, Poco::XSD::Types::Element, Poco::XSD::Types::InheritanceInfo, Poco::XSD::Types::Notation, Poco::XSD::Types::Operation, Poco::XSD::Types::Sequence, Poco::XSD::Types::Union, Poco::Net::StreamSocketImpl, Poco::OSP::Auth::AbstractLDAPAuthAdminService, Poco::OSP::WebEvent::WebEventServiceImpl, Poco::OSP::Web::WebSessionService, Poco::OSP::WebEvent::WebEventServiceImpl::Subscriber, Poco::OSP::BundleContextFactory, Poco::OSP::BundleFilter, Poco::OSP::BundleStorage, Poco::OSP::ExtensionPointService, Poco::OSP::OSPSubsystem, Poco::RemotingNG::JSONRPC::JSObject, Poco::RemotingNG::SOAP::Listener, Poco::RemotingNG::TCP::ClientAuthenticator, Poco::RemotingNG::TCP::CredentialsStore, Poco::RemotingNG::TCP::PlainClientAuthenticator, Poco::RemotingNG::TCP::SocketFactory, Poco::RemotingNG::TCP::Transport, Poco::RemotingNG::MethodHandler, Poco::Util::PropertyFileConfiguration, Poco::XSD::Types::AbstractAttribute, Poco::XSD::Types::ElementIterator, Poco::XSD::Types::ListTypeRef, Poco::Zip::Delete, Poco::RemotingNG::JSONRPC::JSArray, Poco::RemotingNG::JSONRPC::JSScalar, Poco::RemotingNG::REST::Transport, Poco::RemotingNG::TCP::SCRAMClientAuthenticator, Poco::RemotingNG::Authenticator, Poco::RemotingNG::EventListener, Poco::Util::ConfigurationMapper, Poco::Util::SystemConfiguration, Poco::Util::TimerTask, Poco::Util::TimerFunc, Poco::XSD::Types::Annotation, Poco::XSD::Types::AnyIterator, Poco::XSD::Types::AttributeTypeRef, Poco::XSD::Types::AttributeGroup, Poco::XSD::Types::CollectionContent, Poco::XSD::Types::Definitions, Poco::XSD::Types::ElementImpl, Poco::XSD::Types::Group, Poco::XSD::Types::SequenceIterator, Poco::XSD::Types::Visitable, Poco::Zip::Rename, Poco::Net::RemoteSyslogListener, Poco::Net::sizeof, Poco::OSP::BundleDirectory, Poco::RemotingNG::JSONRPC::Listener, Poco::RemotingNG::JSONRPC::TransportFactory, Poco::RemotingNG::REST::JSObject, Poco::RemotingNG::SOAP::Transport, Poco::RemotingNG::TCP::Connection, Poco::RemotingNG::TCP::FrameQueue, Poco::RemotingNG::Context, Poco::RemotingNG::ProxyFactory, Poco::RemotingNG::Skeleton, Poco::Util::ConfigurationView, Poco::Util::MapConfiguration, Poco::Util::RegExpValidator, Poco::XSD::Types::AbstractElementImpl, Poco::XSD::Types::AbstractList, Poco::XSD::Types::AllIterator, Poco::XSD::Types::Content, Poco::XSD::Types::AttributeRef, Poco::XSD::Types::OrderContent, Poco::XSD::Types::SimpleRestriction, Poco::XSD::Types::SimpleType, Poco::XSD::Types::SimpleTypeInheritance, Poco::Crypto::EVPCipherImpl, Poco::Data::AbstractSessionImpl, Poco::Data::PooledSessionImpl, ConsoleChannel, ColorConsoleChannel, EventChannel, EventLogChannel, Logger, Notification, PatternFormatter, TaskNotification, TaskStartedNotification, TaskCancelledNotification, TaskFinishedNotification, TaskFailedNotification, TaskProgressNotification, TaskCustomNotification, Poco::Net::DatagramSocketImpl, Poco::Data::SQLChannel, Poco::Data::SQLChannel::LogNotification, Poco::Data::SessionPool, NullChannel, SimpleFileChannel, Poco::Net::ICMPSocketImpl, Poco::OSP::Web::WebServerService, Poco::OSP::Auth::AuthService, Poco::OSP::ServiceFactory, Poco::RemotingNG::REST::JSArray, Poco::RemotingNG::SOAP::CookieStore, Poco::RemotingNG::RemoteObject, Poco::Util::FilesystemConfiguration, Poco::Util::IntValidator, Poco::Util::LayeredConfiguration, Poco::XSD::Types::All, Poco::XSD::Types::Attribute, Poco::XSD::Types::AttributeContent, Poco::XSD::Types::AttributeGroupRef, Poco::XSD::Types::ChoiceIterator, Poco::Data::RowFilter, Poco::XSD::Types::Service, Poco::OSP::Service, Formatter, SyslogChannel, Task, Poco::Data::SessionImpl, Channel, Poco::Net::HTTPServerParams, Poco::Net::SMTPChannel, Poco::OSP::Web::WebSessionStore, Poco::Crypto::Cipher, Poco::Crypto::RSACipherImpl, Poco::Crypto::KeyPairImpl, Poco::Data::PooledSessionHolder, FormattingChannel, StreamChannel, WindowsConsoleChannel, WindowsColorConsoleChannel, Poco::ActiveRecord::Context, Poco::Crypto::ECKeyImpl, FileChannel, Poco::ActiveRecord::ActiveRecordBase, Poco::ActiveRecord::ActiveRecord, Poco::ActiveRecord::KeylessActiveRecord, Poco::Crypto::CipherImpl, Poco::Crypto::CipherKeyImpl, Poco::Crypto::RSAKeyImpl, ActiveRunnableBase, ActiveResultHolder, ActiveRunnable, AsyncChannel, SplitterChannel

Member Summary

Member Functions: duplicate, referenceCount, release

Constructors

RefCountedObject

RefCountedObject();

Creates the RefCountedObject. The initial reference count is one.

Destructor

~RefCountedObject protected virtual

virtual ~RefCountedObject();

Destroys the RefCountedObject.

Member Functions

duplicate inline

void duplicate() const;

Increments the object's reference count.

referenceCount inline

int referenceCount() const;

Returns the reference count.

release inline

void release() const noexcept;

Decrements the object's reference count and deletes the object if the count reaches zero.