Merge pull request #1844 from jrw972/monterey
[ACE_TAO.git] / TAO / utils / logWalker / Thread.h
blob951a9a6d864f1be12a8237dd9479f50d803abfee
1 // -*- C++ -*-
3 //
5 #ifndef LOG_WALKER_THREAD_H
6 #define LOG_WALKER_THREAD_H
8 #include "ace/SString.h"
9 #include "ace/Synch.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;
18 class Thread
20 public:
21 Thread (long tid, const char *alias, size_t offset);
22 void add_time (const ACE_CString &time);
24 long max_depth (void) const;
25 long client_encounters (void) const;
26 long server_encounters (void) const;
27 long id (void) const;
28 const ACE_CString &alias (void) 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 (void);
35 Invocation *current_invocation (void) const;
37 PeerProcess *incoming (void) const;
38 void handle_request (void);
39 void enter_wait (PeerProcess *);
40 void exit_wait (PeerProcess *, size_t linenum);
41 GIOP_Buffer *giop_target (void);
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 (void);
51 PeerProcess *peek_new_connection (void) const;
53 void pending_local_addr (const ACE_CString &addr);
54 const ACE_CString& pending_local_addr (void) const;
55 void active_handle (long handle);
56 long active_handle (void) const;
57 void set_dup (Thread *other, bool set_other);
58 void clear_dup (void);
59 void swap_target (void);
60 bool has_dup (void);
62 size_t count_nesting (void);
64 private:
65 long id_;
66 ACE_CString alias_;
67 size_t max_depth_;
68 long client_encounters_;
69 long server_encounters_;
70 size_t nested_;
71 PeerProcessStack pending_;
72 PeerProcess *incoming_;
73 PeerProcessStack new_connection_;
74 ACE_CString pending_local_addr_;
75 GIOP_Buffer *giop_target_;
76 Thread *target_dup_;
77 InvocationList invocations_;
78 InvocationStack current_invocation_;
79 long active_handle_;
80 size_t first_line_;
81 ACE_CString first_time_;
82 ACE_CString last_time_;
85 #endif // LOG_WALKER_THREAD_H