xref: /haiku/src/apps/haikudepot/model/Captcha.h (revision 13581b3d2a71545960b98fefebc5225b5bf29072)
1 /*
2  * Copyright 2019, Andrew Lindesay <apl@lindesay.co.nz>.
3  * All rights reserved. Distributed under the terms of the MIT License.
4  */
5 #ifndef CAPTCHA_H
6 #define CAPTCHA_H
7 
8 
9 #include <Archivable.h>
10 #include <String.h>
11 
12 class BPositionIO;
13 
14 /*!	When a user has to perform some sensitive operation, it is necessary to make
15 	sure that it is not a 'robot' or software system that is acting as if it
16 	were a person.  It is necessary to know that a real person is acting.  In
17 	this case a graphical puzzle is presented to the user that presumably only
18 	a human operator could solve.  This is called a Captcha.
19 */
20 
21 class Captcha : public BArchivable {
22 public:
23 								Captcha(BMessage* from);
24 								Captcha();
25 	virtual						~Captcha();
26 
27 	const	BString&			Token() const;
28 			BPositionIO*		PngImageData() const;
29 
30 			void				SetToken(const BString& value);
31 			void				SetPngImageData(const void* data, size_t len);
32 
33 			status_t			Archive(BMessage* into, bool deep = true) const;
34 private:
35 			BString				fToken;
36 			BMallocIO*			fPngImageData;
37 };
38 
39 
40 #endif // CAPTCHA_H
41