NCBI C++ ToolKit
grid_client_app.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 #ifndef CONNECT_SERVICES_GRID__GRID_CLIENT_APP__HPP
2 #define CONNECT_SERVICES_GRID__GRID_CLIENT_APP__HPP
3 
4 /* $Id: grid_client_app.hpp 84368 2018-11-05 16:55:15Z sadyrovr $
5  * ===========================================================================
6  *
7  * PUBLIC DOMAIN NOTICE
8  * National Center for Biotechnology Information
9  *
10  * This software/database is a "United States Government Work" under the
11  * terms of the United States Copyright Act. It was written as part of
12  * the author's official duties as a United States Government employee and
13  * thus cannot be copyrighted. This software/database is freely available
14  * to the public for use. The National Library of Medicine and the U.S.
15  * Government have not placed any restriction on its use or reproduction.
16  *
17  * Although all reasonable efforts have been taken to ensure the accuracy
18  * and reliability of the software and data, the NLM and the U.S.
19  * Government do not and cannot warrant the performance or results that
20  * may be obtained by using this software or data. The NLM and the U.S.
21  * Government disclaim all warranties, express or implied, including
22  * warranties of performance, merchantability or fitness for any particular
23  * purpose.
24  *
25  * Please cite the author in any work or product based on this material.
26  *
27  * ===========================================================================
28  *
29  * Authors: Maxim Didenko
30  *
31  * File Description:
32  * NetSchedule Client Framework Application.
33  *
34  */
35 
37 
38 #include <corelib/ncbimisc.hpp>
39 #include <corelib/ncbiapp.hpp>
40 
41 
42 /// @file grid_client_app.hpp
43 /// NetSchedule Framework specs.
44 ///
45 
47 
48 /** @addtogroup NetScheduleClient
49  *
50  * @{
51  */
52 
53 /// Grid Client Application
54 ///
56 {
57 public:
58  /// If you override this method, do call CGridClientApp::Init()
59  /// from inside your overriding method.
60  virtual void Init(void);
61 
62  /// Get a grid client
63  ///
64  CGridClient& GetGridClient() { return *m_GridClient; }
65 
66  /// Get program version (like: MyProgram v. 1.2.3)
67  ///
68  /// Program version is passed to NetSchedule queue so queue
69  /// controls versions and does not allow obsolete clients
70  /// to connect and submit or execute jobs
71  ///
72  virtual string GetProgramVersion(void) const = 0;
73 
74 protected:
75  virtual bool UseProgressMessage() const;
76  virtual bool UseAutomaticCleanup() const;
77 
78  unique_ptr<CGridClient> m_GridClient;
79 };
80 
81 /////////////////////////////////////////////////////////////////////////////
82 
84 
85 #endif // CONNECT_SERVICES_GRID__GRID_CLIENT_APP__HPP
Grid Client Application.
Grid Client (the submitter).
NetSchedule Framework specs.
virtual void Init(void)
Initialize the application.
Definition: ncbiapp.cpp:286
unique_ptr< CGridClient > m_GridClient
virtual string GetProgramVersion(void) const =0
Get program version (like: MyProgram v.
CGridClient & GetGridClient()
Get a grid client.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
#define NCBI_XCONNECT_EXPORT
Defines the CNcbiApplication and CAppException classes for creating NCBI applications.
Miscellaneous common-use basic types and functionality.
Modified on Sat Apr 13 11:43:31 2024 by modify_doxy.py rev. 669887