summaryrefslogtreecommitdiff
path: root/trunk/ACE/apps/soreduce/SO_Group.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/ACE/apps/soreduce/SO_Group.h')
-rw-r--r--trunk/ACE/apps/soreduce/SO_Group.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/trunk/ACE/apps/soreduce/SO_Group.h b/trunk/ACE/apps/soreduce/SO_Group.h
new file mode 100644
index 00000000000..09758c8c7bb
--- /dev/null
+++ b/trunk/ACE/apps/soreduce/SO_Group.h
@@ -0,0 +1,48 @@
+// -*- C++ -*-
+// $Id$
+
+// File: SO_Group.h
+
+// Author: Phil Mesnier
+
+#ifndef _SO_GROUP_H_
+#define _SO_GROUP_H_
+
+#include "Library.h"
+
+// A shared object group is a wrapper around all of the information needed to
+// analize a collection of applications so that common shared libraries can
+// be reduced.
+
+class SO_Group
+{
+public:
+ SO_Group ();
+ ~SO_Group ();
+
+ // For each executable named, run ldd to get the dependances list, For each
+ // library listed, see if there is a path to .shobj and add to the list of
+ // libraries if found. Finally, add the undefined symbols from the executable
+ // to the undefs collection.
+ void add_executable(const char * );
+
+ // Do the actual business of the program
+ void analize ();
+
+ // Output the results
+ void write_results ();
+
+ // load the object modules for the group
+ void load_modules ();
+
+ void list_libs();
+
+private:
+ Obj_Module undef_wrapper_;
+ Sig_List &undefs_;
+ Library **libs_;
+ int max_libs_;
+ int num_libs_;
+};
+
+#endif //_SO_GROUP_H_