5 #ifndef LOG_WALKER_THREAD_H
6 #define LOG_WALKER_THREAD_H
8 #include "ace/SString.h"
10 #include "ace/Containers.h"
11 #include "ace/Hash_Map_Manager.h"
12 #include "Invocation.h"
13 #include "PeerProcess.h"
15 typedef ACE_Unbounded_Stack
<PeerProcess
*> PeerProcessStack
;
16 typedef ACE_Unbounded_Stack
<Invocation
*> InvocationStack
;
21 Thread (long tid
, const char *alias
, size_t offset
);
22 void add_time (const ACE_CString
&time
);
24 long max_depth () const;
25 long client_encounters () const;
26 long server_encounters () const;
28 const ACE_CString
&alias () const;
29 void split_filename (char *buff
, size_t len
) const;
31 void incoming_from (PeerProcess
*);
32 void add_invocation (Invocation
*);
33 void push_invocation (Invocation
*);
34 void pop_invocation ();
35 Invocation
*current_invocation () const;
37 PeerProcess
*incoming () const;
38 void handle_request ();
39 void enter_wait (PeerProcess
*);
40 void exit_wait (PeerProcess
*, size_t linenum
);
41 GIOP_Buffer
*giop_target ();
42 void set_giop_target (GIOP_Buffer
*buffer
);
43 void dump_summary (ostream
&strm
);
44 void dump_invocations (ostream
&strm
);
45 void dump_incidents (ostream
&strm
, const ACE_Time_Value
& start
);
47 void get_summary (long &sent_reqs
, long &recv_reqs
, size_t &sent_size
, size_t &recv_size
);
49 void push_new_connection (PeerProcess
*pp
);
50 PeerProcess
*pop_new_connection ();
51 PeerProcess
*peek_new_connection () const;
53 void pending_local_addr (const ACE_CString
&addr
);
54 const ACE_CString
& pending_local_addr () const;
55 void active_handle (long handle
);
56 long active_handle () const;
57 void set_dup (Thread
*other
, bool set_other
);
62 size_t count_nesting ();
68 long client_encounters_
;
69 long server_encounters_
;
71 PeerProcessStack pending_
;
72 PeerProcess
*incoming_
;
73 PeerProcessStack new_connection_
;
74 ACE_CString pending_local_addr_
;
75 GIOP_Buffer
*giop_target_
;
77 InvocationList invocations_
;
78 InvocationStack current_invocation_
;
81 ACE_CString first_time_
;
82 ACE_CString last_time_
;
85 #endif // LOG_WALKER_THREAD_H