belcard_organizational.hpp 2.67 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
/*
	belcard_organizational.hpp
	Copyright (C) 2015  Belledonne Communications SARL

	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/>.
*/

19 20 21
#ifndef belcard_organizational_hpp
#define belcard_organizational_hpp

22
#include "belcard_utils.hpp"
Sylvain Berfini's avatar
Sylvain Berfini committed
23
#include "belcard_property.hpp"
24 25
#include <belr/grammarbuilder.h>
#include <belr/abnf.h>
26 27 28 29 30 31 32

#include <string>


namespace belcard {
	class BelCardTitle : public BelCardProperty {
	public:
33 34
		BELCARD_PUBLIC static std::shared_ptr<BelCardTitle> parse(const std::string& input);
		BELCARD_PUBLIC static void setHandlerAndCollectors(belr::Parser<std::shared_ptr<BelCardGeneric>> *parser);
35
		
36
		BELCARD_PUBLIC BelCardTitle();
37 38 39 40
	};
	
	class BelCardRole : public BelCardProperty {
	public:
41 42
		BELCARD_PUBLIC static std::shared_ptr<BelCardRole> parse(const std::string& input);
		BELCARD_PUBLIC static void setHandlerAndCollectors(belr::Parser<std::shared_ptr<BelCardGeneric>> *parser);
43
		
44
		BELCARD_PUBLIC BelCardRole();
45 46 47 48
	};
	
	class BelCardLogo : public BelCardProperty {
	public:
49 50
		BELCARD_PUBLIC static std::shared_ptr<BelCardLogo> parse(const std::string& input);
		BELCARD_PUBLIC static void setHandlerAndCollectors(belr::Parser<std::shared_ptr<BelCardGeneric>> *parser);
51
		
52
		BELCARD_PUBLIC BelCardLogo();
53 54 55 56
	};
	
	class BelCardOrganization : public BelCardProperty {
	public:
57 58
		BELCARD_PUBLIC static std::shared_ptr<BelCardOrganization> parse(const std::string& input);
		BELCARD_PUBLIC static void setHandlerAndCollectors(belr::Parser<std::shared_ptr<BelCardGeneric>> *parser);
59
		
60
		BELCARD_PUBLIC BelCardOrganization();
61 62 63 64
	};
	
	class BelCardMember : public BelCardProperty {
	public:
65 66
		BELCARD_PUBLIC static std::shared_ptr<BelCardMember> parse(const std::string& input);
		BELCARD_PUBLIC static void setHandlerAndCollectors(belr::Parser<std::shared_ptr<BelCardGeneric>> *parser);
67
		
68
		BELCARD_PUBLIC BelCardMember();
69 70 71 72
	};
	
	class BelCardRelated : public BelCardProperty {
	public:
73 74
		BELCARD_PUBLIC static std::shared_ptr<BelCardRelated> parse(const std::string& input);
		BELCARD_PUBLIC static void setHandlerAndCollectors(belr::Parser<std::shared_ptr<BelCardGeneric>> *parser);
75
		
76
		BELCARD_PUBLIC BelCardRelated();
77 78 79
	};
}

80
#endif