A little improvement for the sample. Add this to the MyAuthorizer class:
Code: Select all
wxString ConvertAuthToString(int type)
{
wxString s;
switch (type)
{
case SQLITE_CREATE_INDEX:
s = _T("SQLITE_CREATE_INDEX");
break;
case SQLITE_CREATE_TABLE:
s = _T("SQLITE_CREATE_TABLE");
break;
case SQLITE_CREATE_TEMP_INDEX:
s = _T("SQLITE_CREATE_TEMP_INDEX");
break;
case SQLITE_CREATE_TEMP_TABLE:
s = _T("SQLITE_CREATE_TEMP_TABLE");
break;
case SQLITE_CREATE_TEMP_TRIGGER:
s = _T("SQLITE_CREATE_TEMP_TRIGGER");
break;
case SQLITE_CREATE_TEMP_VIEW:
s = _T("SQLITE_CREATE_TEMP_VIEW");
break;
case SQLITE_CREATE_TRIGGER:
s = _T("SQLITE_CREATE_TRIGGER");
break;
case SQLITE_CREATE_VIEW:
s = _T("SQLITE_CREATE_VIEW");
break;
case SQLITE_DELETE:
s = _T("SQLITE_DELETE");
break;
case SQLITE_DROP_INDEX:
s = _T("SQLITE_DROP_INDEX");
break;
case SQLITE_DROP_TABLE:
s = _T("SQLITE_DROP_TABLE");
break;
case SQLITE_DROP_TEMP_INDEX:
s = _T("SQLITE_DROP_TEMP_INDEX");
break;
case SQLITE_DROP_TEMP_TABLE:
s = _T("SQLITE_DROP_TEMP_TABLE");
break;
case SQLITE_DROP_TEMP_TRIGGER:
s = _T("SQLITE_DROP_TEMP_TRIGGER");
break;
case SQLITE_DROP_TEMP_VIEW:
s = _T("SQLITE_DROP_TEMP_VIEW");
break;
case SQLITE_DROP_TRIGGER:
s = _T("SQLITE_DROP_TRIGGER");
break;
case SQLITE_DROP_VIEW:
s = _T("SQLITE_DROP_VIEW");
break;
case SQLITE_INSERT:
s = _T("SQLITE_INSERT");
break;
case SQLITE_PRAGMA:
s = _T("SQLITE_PRAGMA");
break;
case SQLITE_READ:
s = _T("SQLITE_READ");
break;
case SQLITE_SELECT:
s = _T("SQLITE_SELECT");
break;
case SQLITE_TRANSACTION:
s = _T("SQLITE_TRANSACTION");
break;
case SQLITE_UPDATE:
s = _T("SQLITE_UPDATE");
break;
case SQLITE_ATTACH:
s = _T("SQLITE_ATTACH");
break;
case SQLITE_DETACH:
s = _T("SQLITE_DETACH");
break;
default:
s = _T("Unknown?");
}
return s;
}
and make this change:
Code: Select all
- cout << "AUTH: " << type << ","
+ cout << "AUTH: " << (const char*) ConvertAuthToString(type).mb_str() << ","
Another suggestion: when you need to break backwards compatibility consider changing this:
Code: Select all
- virtual int Authorize(int type, wxString& arg1, wxString& arg2, wxString& arg3, wxString& arg4) = 0;
+ virtual wxAuthorizationResult Authorize(wxAuthorizationCode type, const wxString& arg1, const wxString& arg2, const wxString& arg3, const wxString& arg4) = 0;
Since the sqlite arguments are const char* and you already have enums for the type and return code. Perhaps you could mention it in the documentation until it is changed?
Thanks for all your effort!