rev 311 - trunk/src

SVN User <[email protected]>
Newsgroups gmane.comp.lang.prothon.cvs
Message-ID <[email protected]>
Author: mark
Date: 2004-04-09 18:29:23 -0400 (Fri, 09 Apr 2004)
New Revision: 311

Modified:
   trunk/src/builtins-core.c
Log:


Modified: trunk/src/builtins-core.c
===================================================================
--- trunk/src/builtins-core.c	2004-04-09 20:20:30 UTC (rev 310)
+++ trunk/src/builtins-core.c	2004-04-09 22:29:23 UTC (rev 311)
@@ -142,6 +142,38 @@
 	return call_func0(ist, parms[1], SYM(MIN));
 }
 
+DEF(Object, set_read_access, FORM_RPARAM) {
+	int rqacc;
+	CHECK_TYPE_EXC(parms[1], OBJ(INT_PROTO), "integer");
+	rqacc = (int) parms[1]->data.i64;
+	if (rqacc > ist->access) {
+		raise_exception(ist, OBJ(PERMISSION_EXC), "attempt to raise access greater than own level");	
+		return NULL;
+	}
+	set_obj_rdacc(self, rqacc);
+	return parms[1];
+}
+
+DEF(Object, get_read_access, NULL) {
+	return new_int_obj(ist, get_obj_rdacc(self));
+}
+
+DEF(Object, set_write_access, FORM_RPARAM)  {
+	int rqacc;
+	CHECK_TYPE_EXC(parms[1], OBJ(INT_PROTO), "integer");
+	rqacc = (int) parms[1]->data.i64;
+	if (rqacc > ist->access) {
+		raise_exception(ist, OBJ(PERMISSION_EXC), "attempt to raise access greater than own level");	
+		return NULL;
+	}
+	set_obj_wracc(self, rqacc);
+	return parms[1];
+}
+
+DEF(Object, get_write_access, NULL) {
+	return new_int_obj(ist, get_obj_wracc(self));
+}
+
 DEF(Object, __getitem__, FORM_RPARAM) {
 	raise_exception(ist, OBJ(TYPE_EXC), "indexing not supported on this object");
 	return NULL;
@@ -570,6 +602,10 @@
 	MODULE_SUB_INIT(Object);
 	MODULE_ADD_SYM(Object, __init__);
 	MODULE_ADD_SYM(Object, clone);
+	MODULE_ADD_SYM(Object, set_read_access);
+	MODULE_ADD_SYM(Object, get_read_access);
+	MODULE_ADD_SYM(Object, set_write_access);
+	MODULE_ADD_SYM(Object, get_write_access);
 	MODULE_ADD_SYM(Object, has_proto_QUES);
 	MODULE_ADD_SYM(Object, set_proto);
 	MODULE_ADD_SYM(Object, add_proto);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.