javacommons/utils/inc/applicationinfo.h
branchRCL_3
changeset 19 04becd199f91
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/utils/inc/applicationinfo.h	Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,101 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  ApplicationInfo is an abstract base class for API implementations,
+*                which allows getting application related static information.
+*
+*/
+
+
+#ifndef APPLICATIONINFO_H
+#define APPLICATIONINFO_H
+
+#include "javaosheaders.h"
+#include "javauid.h"
+
+/**
+ * Available in library: javautils
+ *
+ */
+
+namespace java
+{
+
+namespace runtime
+{
+
+class ApplicationInfo
+{
+
+public:
+    /**
+     * The destructor
+     */
+    OS_IMPORT virtual ~ApplicationInfo();
+
+    /**
+     * Returns an instance of ApplicationInfo class which provides access to
+     * application related static information.
+     * <p>
+     * Note! It is guaranteed that this service is available in MIDP
+     * runtime. Other runtimes may not provide this service.
+     *
+     * @return the ApplicationInfo object, throws java::util::ExceptionBase
+     *         if the service is not avalable.
+     */
+    OS_IMPORT static const ApplicationInfo& getInstance();
+
+    /**
+     * Returns the root path of the application. The root path means an
+     * application specific directory where the different API implementations
+     * are able to write their files. No other applications are able to access
+     * files under the root path.
+     * <p>
+     * API implemetations must not rely that the JAR file(s) or descriptor file
+     * can always be found from the root path, even if they sometimes might be
+     * found.
+     * @return application root path as wstring
+     */
+    virtual const std::wstring& getRootPath() const = 0;
+
+    /**
+     * Returns a unique application identifier.
+     *
+     * @return the Uid of the application.
+     */
+    virtual const java::util::Uid& getUid() const = 0;
+
+
+protected:
+    /**
+     * The constructor. Only derived class is allowed to construct this class.
+     */
+    OS_IMPORT ApplicationInfo();
+
+private: // Methods
+    /**
+     * No copy constructor allowed.
+     */
+    ApplicationInfo(const ApplicationInfo&);
+
+    /**
+     * No Assignment operator allowed.
+     */
+    ApplicationInfo& operator= (const ApplicationInfo&);
+
+};
+
+} // end namespace runtime
+} // end namespace java
+#endif // APPLICATIONINFO_H
+