00001 #ifndef EDG_WORKLOAD_COMMON_CLIENT_JOBADEXCEPTIONS_H
00002 #define EDG_WORKLOAD_COMMON_CLIENT_JOBADEXCEPTIONS_H
00003
00004
00005
00006
00007
00008
00009 #include "edg/workload/common/utilities/Exceptions.h"
00010 COMMON_NAMESPACE_BEGIN{
00011 namespace requestad{
00020 class JobAdException : public edg::workload::common::utilities::Exception {
00021 protected:
00025 JobAdException (std::string file,
00026 int line,
00027 std::string method,
00028 int code,
00029 std::string exception_name) ;
00030 virtual ~JobAdException() throw () {};
00031 std::string what() throw();
00032 protected:
00033 std::string error_description ;
00034
00035 };
00039 class AdClassAdException : public JobAdException {
00040 public:
00041 AdClassAdException::AdClassAdException (std::string file,
00042 int line,
00043 std::string method,
00044 int code ,
00045 std::string method_name ,
00046 std::string error_description = "");
00047 };
00048
00049
00050
00054 class AdSyntaxException : public JobAdException {
00055 public:
00056 AdSyntaxException::AdSyntaxException (std::string file,
00057 int line,
00058 std::string method,
00059 int code ,
00060 std::string attr_name );
00061 };
00062
00063
00064
00068 class AdSemanticException : public JobAdException {
00069 public:
00073 AdSemanticException::AdSemanticException (std::string file,
00074 int line,
00075 std::string method,
00076 int code,
00077 std::string exception_name );
00078 };
00079
00083 class AdSemanticMandatoryException : public AdSemanticException {
00084 public:
00088 AdSemanticMandatoryException (std::string file,
00089 int line,
00090 std::string method,
00091 int code,
00092 std::string attr_name );
00093 };
00094
00095
00099 class AdSemanticPathException : public AdSemanticException {
00100 public:
00104 AdSemanticPathException (std::string file,
00105 int line,
00106 std::string method,
00107 int code,
00108 std::string attr_name,
00109 std::string path_name );
00110 };
00111
00115 class AdSemanticGroupException : public AdSemanticException {
00116 public:
00120 AdSemanticGroupException (std::string file,
00121 int line,
00122 std::string method,
00123 int code,
00124 std::string attrs_name );
00125 };
00126
00130 class AdAttributeException : public JobAdException {
00131 public:
00132 AdAttributeException::AdAttributeException (std::string file,
00133 int line,
00134 std::string method,
00135 int code,
00136 std::string exception_name );
00137 };
00138
00142 class AdMismatchException : public AdAttributeException {
00143 public:
00147 AdMismatchException (std::string file,
00148 int line,
00149 std::string method,
00150 int code,
00151 std::string attr_name,
00152 std::string error_description = "" );
00153
00154 };
00155
00159 class AdFormatException : public AdAttributeException {
00160 public:
00164 AdFormatException(std::string file,
00165 int line,
00166 std::string method,
00167 int code,
00168 std::string attr_name,
00169 std::string format ="");
00170 };
00174 class AdListException : public AdAttributeException {
00175 public:
00179 AdListException(std::string file,
00180 int line,
00181 std::string method,
00182 int code,
00183 std::string attr_name );
00184
00185 };
00186
00187
00191 class AdEmptyException : public AdAttributeException {
00192 public:
00196 AdEmptyException(std::string file,
00197 int line,
00198 std::string method,
00199 int code,
00200 std::string attr_name );
00201 };
00202
00203
00204 }
00205 } COMMON_NAMESPACE_END
00206
00207 #endif