Wednesday, November 25, 2009

Mira Client Utilities

I just finished laying the framework for Utilities (Plugins) on the Client.

The design is more Object Oriented and cleaner than it is for the server thanks to QPluginLoader.

This is an example of what a plugin looks like:


#include "UtilityInterface.h"
#include "GuiInterface.h"
#include "NetworkInterface.h"

class FilesUtility : public QObject, public UtilityInterface, public GuiInterface, public NetworkInterface
{
    Q_OBJECT
    Q_INTERFACES(UtilityInterface GuiInterface NetworkInterface)

    public:
        FilesUtility();
        ~FilesUtility();

        bool initialize_gui(QLayout* qt_layout);
        bool receive_message(const std::string& workplace_name, const std::string& message);
        bool load_workspace(const std::string& workspace_name);
};


Basically you have to implement interfaces in order for Mira core to be able to interact with the Plugin.

There are some interfaces that are going to be required, and others are going to be optional.

With this design it is also really easy for utilities to communicate with each other. All that is necessary is for utilities to share interfaces, request the other utility's object, and just use the interface. This is not implemented yet, but it's fairly easy to do.

All that's needed now is a good library for plugins to use to interact with Mira core. This will probably be an ever-evolving library, at least until we get to release our first version of Mira.

After I get the library started, I will propose a merge with trunk. But for now you can follow this code in my Launchpad branch.

3 comments:

Unknown said...

This is excellent work so far, Alan. Great job with the design. Keep it up!

Alan Alvarez said...

Thanks Max.

I think we're heading to 0.1 here soon.

I think at the latest, by mid January we should be able to release 0.1 with more than the features expected.

hnn8kalf8w said...

This recognized as|is called|is named} ‘holding time’ and may range from milliseconds to minutes relying on sort of|the type of} thermoplastic and complexity of the part. This holding time is essential to making sure Bath Sheets that the plastic packs out the tool and is shaped appropriately. To begin the method, raw pellets of the chosen thermoplastics are fed into the hopper at the prime of the machine. As the screw turns, these pellets are fed gradually into the barrel of the machine. The turning of the screw and the warmth from the barrel gradually heat and melt the thermoplastic until it is molten. The technology used right now type of|is type of} just like the technologies used up to now.