summaryrefslogtreecommitdiff
path: root/netfs/fuseConfig.h
blob: 54163608a099ab7e4f4c9811efd4a3b04192311d (plain)
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
#ifndef FUSECONFIG_H
#define FUSECONFIG_H

#include <string>
#include <map>
#include <set>
#include <intrusivePtrBase.h>
#include <boost/intrusive_ptr.hpp>
#include "xml.h"

class FuseConfig : public virtual IntrusivePtrBase {
	public:
		class Export;
		typedef boost::intrusive_ptr<Export> ExportPtr;
		typedef std::map<std::string, ExportPtr> ExportMap;
		class Export : public virtual IntrusivePtrBase {
			public:
				typedef std::set<std::string> Endpoints;
				Export(xmlNodePtr);

				std::string name;
				Endpoints endpoints;
		};

		FuseConfig(xmlNodePtr);
		static boost::intrusive_ptr<FuseConfig>	Load(const char * path);

		ExportMap		exports;
};
typedef boost::intrusive_ptr<FuseConfig> FuseConfigPtr;

#endif