aboutsummaryrefslogtreecommitdiff
path: root/Src/nde/win/StringField.h
blob: 722ba0c21472654848310dc6defadab75972704e (plain) (blame)
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
/*
---------------------------------------------------------------------------
Nullsoft Database Engine
--------------------
codename: Near Death Experience
---------------------------------------------------------------------------
*/

/* 
---------------------------------------------------------------------------

StringField Class Prototypes

---------------------------------------------------------------------------
*/

#ifndef __STRINGFIELD_H
#define __STRINGFIELD_H
#include "../NDEString.h"

class StringField : public Field
{
public:
	StringField();
	~StringField();
	

	StringField(const wchar_t *Str, int strkind=STRING_IS_WCHAR);
	wchar_t *GetStringW(void);
	void SetStringW(const wchar_t *Str);
	void SetNDEString(wchar_t *Str);

protected:
	virtual void ReadTypedData(const uint8_t *, size_t len);
	virtual void WriteTypedData(uint8_t *, size_t len);
	virtual size_t GetDataSize(void);
	virtual int Compare(Field *Entry);
	virtual int Starts(Field *Entry);
	virtual int Contains(Field *Entry);

	virtual bool ApplyFilter(Field *Data, int op);
	virtual Field *Clone(Table *pTable);
	void InitField(void);
	
	wchar_t *StringW;
	const wchar_t *optimized_the;
};

#endif