since g_errors are global constanst, maybe use all upper case to signal that they are constants.

Do we need the g_  and e_ prefix ?

Maybe just

ERROR.OK
ERROR.DOWNLOAD

g_errors.E_OK does not make to much sense for me.

maybe

RESULT.OK
RESULT.FAILURE
RESULT.DOWNLOAD_FAILURE