19 #if !defined (__ACE_INLINE__) 36 disposed_generation_count_(0),
37 no_writers_generation_count_(0),
39 release_pending_(false),
40 release_timer_id_(-1),
44 #ifndef OPENDDS_NO_OWNERSHIP_KIND_EXCLUSIVE
52 #ifndef OPENDDS_NO_OWNERSHIP_KIND_EXCLUSIVE 110 ACE_TEXT(
" InstanceState::handle_timeout:")
111 ACE_TEXT(
" autopurging samples with instance handle 0x%x!\n"),
130 #ifndef OPENDDS_NO_OWNERSHIP_KIND_EXCLUSIVE 141 #ifndef OPENDDS_NO_OWNERSHIP_KIND_EXCLUSIVE 160 #ifndef OPENDDS_NO_OWNERSHIP_KIND_EXCLUSIVE 192 reader->state_updated(
handle_);
220 ACE_TEXT(
"(%P|%t) ERROR: InstanceState::schedule_release:")
221 ACE_TEXT(
" Unsupported instance state: %d!\n"),
248 bool released =
false;
262 reader->release_instance(
handle_);
305 reader->reset_ownership(instance);
339 ACE_TEXT(
"(%P|%t) ERROR: InstanceState::ScheduleCommand::execute:")
340 ACE_TEXT(
" Unable to schedule timer!\n")));
348 return "ALIVE_INSTANCE_STATE";
350 return "NOT_ALIVE_INSTANCE_STATE";
352 return "NOT_ALIVE_DISPOSED_INSTANCE_STATE";
354 return "NOT_ALIVE_NO_WRITERS_INSTANCE_STATE";
356 return "ANY_INSTANCE_STATE";
359 ACE_TEXT(
"%d is either invalid or not recognized.\n"),
362 return "Invalid instance state";
379 if (!str.empty()) str +=
" | ";
383 if (!str.empty()) str +=
" | ";
bool reactor_is_shut_down() const
const LogLevel::Value value
InstanceStateKind instance_state
const InstanceHandle_t HANDLE_NIL
DDS::Time_t source_timestamp_
Source time stamp for this data sample.
const long DURATION_INFINITE_SEC
const GUID_t GUID_UNKNOWN
Nil value for GUID.
bool is_owner(const DDS::InstanceHandle_t &instance_handle, const GUID_t &pub_id)
bool dispose_was_received(const GUID_t &writer_id)
virtual int handle_timeout(const ACE_Time_Value ¤t_time, const void *arg)
void release()
Remove the instance immediately.
DDS::ViewStateKind view_state_
CommandPtr execute_or_enqueue(CommandPtr command)
long absolute_generation_rank
void remove_instance(InstanceState *instance_state)
void set_owner(const GUID_t &owner)
unsigned long InstanceStateMask
bool unregister_was_received(const GUID_t &writer_id)
ACE_Guard< ACE_Thread_Mutex > lock_
void state_updated() const
static OPENDDS_STRING instance_state_mask_string(DDS::InstanceStateMask mask)
Return string representation of the instance state mask passed.
Duration_t autopurge_disposed_samples_delay
void sample_info(DDS::SampleInfo &si, const ReceivedDataElement *de)
Populate the SampleInfo structure.
bool valid_data_
Do we contain valid data.
size_t disposed_generation_count_
long long opendds_reserved_publication_seq
SequenceNumber sequence_
The data sample's sequence number.
ACE_Thread_Mutex owner_lock_
DDS::SampleStateKind sample_state_
const char * instance_state_string() const
Return string of the name of the current instance state.
InstanceHandle_t publication_handle
InstanceHandle_t instance_handle
#define ACE_GUARD_RETURN(MUTEX, OBJ, LOCK, RETURN)
unsigned long InstanceStateKind
long no_writers_generation_count
const InstanceStateMask ANY_INSTANCE_STATE
DDS::InstanceStateKind instance_state_
bool is_exclusive() const
SampleStateKind sample_state
bool most_recent_generation(ReceivedDataElement *item) const
void reset_ownership(DDS::InstanceHandle_t instance)
ReaderDataLifecycleQosPolicy reader_data_lifecycle
HANDLE_TYPE_NATIVE InstanceHandle_t
ACE_Recursive_Thread_Mutex & lock_
DDS::InstanceHandle_t handle_
long disposed_generation_count
const unsigned long DURATION_INFINITE_NSEC
void remove_writer(const GUID_t &pub_id)
void schedule_release()
Schedule an immediate release of resources.
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
void schedule_pending()
Schedule a pending release of resources.
size_t disposed_generation_count_
const InstanceStateKind NOT_ALIVE_DISPOSED_INSTANCE_STATE
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
size_t no_writers_generation_count_
const InstanceStateMask NOT_ALIVE_INSTANCE_STATE
RcHandle< T > lock() const
void cancel_release()
Cancel a scheduled or pending release of resources.
#define TheServiceParticipant
The Internal API and Implementation of OpenDDS.
const InstanceStateKind NOT_ALIVE_NO_WRITERS_INSTANCE_STATE
Duration_t autopurge_nowriter_samples_delay
size_t no_writers_generation_count_
const InstanceStateKind ALIVE_INSTANCE_STATE
InstanceState(const DataReaderImpl_rch &reader, ACE_Recursive_Thread_Mutex &lock, DDS::InstanceHandle_t handle)
WeakRcHandle< DataReaderImpl > reader_