00001 #ifndef Impala_Basis_QuidObj_h
00002 #define Impala_Basis_QuidObj_h
00003
00004 #include "Basis/String.h"
00005 #include "Basis/Quid.h"
00006
00007 namespace Impala
00008 {
00009
00010
00011 class QuidObj
00012 {
00013 public:
00014
00015 QuidObj()
00016 {
00017 mQuid = 0;
00018 }
00019
00020 QuidObj(Quid q)
00021 {
00022 mQuid = q;
00023 }
00024
00025 QuidObj(int qClass, int qSet, int qObject, int id)
00026 {
00027 mQuid = MakeQuid(qClass, qSet, qObject, id);
00028 }
00029
00030 bool
00031 Valid() const
00032 {
00033 return QuidValid(mQuid);
00034 }
00035
00036 Quid
00037 GetQuid() const
00038 {
00039 return mQuid;
00040 }
00041
00042 int
00043 Class() const
00044 {
00045 return QuidClass(mQuid);
00046 }
00047
00048 int
00049 Set() const
00050 {
00051 return QuidSet(mQuid);
00052 }
00053
00054 int
00055 Object() const
00056 {
00057 return QuidObject(mQuid);
00058 }
00059
00060 int
00061 Id() const
00062 {
00063 return QuidId(mQuid);
00064 }
00065
00066 String
00067 ToString() const
00068 {
00069 return "Q(" + MakeString(Class()) + "," + MakeString(Set())
00070 + "," + MakeString(Object()) + "," + MakeString(Id())
00071 + ")";
00072 }
00073
00074 void
00075 Dump() const
00076 {
00077 std::cout << ToString() << std::endl;
00078 }
00079
00080 private:
00081
00082 Quid mQuid;
00083 };
00084
00085 std::ostream&
00086 operator<< (std::ostream& os, const QuidObj& q)
00087 {
00088 os << q.ToString();
00089 return os;
00090 }
00091
00092 }
00093
00094 #endif