File: tNamedEntry.h

package info (click to toggle)
fact%2B%2B 1.6.5~dfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 4,496 kB
  • sloc: cpp: 28,000; java: 22,674; xml: 3,268; makefile: 102; ansic: 61; sh: 3
file content (92 lines) | stat: -rw-r--r-- 2,557 bytes parent folder | download | duplicates (3)
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
/* This file is part of the FaCT++ DL reasoner
Copyright (C) 2003-2015 Dmitry Tsarkov and The University of Manchester
Copyright (C) 2015-2016 Dmitry Tsarkov

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library 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
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
*/

#ifndef TNAMEDENTRY_H
#define TNAMEDENTRY_H

#include <string>
#include <ostream>

#include "flags.h"

//#include "SmallObj.h"

class TNamedEntity;
class SaveLoadManager;

class TNamedEntry: public Flags//: public Loki::SmallObject<>
{
private:	// no copy
		/// copy c'tor (unimplemented)
	TNamedEntry ( const TNamedEntry& );
		/// assignment (unimplemented)
	TNamedEntry& operator = ( const TNamedEntry& );

protected:	// members
		/// name of the entry
	std::string extName;
		/// entry identifier
	int extId;
		/// original entity
	const TNamedEntity* entity;

public:		// interface
		/// the only c'tor
	explicit TNamedEntry ( const std::string& name )
		: extName (name)		// copy name
		, extId (0)				// sets local id
		, entity(NULL)
		{}
		/// empty d'tor
	virtual ~TNamedEntry ( void ) {}

		/// gets name of given entry
	const char* getName ( void ) const { return extName.c_str(); }

		/// set internal ID
	void setId ( int id ) { extId = id; }
		/// get internal ID
	int getId ( void ) const { return extId; }

		/// set entity
	void setEntity ( const TNamedEntity* e ) { entity = e; }
		/// get entity
	const TNamedEntity* getEntity ( void ) const { return entity; }

		/// register a System flag
	FPP_ADD_FLAG(System,0x1);

	// hierarchy interface

		/// register a Top-of-the-hierarchy flag
	FPP_ADD_FLAG(Top,0x1000);
		/// register a Bottom-of-the-hierarchy flag
	FPP_ADD_FLAG(Bottom,0x2000);

	virtual void Print ( std::ostream& o ) const { o << getName (); }

	// save/load interface; implementation is in SaveLoad.cpp

		/// save entry
	virtual void Save ( SaveLoadManager& m ) const;
		/// load entry
	virtual void Load ( SaveLoadManager& m );
}; // TNamedEntry

#endif