IUuid.h

Go to the documentation of this file.
00001 /*========================================================== */ 
00002 // header file automatically generated by PIDGEN - DO NOT MODIFY
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  * Copyright (c) 2005 Palmsource, Inc.
00015  * 
00016  * This software is licensed as described in the file LICENSE, which
00017  * you should have received as part of this distribution. The terms
00018  * are also available at http://www.openbinder.org/license.html.
00019  * 
00020  * This software consists of voluntary contributions made by many
00021  * individuals. For the exact contribution history, see the revision
00022  * history and logs, available at http://www.openbinder.org
00023  */
00030 /* ============= Interface Class Declarations =========================== */
00031 
00032 #if _SUPPORTS_NAMESPACE
00033 namespace palmos {
00034 namespace support {
00035 #endif /* _SUPPORTS_NAMESPACE */
00036 
00038 
00039 class IUuid : public IInterface
00040 {
00041 public:
00042     B_DECLARE_META_INTERFACE(Uuid)
00043     
00044     
00045     /* ------- Methods ------------------------ */
00046     
00047     
00048     virtual SValue                  Create() = 0;
00049     
00050     /* ------- inline helpers ------------------------- */
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     /* ------- copy/assignment protection ------------------ */
00066                                     IUuid(const IUuid& o);
00067             IUuid&                  operator=(const IUuid& o);
00068 };
00069 
00070 
00071 /* ============= Local Class Declarations =============================== */
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     /* ------- Marshalling Details ------------ */
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 } } // namespace palmos::support
00099 #endif /* _SUPPORTS_NAMESPACE */
00100 
00101 
00102 // namespace palmos::support
00103 
00104 #endif // SUPPORT_IUUID_H
00105