Hello, Thanks alot for helping me. I have basically understand what you have provided me, what next step shall I do to start in this project? Thanks in advance.
On Mon, 9 Nov 2020, 3:40 pm Aleix Pol, <aleix...@kde.org> wrote: > On Fri, Nov 6, 2020 at 7:37 PM Mariam Fahmy <mariamfahm...@gmail.com> > wrote: > > > > Hello, > > Thanks alot for your advice. > > I have installed the project locally and I start discovering how > backends work with codebase. > > I have understood but I am missing things. > > After doing some research and gathering information, here's what I can't > clearly understand: (Sorry if questions are little bit silly) > > Hi Mariam, > No need to worry, feel free to ask away. > > > 1- what does it mean by resource? > > When I searched about it, I found that resources may be data required by > user or requests from clients, is it right ? > > You can see here the class that defines a resource, should help you > see what it represents: > > https://invent.kde.org/plasma/discover/-/blob/master/libdiscover/resources/AbstractResource.h > > In general, it's an asset: be it an application, a wallpaper or > anything that can be listed and installed. > > > 2- to create a new resources backend we need to implement two classes, > > The first class is the basic class which saves all created resources and > install & remove application or cancel transactions. > > The second class, I didn't understand it's functionality, I found that > it is related to plugins but didn't understand it. > > The second important one is the resource I just mentioned above. > Please explain a bit more what you don't understand. > > > 3-Filters in the base class: its target to filter the new requested > resources? > > filters we just use when searching, to see what's being searched. > In the case of this project it shouldn't be very important, since we > will just be listing a system image. > > > 4- for each new resource backend, it should include all the methods of > base class, right? > > As these methods acts as properties for each new resource. > > You need to implement all the abstract (i.e. virtual = 0) methods. The > rest of virtuals you can override if you want to give it a different > functionality. > > > 5- I have searched about plugins, but I didn't fully understand it, > plugins enable programmers to update host program while keeping the user > within the program's environment, but I can't understand what is the role > of plugins here if we receive new requests and make new resources? > > It is meant that while creating a new resource, we need plugin in order > to keep the user with the program's environment without altering it or > affecting it while creating new resources? > > It's just a way to build the applications so the whole project doesn't > depend on a specific technology. You can see the ones we implement > right now here: > https://invent.kde.org/plasma/discover/-/tree/master/libdiscover/backends > > This project should be adding a new OSTreeRPMBackend folder in here > that will only take care of this one implementation. > > I hope this helps, > Aleix >