[haiku-commits] r40508 - in haiku/trunk: headers/os/package/hpkg headers/private/package/hpkg src/bin/package_repo src/kits/package/hpkg

  • From: zooey@xxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 15 Feb 2011 13:48:02 +0100 (CET)

Author: zooey
Date: 2011-02-15 13:48:02 +0100 (Tue, 15 Feb 2011)
New Revision: 40508
Changeset: http://dev.haiku-os.org/changeset/40508

Modified:
   haiku/trunk/headers/os/package/hpkg/RepositoryContentHandler.h
   haiku/trunk/headers/os/package/hpkg/RepositoryReader.h
   haiku/trunk/headers/private/package/hpkg/RepositoryReaderImpl.h
   haiku/trunk/src/bin/package_repo/command_list.cpp
   haiku/trunk/src/kits/package/hpkg/RepositoryReader.cpp
   haiku/trunk/src/kits/package/hpkg/RepositoryReaderImpl.cpp
Log:
* add listing of repository attributes to 'package_repo list'


Modified: haiku/trunk/headers/os/package/hpkg/RepositoryContentHandler.h
===================================================================
--- haiku/trunk/headers/os/package/hpkg/RepositoryContentHandler.h      
2011-02-15 11:58:00 UTC (rev 40507)
+++ haiku/trunk/headers/os/package/hpkg/RepositoryContentHandler.h      
2011-02-15 12:48:02 UTC (rev 40508)
@@ -8,27 +8,22 @@
 
 #include <SupportDefs.h>
 
+#include <package/hpkg/PackageContentHandler.h>
 
