summaryrefslogtreecommitdiff
path: root/Source/Library/Userland/Syscall/RessourceCaller.class.h
blob: 39091ed95b324597685c56d57b2a4109677cb571 (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
#ifndef DEF_RESSOURCECALLER_CLASS_H
#define DEF_RESSOURCECALLER_CLASS_H

#include <Syscall/Syscall.wtf.h>
#include <common.h>

class Serialized {
	private:
	u32int m_value;

	public:
	Serialized(u32int v) : m_value(v) {}
	~Serialized() { Mem::free( (void*)m_value); }
	operator u32int () { return m_value; }
};

class RessourceCaller {
	private:
	u32int m_id;
	u32int m_type;

	protected:
	RessourceCaller(u32int id, u32int type);

	//Static call -- a call specific to a class and not an object

	u32int doCall(u8int call, u32int a = 0, u32int b = 0, u32int c = 0, u32int d = 0, u32int e = 0);

	public:
	static u32int sCall(u32int type, u8int wat, u32int a = 0, u32int b = 0, u32int c = 0, u32int d = 0);	
	u32int resId() const { return m_id; }
	u32int resType() const { return m_type; }
	bool valid() { return m_type != 0; }
};

#endif