File: paths.h

package info (click to toggle)
sitplus 1.0.3-3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 23,636 kB
  • sloc: cpp: 34,437; ansic: 7,957; xml: 1,141; yacc: 326; lisp: 235; lex: 167; makefile: 107; sh: 5
file content (112 lines) | stat: -rw-r--r-- 3,666 bytes parent folder | download | duplicates (2)
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
/**
* @file		paths.h
* @brief	Common path utilities.
* @author	Cesar Mauri Loba (cesar at crea-si dot com)
*
* -------------------------------------------------------------------------
*
* Copyright:   (C) 2010 Cesar Mauri Loba - CREA Software Systems
*
*  This program 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.
*
*  This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef SPCORE_PATHS_H
#define SPCORE_PATHS_H

#include "spcore/baseobj.h"

namespace spcore {

/**
	@brief Interface class for path reporting class
*/
class IPaths : public IBaseObject {
protected:
	virtual ~IPaths() {}

public:
	/**
		@brief Return the location of the applications global, i.e. not 
		user-specific, data files.
		The returned value is, in order of precedence:
		- The value set using SetDataDir
		- The value found in SP_DATA_DIR environment variable
		- A guessed path which is usually install-prefix/share/appname
		on *nix and the path where the binary resides on Windows
		
		@return pointer to an internal storage which should not be deallocated or NULL
	*/
	virtual const char* GetDataDir() const= 0;

	/**
		@brief Sets the location of the applications global, i.e. not 
		user-specific, data files.
		@param dir Data files directory
	*/
	virtual void SetDataDir(const char* dir)= 0;
	
	/**
		@brief Return the directory for the user-dependent application data 
		and configuration files
		The returned value is, in order of precedence:
		- The value set using SetUserDataDir
		- The value found in SP_USER_DATA_DIR environment variable
		- A guessed path which is usually ~/.appname on *nix and
		 C:/Users/username/AppData/appname on Windows
		@return pointer to an internal storage which should not be deallocated or NULL
	*/
	virtual const char* GetUserDataDir() const= 0;

	/**
		@brief Sets the location for the user-dependent application data
		@param dir User-dependent data files directory
	*/
	virtual void SetUserDataDir(const char* dir)= 0;
	
	/**
		@brief Return language catalogs directory.
		The returned value is, in order of precedence:
		- The value set using SetLocalesDir
		- The value found in SP_LOCALES_DIR environment variable
		- A guessed path which is usually install_prefix/share/locale/ on *nix and 
		DataDir plus locale/ on Windows
		@return pointer to an internal storage which should not be deallocated or NULL
	*/
	virtual const char* GetLocalesDir() const= 0;

	/**
		@brief Sets the location for language catalogs
		@param dir Language catalogs files directory
	*/
	virtual void SetLocalesDir(const char* dir)= 0;

	/**
		@brief Return plug-ins directory.
		The returned value is, in order of precedence:
		- The value set using SetPluginsDir
		- The value found in SP_PLUGINS_DIR environment variable
		- A guessed path which is usually install_prefix/lib/sitplus/ on *nix and 
		DataDir on Windows
		@return pointer to an internal storage which should not be deallocated or NULL
	*/
	virtual const char* GetPluginsDir() const= 0;

	/**
		@brief Sets the location for plug-ins catalogs
		@param dir Directory name.
	*/
	virtual void SetPluginsDir(const char* dir)= 0;
};

} // namespace spcore
#endif