+
 namespace BPackageKit {
 
 
-class BPackageInfo;
 class BRepositoryInfo;
 
 
 namespace BHPKG {
 
 
-class BRepositoryContentHandler {
+class BRepositoryContentHandler : public BPackageContentHandler {
 public:
-       virtual                                         
~BRepositoryContentHandler();
-
        virtual status_t                        HandleRepositoryInfo(
                                                                        const 
BRepositoryInfo& info) = 0;
-       virtual status_t                        HandlePackage(const 
BPackageInfo& info) = 0;
-       virtual status_t                        HandlePackagesDone() = 0;
-
-       virtual void                            HandleErrorOccurred() = 0;
 };
 
 

Modified: haiku/trunk/headers/os/package/hpkg/RepositoryReader.h
===================================================================
--- haiku/trunk/headers/os/package/hpkg/RepositoryReader.h      2011-02-15 
11:58:00 UTC (rev 40507)
+++ haiku/trunk/headers/os/package/hpkg/RepositoryReader.h      2011-02-15 
12:48:02 UTC (rev 40508)
@@ -20,7 +20,7 @@
 using BPrivate::RepositoryReaderImpl;
 
 class BErrorOutput;
-class BPackageContentHandler;
+class BRepositoryContentHandler;
 
 
 class BRepositoryReader {
@@ -30,7 +30,7 @@
 
                        status_t                        Init(const char* 
fileName);
                        status_t                        ParseContent(
-                                                                       
BPackageContentHandler* contentHandler);
+                                                                       
BRepositoryContentHandler* contentHandler);
 
 private:
                        RepositoryReaderImpl*   fImpl;

Modified: haiku/trunk/headers/private/package/hpkg/RepositoryReaderImpl.h
===================================================================
--- haiku/trunk/headers/private/package/hpkg/RepositoryReaderImpl.h     
2011-02-15 11:58:00 UTC (rev 40507)
+++ haiku/trunk/headers/private/package/hpkg/RepositoryReaderImpl.h     
2011-02-15 12:48:02 UTC (rev 40508)
@@ -16,6 +16,9 @@
 namespace BHPKG {
 
 
+class BRepositoryContentHandler;
+
+
 namespace BPrivate {
 
 
@@ -33,7 +36,7 @@
                                                                        
BRepositoryInfo* _repositoryInfo) const;
 
                        status_t                        ParseContent(
-                                                                       
BPackageContentHandler* contentHandler);
+                                                                       
BRepositoryContentHandler* contentHandler);
 
 private:
                        struct RootAttributeHandler;

Modified: haiku/trunk/src/bin/package_repo/command_list.cpp
===================================================================
--- haiku/trunk/src/bin/package_repo/command_list.cpp   2011-02-15 11:58:00 UTC 
(rev 40507)
+++ haiku/trunk/src/bin/package_repo/command_list.cpp   2011-02-15 12:48:02 UTC 
(rev 40508)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2009, Ingo Weinhold, ingo_weinhold@xxxxxxx
+ * Copyright 2011, Oliver Tappe <zooey@xxxxxxxxxxxxxxx>
  * Distributed under the terms of the MIT License.
  */
 
@@ -11,10 +11,9 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include <package/hpkg/PackageContentHandler.h>
 #include <package/hpkg/PackageInfoAttributeValue.h>
+#include <package/hpkg/RepositoryContentHandler.h>
 #include <package/hpkg/RepositoryReader.h>
-
 #include <package/PackageInfo.h>
 #include <package/RepositoryInfo.h>
 
@@ -25,7 +24,7 @@
 using namespace BPackageKit::BHPKG;
 using namespace BPackageKit;
 
-struct RepositoryContentListHandler : BPackageContentHandler {
+struct RepositoryContentListHandler : BRepositoryContentHandler {
        RepositoryContentListHandler(bool verbose)
                :
                fLevel(0),
@@ -195,6 +194,26 @@
                return B_OK;
        }
 
+       virtual status_t HandleRepositoryInfo(const BRepositoryInfo& 
repositoryInfo)
+       {
+               printf("repository-info:\n");
+               printf("\tname: %s\n", repositoryInfo.Name().String());
+               printf("\tsummary: %s\n", repositoryInfo.Summary().String());
+               printf("\turl: %s\n", 
repositoryInfo.OriginalBaseURL().String());
+               printf("\tvendor: %s\n", repositoryInfo.Vendor().String());
+               printf("\tpriority: %u\n", repositoryInfo.Priority());
+               printf("\tarchitecture: %s\n",
+                       
BPackageInfo::kArchitectureNames[repositoryInfo.Architecture()]);
+               const BObjectList<BString> licenseNames = 
repositoryInfo.LicenseNames();
+               if (!licenseNames.IsEmpty()) {
+                       printf("\tlicenses:\n");
+                       for (int i = 0; i < licenseNames.CountItems(); ++i)
+                               printf("\t\t%s\n", 
licenseNames.ItemAt(i)->String());
+               }
+
+               return B_OK;
+       }
+
        virtual void HandleErrorOccurred()
        {
        }

Modified: haiku/trunk/src/kits/package/hpkg/RepositoryReader.cpp
===================================================================
--- haiku/trunk/src/kits/package/hpkg/RepositoryReader.cpp      2011-02-15 
11:58:00 UTC (rev 40507)
+++ haiku/trunk/src/kits/package/hpkg/RepositoryReader.cpp      2011-02-15 
12:48:02 UTC (rev 40508)
@@ -9,7 +9,7 @@
 #include <new>
 
 #include <package/hpkg/ErrorOutput.h>
-#include <package/hpkg/PackageContentHandler.h>
+#include <package/hpkg/RepositoryContentHandler.h>
 #include <package/hpkg/RepositoryReaderImpl.h>
 
 
@@ -42,7 +42,7 @@
 
 
 status_t
-BRepositoryReader::ParseContent(BPackageContentHandler* contentHandler)
+BRepositoryReader::ParseContent(BRepositoryContentHandler* contentHandler)
 {
        if (fImpl == NULL)
                return B_NO_INIT;

Modified: haiku/trunk/src/kits/package/hpkg/RepositoryReaderImpl.cpp
===================================================================
--- haiku/trunk/src/kits/package/hpkg/RepositoryReaderImpl.cpp  2011-02-15 
11:58:00 UTC (rev 40507)
+++ haiku/trunk/src/kits/package/hpkg/RepositoryReaderImpl.cpp  2011-02-15 
12:48:02 UTC (rev 40508)
@@ -18,11 +18,11 @@
 #include <ByteOrder.h>
 #include <Message.h>
 
+#include <package/hpkg/ErrorOutput.h>
 #include <package/hpkg/HPKGDefsPrivate.h>
+#include <package/hpkg/RepositoryContentHandler.h>
 
-#include <package/hpkg/ErrorOutput.h>
 
-
 namespace BPackageKit {
 
 namespace BHPKG {
@@ -252,11 +252,14 @@
 
 
 status_t
-RepositoryReaderImpl::ParseContent(BPackageContentHandler* contentHandler)
+RepositoryReaderImpl::ParseContent(BRepositoryContentHandler* contentHandler)
 {
        AttributeHandlerContext context(ErrorOutput(), contentHandler);
        PackageAttributeHandler rootAttributeHandler;
-       return ParsePackageAttributesSection(&context, &rootAttributeHandler);
+       status_t result = contentHandler->HandleRepositoryInfo(fRepositoryInfo);
+       if (result == B_OK)
+               result = ParsePackageAttributesSection(&context, 
&rootAttributeHandler);
+       return result;
 }
 
 


Other related posts:

  • » [haiku-commits] r40508 - in haiku/trunk: headers/os/package/hpkg headers/private/package/hpkg src/bin/package_repo src/kits/package/hpkg - zooey