00001
00002
00003
00004
00005 #ifndef SUPPORT_IUUID_H
00006 #define SUPPORT_IUUID_H
00007
00008 #include <support/IInterface.h>
00009 #include <support/Binder.h>
00010 #include <support/Context.h>
00011 #include <support/String.h>
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00030
00031
00032 #if _SUPPORTS_NAMESPACE
00033 namespace palmos {
00034 namespace support {
00035 #endif
00036
00038
00039 class IUuid : public IInterface
00040 {
00041 public:
00042 B_DECLARE_META_INTERFACE(Uuid)
00043
00044
00045
00046
00047
00048 virtual SValue Create() = 0;
00049
00050
00051 status_t LinkUuid(const sptr<IBinder>& to, const SValue& mappings, uint32_t flags = 0)
00052 {
00053 return AsBinder()->Link(to, mappings, flags);
00054 }
00055 status_t UnlinkUuid(const sptr<IBinder>& to, const SValue& mappings, uint32_t flags = 0)
00056 {
00057 return AsBinder()->Unlink(to, mappings, flags);
00058 }
00059
00060 protected:
00061 IUuid() { }
00062 virtual ~IUuid();
00063
00064 private:
00065
00066 IUuid(const IUuid& o);
00067 IUuid& operator=(const IUuid& o);
00068 };
00069
00070
00071
00072
00073 class BnUuid : public IUuid, public BBinder
00074 {
00075 public:
00076 virtual SValue Inspect(const sptr<IBinder>& caller, const SValue& which, uint32_t flags = 0);
00077 virtual sptr<IInterface> InterfaceFor(const SValue& descriptor, uint32_t flags = 0);
00078
00079 protected:
00080 BnUuid();
00081 BnUuid(const SContext& context);
00082 virtual ~BnUuid();
00083
00084 virtual sptr<IBinder> AsBinderImpl();
00085 virtual sptr<const IBinder> AsBinderImpl() const;
00086
00087
00088 virtual status_t HandleEffect(const SValue &, const SValue &, const SValue &, SValue *);
00089 virtual status_t Transact(uint32_t code, SParcel& data, SParcel* reply, uint32_t flags);
00090
00091 private:
00092 BnUuid(const BnUuid& o);
00093 BnUuid& operator=(const BnUuid& o);
00094 };
00095
00096
00097 #if _SUPPORTS_NAMESPACE
00098 } }
00099 #endif
00100
00101
00102
00103
00104 #endif // SUPPORT_IUUID_H
00105