]>
Commit | Line | Data |
---|---|---|
76bdc726 | 1 | /* Copyright (C) 2021-2023 Free Software Foundation, Inc. |
bb368aad VM |
2 | Contributed by Oracle. |
3 | ||
4 | This file is part of GNU Binutils. | |
5 | ||
6 | This program is free software; you can redistribute it and/or modify | |
7 | it under the terms of the GNU General Public License as published by | |
8 | the Free Software Foundation; either version 3, or (at your option) | |
9 | any later version. | |
10 | ||
11 | This program is distributed in the hope that it will be useful, | |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | GNU General Public License for more details. | |
15 | ||
16 | You should have received a copy of the GNU General Public License | |
17 | along with this program; if not, write to the Free Software | |
18 | Foundation, 51 Franklin Street - Fifth Floor, Boston, | |
19 | MA 02110-1301, USA. */ | |
20 | ||
21 | #include "config.h" | |
22 | #include <stdio.h> | |
23 | ||
24 | #include "PreviewExp.h" | |
25 | #include "Data_window.h" | |
26 | #include "DbeSession.h" | |
27 | #include "Emsg.h" | |
28 | #include "Print.h" | |
29 | #include "i18n.h" | |
30 | ||
31 | PreviewExp::PreviewExp (): Experiment () { } | |
32 | ||
33 | PreviewExp::~PreviewExp () { }//~PreviewExp | |
34 | ||
35 | Experiment::Exp_status | |
36 | PreviewExp::experiment_open (char *path) | |
37 | { | |
38 | // Find experiment directory | |
39 | if ((status = find_expdir (path)) != SUCCESS) | |
40 | { | |
41 | size_t len = strlen (path); | |
42 | is_group = ((len > 4) && !strcmp (&path[len - 4], NTXT (".erg"))); | |
43 | return status; | |
44 | } | |
45 | else | |
46 | is_group = 0; | |
47 | ||
48 | read_log_file (); | |
49 | if (status == FAILURE) | |
50 | return status; | |
51 | ||
52 | if (status == INCOMPLETE && resume_ts != MAX_TIME) | |
53 | // experiment is incomplete and "resumed" (non-paused) | |
54 | // PreviewExp does not process all the packets, therefore... | |
55 | // ... last_event does not reflect reality | |
56 | // ... we don't know the duration or the end. | |
57 | last_event = ZERO_TIME; // mark last_event as uninitialized | |
58 | ||
59 | read_notes_file (); | |
60 | return status; | |
61 | } | |
62 | ||
63 | Vector<char*> * | |
64 | PreviewExp::preview_info () | |
65 | { | |
66 | Vector<char*> *info = new Vector<char*>; | |
67 | if (is_group) | |
68 | info->append (GTXT ("Experiment Group")); | |
69 | else | |
70 | info->append (GTXT ("Experiment")); | |
71 | info->append (expt_name); | |
72 | ||
73 | if (status == FAILURE /* != SUCCESS */) | |
74 | { | |
75 | if (is_group) | |
76 | { | |
77 | Vector<char*> *grp_list = dbeSession->get_group_or_expt (expt_name); | |
78 | for (int i = 0, grp_sz = grp_list->size (); i < grp_sz; i++) | |
79 | { | |
80 | char *nm = grp_list->fetch (i); | |
81 | char *str = dbe_sprintf (GTXT ("Exp.#%d"), i + 1); | |
82 | info->append (str); | |
83 | info->append (nm); | |
84 | } | |
85 | delete grp_list; | |
86 | } | |
87 | else | |
88 | { | |
89 | info->append (GTXT ("Error message")); | |
90 | info->append (mqueue_str (errorq, GTXT ("No errors\n"))); | |
91 | } | |
92 | return info; | |
93 | } | |
94 | info->append (GTXT ("Experiment header")); | |
95 | info->append (mqueue_str (commentq, GTXT ("Empty header\n"))); | |
96 | info->append (GTXT ("Error message")); | |
97 | info->append (mqueue_str (errorq, GTXT ("No errors\n"))); | |
98 | info->append (GTXT ("Warning message")); | |
99 | info->append (mqueue_str (warnq, GTXT ("No warnings\n"))); | |
100 | info->append (GTXT ("Notes")); | |
101 | info->append (mqueue_str (notesq, GTXT ("\n"))); | |
102 | return info; | |
103 | } | |
104 | ||
105 | char * | |
106 | PreviewExp::mqueue_str (Emsgqueue *msgqueue, char *null_str) | |
107 | { | |
108 | char *mesgs = pr_mesgs (msgqueue->fetch (), null_str, ""); | |
109 | char *last = mesgs + strlen (mesgs) - 1; | |
110 | if (*last == '\n') | |
111 | *last = '\0'; | |
112 | return mesgs; | |
113 | } |