swig/Source/Modules/utils.cxx
Marcelo Matus 553698d489 fix dirprot mode
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5874 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-04-11 12:20:04 +00:00

42 lines
1.1 KiB
C++

#include <swigmod.h>
int is_public(Node* n)
{
String* access = Getattr(n, "access");
return !access || !Cmp(access, "public");
}
int is_private(Node* n)
{
String* access = Getattr(n, "access");
return access && !Cmp(access, "private");
}
int is_protected(Node* n)
{
String* access = Getattr(n, "access");
return access && !Cmp(access, "protected");
}
int is_member_director(Node* parentnode, Node* member)
{
int director_mode = Swig_director_mode();
if (checkAttribute(member,"director","1")) return 1;
if (parentnode && checkAttribute(member, "storage", "virtual")) {
int parent_nodirector = checkAttribute(parentnode,"feature:nodirector","1");
if (parent_nodirector) return 0;
int parent_director = director_mode|| checkAttribute(parentnode,"feature:director","1");
int cdecl_director = parent_director || checkAttribute(member,"feature:director","1");
int cdecl_nodirector = checkAttribute(member,"feature:nodirector","1");
return cdecl_director && !cdecl_nodirector;
} else {
return 0;
}
}
int is_member_director(Node* member)
{
return is_member_director(Getattr(member, "parentNode"), member);
}