114 lines
2.7 KiB
C++
114 lines
2.7 KiB
C++
|
/* Copyright (C) 2021 Free Software Foundation, Inc.
|
||
|
Contributed by Oracle.
|
||
|
|
||
|
This file is part of GNU Binutils.
|
||
|
|
||
|
This program is free software; you can redistribute it and/or modify
|
||
|
it under the terms of the GNU General Public License as published by
|
||
|
the Free Software Foundation; either version 3, or (at your option)
|
||
|
any later version.
|
||
|
|
||
|
This program is distributed in the hope that it will be useful,
|
||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
GNU General Public License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU General Public License
|
||
|
along with this program; if not, write to the Free Software
|
||
|
Foundation, 51 Franklin Street - Fifth Floor, Boston,
|
||
|
MA 02110-1301, USA. */
|
||
|
|
||
|
#include "config.h"
|
||
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <strings.h>
|
||
|
|
||
|
#include "DbeSession.h"
|
||
|
#include "DbeApplication.h"
|
||
|
#include "LoadObject.h"
|
||
|
#include "Experiment.h"
|
||
|
#include "PreviewExp.h"
|
||
|
#include "Function.h"
|
||
|
#include "Hist_data.h"
|
||
|
#include "Module.h"
|
||
|
#include "DataObject.h"
|
||
|
#include "Sample.h"
|
||
|
#include "CallStack.h"
|
||
|
#include "Print.h"
|
||
|
#include "util.h"
|
||
|
#include "libgen.h"
|
||
|
#include "i18n.h"
|
||
|
|
||
|
DbeApplication *theDbeApplication;
|
||
|
|
||
|
DbeApplication::DbeApplication (int argc, char *argv[], char* _run_dir)
|
||
|
: Application (argc, argv, _run_dir)
|
||
|
{
|
||
|
theDbeApplication = this;
|
||
|
ipcMode = false;
|
||
|
rdtMode = false;
|
||
|
if (argc > 1)
|
||
|
if (strcmp (argv[1], NTXT ("-IPC")) == 0
|
||
|
|| strcmp (argv[1], NTXT ("-DIPC")) == 0)
|
||
|
ipcMode = true;
|
||
|
lic_found = 0;
|
||
|
lic_err = NULL;
|
||
|
|
||
|
// Instantiate a session
|
||
|
(void) new DbeSession (settings, ipcMode, rdtMode);
|
||
|
}
|
||
|
|
||
|
DbeApplication::~DbeApplication ()
|
||
|
{
|
||
|
delete dbeSession;
|
||
|
theDbeApplication = NULL;
|
||
|
}
|
||
|
|
||
|
Vector<char*> *
|
||
|
DbeApplication::initApplication (char *fdhome, char *licpath, ProgressFunc func)
|
||
|
{
|
||
|
// set the home directory
|
||
|
if (fdhome != NULL)
|
||
|
set_run_dir (fdhome);
|
||
|
|
||
|
// Set progress function
|
||
|
set_progress_func (func);
|
||
|
|
||
|
// Get license
|
||
|
char *license_err = NULL;
|
||
|
char *sts;
|
||
|
if (licpath != NULL)
|
||
|
{
|
||
|
lic_found = 0;
|
||
|
if (lic_found == 0)
|
||
|
{
|
||
|
lic_err = dbe_strdup (DbeApplication::get_version ());
|
||
|
sts = dbe_strdup (GTXT ("OK"));
|
||
|
}
|
||
|
else if (lic_found == 2)
|
||
|
{
|
||
|
lic_err = dbe_strdup (license_err);
|
||
|
sts = dbe_strdup (GTXT ("WARN"));
|
||
|
}
|
||
|
else if (lic_found == 3)
|
||
|
{
|
||
|
lic_err = dbe_strdup (license_err);
|
||
|
sts = dbe_strdup (GTXT ("FATAL"));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
lic_err = dbe_strdup (license_err);
|
||
|
sts = dbe_strdup (GTXT ("ERROR"));
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
lic_err = dbe_strdup (DbeApplication::get_version ());
|
||
|
sts = dbe_strdup (GTXT ("OK"));
|
||
|
}
|
||
|
Vector<char*> *data = new Vector<char*>(2);
|
||
|
data->store (0, sts);
|
||
|
data->store (1, lic_err);
|
||
|
return data;
|
||
|
}
|