My Project
Loading...
Searching...
No Matches
dxapp.h
Go to the documentation of this file.
1// Copyright (C) 2013-2016 DNAnexus, Inc.
2//
3// This file is part of dx-toolkit (DNAnexus platform client libraries).
4//
5// Licensed under the Apache License, Version 2.0 (the "License"); you may
6// not use this file except in compliance with the License. You may obtain a
7// copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14// License for the specific language governing permissions and limitations
15// under the License.
16
23
38
39#ifndef DXCPP_BINDINGS_DXAPP_H
40#define DXCPP_BINDINGS_DXAPP_H
41
42#include "../bindings.h"
43
44namespace dx {
45 class DXApp {
46 private:
47 std::string dxid_;
48 std::string name_;
49 std::string alias_;
50
51 public:
52 // App-specific functions
53 DXApp() { }
54
64 DXApp(const std::string &nameOrID,
65 const std::string &alias="default") {
66 setID(nameOrID, alias);
67 }
68
78 void setID(const std::string &nameOrID, const std::string &alias="default") {
79 if (nameOrID.find("app-") == 0) {
80 dxid_ = nameOrID;
81 name_ = "";
82 alias_ = "";
83 } else {
84 dxid_ = "";
85 name_ = nameOrID;
86 alias_ = alias;
87 }
88 }
89
97 dx::JSON describe() const;
98
104 void update(const dx::JSON &to_update) const;
105
116 void addCategories(const dx::JSON &categories) const;
117
128 void removeCategories(const dx::JSON &categories) const;
129
140 void addTags(const dx::JSON &tags) const;
141
152 void removeTags(const dx::JSON &tags) const;
153
161 void install() const;
162
171 void uninstall() const;
172
180 dx::JSON get() const;
181
192 void publish(bool makeDefault=false) const;
193
202 void remove() const;
203
222 DXJob run(const dx::JSON &app_input,
223 const std::string &output_folder="/",
224 const std::vector<std::string> &depends_on=std::vector<std::string>(),
225 const dx::JSON &instance_type=dx::JSON(dx::JSON_NULL),
226 const std::string &project_context=config::CURRENT_PROJECT()
227 ) const;
228 };
229}
230#endif
Definition dxapp.h:45
DXJob run(const dx::JSON &app_input, const std::string &output_folder="/", const std::vector< std::string > &depends_on=std::vector< std::string >(), const dx::JSON &instance_type=dx::JSON(dx::JSON_NULL), const std::string &project_context=config::CURRENT_PROJECT()) const
Definition dxapp.cc:143
void install() const
Definition dxapp.cc:92
void setID(const std::string &nameOrID, const std::string &alias="default")
Definition dxapp.h:78
void removeTags(const dx::JSON &tags) const
Definition dxapp.cc:80
dx::JSON get() const
Definition dxapp.cc:112
void update(const dx::JSON &to_update) const
Definition dxapp.cc:33
void uninstall() const
Definition dxapp.cc:102
void addCategories(const dx::JSON &categories) const
Definition dxapp.cc:43
dx::JSON describe() const
Definition dxapp.cc:23
void publish(bool makeDefault=false) const
Definition dxapp.cc:122
void remove() const
Definition dxapp.cc:133
void removeCategories(const dx::JSON &categories) const
Definition dxapp.cc:55
DXApp(const std::string &nameOrID, const std::string &alias="default")
Definition dxapp.h:64
void addTags(const dx::JSON &tags) const
Definition dxapp.cc:68
The instantiation of an applet or app.
Definition dxjob.h:41
An executable object that can be published for others to discover.
Definition api.cc:7