1 #ifndef CARMA_UTIL_WORKREQUEST_H
2 #define CARMA_UTIL_WORKREQUEST_H
12 #include "carma/util/PthreadMutex.h"
48 ::std::string getId( )
const;
57 class WorkRequest::Impl {
64 Impl( const ::std::string &
id,
67 ::std::string getId( )
const;
70 static Impl * addRef( Impl * impl );
72 static void removeRef(
const Impl * impl );
76 virtual void serviceImpl( ) = 0;
78 void postNormalResult( );
80 void postAbnormalResult( const ::std::string & errorText );
82 const ::std::string id_;
85 mutable ::size_t refCount_;
97 carma::util::WorkRequest::Impl::getId( )
const
107 carma::util::WorkRequest::WorkRequest(
const WorkRequest & rhs ) :
108 impl_( Impl::addRef( rhs.impl_ ) )
116 ::std::swap( impl_, rhs.impl_ );
134 return (impl_ < rhs.impl_);
139 carma::util::WorkRequest::getId( )
const
141 return impl_->getId();
void swap(WorkRequest &rhs)
Swap two instances.
Abstract result of servicing a work request.
virtual ~WorkRequest()
Destruct an instance.
WorkRequest & operator=(const WorkRequest &rhs)
Assign an instance the value of another.
Interface file for the carma::util::WorkResultSet and carma::util::WorkResult classes.
A simple wrapper class that makes use of ::pthread_mutex_t easier in a C++ world. ...
An abstract work request.
bool operator<(const WorkRequest &rhs) const
Arbitrary total ordering of WorkRequest instances.