CppCtor.h
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * Copyright (C) 2011-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5  *
6  * ArmarX is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  * ArmarX is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * @package
19  * @author
20  * @date
21  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
22  * GNU General Public License
23  */
24 #pragma once
25 
26 #include "CppBlock.h"
27 
28 namespace armarx
29 {
30  class CppCtor;
31  using CppCtorPtr = std::shared_ptr<CppCtor>;
32 
33  class CppCtor
34  {
35  public:
36  CppCtor(const std::string& header);
37  CppCtor(const std::string& header, const CppBlockPtr& b);
38 
39  void addInitListEntries(const std::vector<std::pair<std::string, std::string>>&);
40  void addInitListEntry(const std::string& target, const std::string& expr);
41  void addLine(const std::string& line);
42  void addLine(const boost::basic_format<char>& line);
43 
44  void setBlock(const CppBlockPtr&);
45  CppBlockPtr getBlock() const;
46 
47  void writeCpp(const CppWriterPtr& writer);
48 
49  void setEnforceBlockGeneration(bool enforceBlockGeneration);
50 
51  private:
52  std::string header;
53  std::vector<std::string> initList;
54  CppBlockPtr block;
55 
56  bool enforceBlockGeneration = false;
57  };
58 }
armarx::CppCtorPtr
std::shared_ptr< CppCtor > CppCtorPtr
Definition: CppCtor.h:31
boost::target
Vertex target(const detail::edge_base< Directed, Vertex > &e, const PCG &)
Definition: point_cloud_graph.h:688
CppBlock.h
armarx::CppBlockPtr
std::shared_ptr< CppBlock > CppBlockPtr
Definition: CppBlock.h:35
armarx::CppCtor::addInitListEntries
void addInitListEntries(const std::vector< std::pair< std::string, std::string >> &)
Definition: CppCtor.cpp:44
armarx::CppCtor::writeCpp
void writeCpp(const CppWriterPtr &writer)
Definition: CppCtor.cpp:85
armarx::CppCtor::CppCtor
CppCtor(const std::string &header)
Definition: CppCtor.cpp:33
armarx::CppCtor::addLine
void addLine(const std::string &line)
Definition: CppCtor.cpp:57
armarx::CppCtor
Definition: CppCtor.h:33
armarx::CppCtor::setBlock
void setBlock(const CppBlockPtr &)
Definition: CppCtor.cpp:75
armarx::CppCtor::setEnforceBlockGeneration
void setEnforceBlockGeneration(bool enforceBlockGeneration)
Definition: CppCtor.cpp:124
armarx::CppWriterPtr
std::shared_ptr< CppWriter > CppWriterPtr
Definition: CppWriter.h:35
armarx::CppCtor::addInitListEntry
void addInitListEntry(const std::string &target, const std::string &expr)
Definition: CppCtor.cpp:52
armarx::CppCtor::getBlock
CppBlockPtr getBlock() const
Definition: CppCtor.cpp:80
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:28