24 #include <co/object.h> 29 namespace detail {
class Barrier; }
66 const uint32_t height = 0 );
79 CO_API
virtual ~Barrier();
89 bool isGood()
const {
return isAttached(); }
92 CO_API
void setHeight(
const uint32_t height );
95 CO_API
void increase();
98 CO_API uint32_t getHeight()
const;
112 CO_API
bool enter(
const uint32_t timeout = LB_TIMEOUT_INDEFINITE );
118 void attach(
const uint128_t&
id,
const uint32_t instanceID )
override;
122 void applyInstanceData(
DataIStream& is )
override;
128 detail::Barrier*
const _impl;
130 void _cleanup(
const uint64_t time );
131 void _sendNotify(
const uint128_t& version,
NodePtr node );
134 bool _cmdEnter(
ICommand& command );
135 bool _cmdEnterReply(
ICommand& command );
137 LB_TS_VAR( _thread );
141 #endif // CO_BARRIER_H
lunchbox::RefPtr< LocalNode > LocalNodePtr
A reference pointer for LocalNode pointers.
A helper struct bundling an object identifier and version.
ChangeType
Object change handling characteristics, see Programming Guide.
lunchbox::RefPtr< Node > NodePtr
A reference pointer for Node pointers.
A std::ostream-like interface for object serialization.
Object-oriented network library.
A class managing received commands.
A std::istream-like input data stream for binary data.
ChangeType getChangeType() const override
A networked, versioned barrier.