File: TestCppTango1022Class.h

package info (click to toggle)
tango 10.0.2%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 89,936 kB
  • sloc: cpp: 201,786; sh: 1,645; python: 953; java: 800; perl: 467; javascript: 447; xml: 325; makefile: 272; sql: 72; ruby: 24
file content (129 lines) | stat: -rw-r--r-- 4,592 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// NOLINTBEGIN(*)

/*----- PROTECTED REGION ID(TestCppTango1022Class.h) ENABLED START -----*/
/* clang-format on */
//=============================================================================
//
// file :        TestCppTango1022Class.h
//
// description : Include for the TestCppTango1022 root class.
//               This class is the singleton class for
//                the TestCppTango1022 device class.
//               It contains all properties and methods which the
//               TestCppTango1022 requires only once e.g. the commands.
//
//
//
// This file is part of Tango device class.
//
// Tango 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 of the License, or
// (at your option) any later version.
//
// Tango 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 Tango.  If not, see <http://www.gnu.org/licenses/>.
//
//
// Copyright (C): 2022
//                European Synchrotron Radiation Facility
//                BP 220, Grenoble 38043
//                France
//
//=============================================================================
//                This file is generated by POGO
//        (Program Obviously used to Generate tango Object)
//=============================================================================

#ifndef TestCppTango1022Class_H
  #define TestCppTango1022Class_H

  #include <tango/tango.h>
  #include "TestCppTango1022.h"

/* clang-format off */
/*----- PROTECTED REGION END -----*/	//	TestCppTango1022Class.h


namespace TestCppTango1022_ns
{
/*----- PROTECTED REGION ID(TestCppTango1022Class::classes for dynamic creation) ENABLED START -----*/
/* clang-format on */

/* clang-format off */
/*----- PROTECTED REGION END -----*/	//	TestCppTango1022Class::classes for dynamic creation

//=========================================
//	Define classes for dynamic attributes
//=========================================
//	Attribute DoubleAttr class definition
class DoubleAttrAttrib: public Tango::Attr
{
public:
	DoubleAttrAttrib(const std::string &att_name):Attr(att_name.c_str(),
			Tango::DEV_DOUBLE, Tango::READ_WRITE) {}
	~DoubleAttrAttrib() {}
	virtual void read(Tango::DeviceImpl *dev,Tango::Attribute &att)
		{(static_cast<TestCppTango1022 *>(dev))->read_DoubleAttr(att);}
	virtual void write(Tango::DeviceImpl *dev,Tango::WAttribute &att)
		{(static_cast<TestCppTango1022 *>(dev))->write_DoubleAttr(att);}
	virtual bool is_allowed(Tango::DeviceImpl *dev,Tango::AttReqType ty)
		{return (static_cast<TestCppTango1022 *>(dev))->is_DoubleAttr_allowed(ty);}
};


/**
 *	The TestCppTango1022Class singleton definition
 */

class TestCppTango1022Class : public Tango::DeviceClass
{
	/*----- PROTECTED REGION ID(TestCppTango1022Class::Additional DServer data members) ENABLED START -----*/
    /* clang-format on */
    //	Add your own code
    /* clang-format off */
	/*----- PROTECTED REGION END -----*/	//	TestCppTango1022Class::Additional DServer data members

	public:
		//	write class properties data members
		Tango::DbData	cl_prop;
		Tango::DbData	cl_def_prop;
		Tango::DbData	dev_def_prop;
		//	Method prototypes
		static TestCppTango1022Class *init(const char *);
		static TestCppTango1022Class *instance();
		~TestCppTango1022Class();
		Tango::DbDatum	get_class_property(std::string &);
		Tango::DbDatum	get_default_device_property(std::string &);
		Tango::DbDatum	get_default_class_property(std::string &);

	protected:
		TestCppTango1022Class(std::string &);
		static TestCppTango1022Class *_instance;
		void command_factory();
		void attribute_factory(std::vector<Tango::Attr *> &);
		void pipe_factory();
		void write_class_property();
		void set_default_property();
		void get_class_property();
		std::string get_cvstag();
		std::string get_cvsroot();

	private:
		void device_factory(TANGO_UNUSED(const Tango::DevVarStringArray *));
		void create_static_attribute_list(std::vector<Tango::Attr *> &);
		void erase_dynamic_attributes(const Tango::DevVarStringArray *,std::vector<Tango::Attr *> &);
		std::vector<std::string>	defaultAttList;
		Tango::Attr *get_attr_object_by_name(std::vector<Tango::Attr *> &att_list, std::string attname);
};

}	//	End of namespace

#endif   //	TestCppTango1022_H

 // NOLINTEND(*)