33 #ifndef MARSHALLERTHREAD_H_ 34 #define MARSHALLERTHREAD_H_ 54 Locker(pthread_mutex_t &lock, pthread_cond_t &cond,
int &count);
58 pthread_mutex_t& m_mutex;
76 ChildLocker(pthread_mutex_t &lock, pthread_cond_t &cond,
int &count);
80 pthread_mutex_t& m_mutex;
81 pthread_cond_t& m_cond;
99 pthread_attr_t d_thread_attr;
101 pthread_mutex_t d_out_mutex;
102 pthread_cond_t d_out_cond;
104 int d_child_thread_count;
105 std::string d_thread_error;
108 static bool print_time;
118 pthread_mutex_t &d_mutex;
119 pthread_cond_t &d_cond;
121 std::string &d_error;
130 write_args(pthread_mutex_t &m, pthread_cond_t &c,
int &count, std::string &e, std::ostream &s,
char *vals,
int num) :
131 d_mutex(m), d_cond(c), d_count(count), d_error(e), d_out(s), d_out_file(-1), d_buf(vals), d_num(num)
139 write_args(pthread_mutex_t &m, pthread_cond_t &c,
int &count, std::string &e,
int fd,
char *vals,
int num) :
140 d_mutex(m), d_cond(c), d_count(count), d_error(e), d_out(std::cerr), d_out_file(fd), d_buf(vals), d_num(num)
149 pthread_mutex_t &get_mutex() {
return d_out_mutex; }
150 pthread_cond_t &get_cond() {
return d_out_cond; }
152 int &get_child_thread_count() {
return d_child_thread_count; }
153 void increment_child_thread_count() { ++d_child_thread_count; }
155 void start_thread(
void* (*thread)(
void *arg), std::ostream &out,
char *byte_buf,
unsigned int bytes_written);
156 void start_thread(
void* (*thread)(
void *arg),
int fd,
char *byte_buf,
unsigned int bytes_written);
160 static void *write_thread(
void *arg);
161 static void *write_thread_part(
void *arg);
164 static void set_print_time(
bool state) { print_time = state; }
165 static bool get_print_time() {
return print_time; }
top level DAP object to house generic methods