Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Qt Solutions archive, is it safe to use them for new projects, are there replacement Classes?
QtWS25 Last Chance

Qt Solutions archive, is it safe to use them for new projects, are there replacement Classes?

Scheduled Pinned Locked Moved General and Desktop
9 Posts 5 Posters 6.8k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    J Offline
    jonygon
    wrote on last edited by
    #1

    First of all, I'm quite new to Qt. About 1 month of learning the framework, so sorry if the questions are too vague.
    I'm planning to use Qt as the framework to support the migration of a legacy system, that is non-unicode and WIN32 API calls exclusively.
    So the benefits are many I know, so right now I'm trying to find replacement for the very basic functionality the WIN32 API offered (non-gui) like, files, threads, networking, serial communication, etc.
    The first thing I haven't found a direct replacement is for File Locking, which is essential as the legacy system has a tiny Database engine, and we use the Locking mechanisms of "LockFile" win32API Call where we could even lock certain bytes of a file to enforce different isolation levels.
    Searching the web, I found references to the Qt Class "QtLockedFile". But now it is not included in the SDK. So I thought it had been deprecated and something new created, but apparently not. I found it as an add-on called "Qt Solutions archive" ( http://qt.nokia.com/products/qt-addons/solutions-archive/index )
    But then on a blog explaining changes to future Qt versions ( http://labs.qt.nokia.com/2011/05/12/qt-modules-maturity-level-the-list/ ), it is said all this classes are deprecated.

    Can someone tell me if there's a replacement to QtLockedFile and QtService? What would be the best thing to use?, (I need exactly the functionality these classes have). Why were they removed from the SDK?

    Thank you all in advanced for your comments and suggestions

    1 Reply Last reply
    0
    • C Offline
      C Offline
      Chuck Gao
      wrote on last edited by
      #2

      Seems no replacement can use right now. I think you can still use the deprecated solutions/classes. They're deprecated, but the deprecated just mean not maintenance any more ? If so, i think it's safe to use

      Chuck

      1 Reply Last reply
      0
      • G Offline
        G Offline
        giesbert
        wrote on last edited by
        #3

        They work, definitly, but are not enhanced anymore. You just have to check your license (I'm not sure which license agreement they have :-) ).

        AFAIK, QtLockedFile just locks the whole file, not parts of it.

        Nokia Certified Qt Specialist.
        Programming Is Like Sex: One mistake and you have to support it for the rest of your life. (Michael Sinz)

        1 Reply Last reply
        0
        • J Offline
          J Offline
          jonygon
          wrote on last edited by
          #4

          Ok, thanks for the info. It’s strange that if they work correctly they have become deprecated just because they are not enhanced anymore. Actually that is an excellent thing about the WIN32 API, it’s extremely rare anything becomes deprecated. They just make newer API calls ("LockFileEx"), that way they don't break any code (The legacy system I'm trying to port works from Win95 SE, to Win 7, or server editions without changing 1 line of code when a newer windows ver arrives)

          Anyway, the locking of files it’s actually quite important for us, and I think Qt doesn’t support it natively because Linux doesn't provide a reliable API Call for this!!!! (Didn’t know that until know, very new to Linux as well http://0pointer.de/blog/projects/locking.html). It is a very low level requirement. Kind of a "mutex" requirement but for files. Cannot imagine a big system without mutex or locking for that matter.

          So I guess the easiest option is to use the QtLockedFile and if problem arises, compare it to other open source projects that require File locking such as SQLite: http://www.sqlite.org/lockingv3.html

          Does anybody have a better alternative for file locking in multiplatform?

          (IMHO Qt should provide a default file Locking API, and mention its limitation on different platforms, otherwise a lot of people like me have to implement their own broken functionality over and over)

          1 Reply Last reply
          0
          • D Offline
            D Offline
            dfaure
            wrote on last edited by
            #5

            I’m starting to work on a new implementation for Qt-5.1, based on my work on KLockFile in the past.
            The problem with the QtLockedFile implementation, according to my earlier research, is that fcntl(F_SETLK) locks other processes, but not other threads (we might as well handle both…) and it unlocks when just reading the file in the same process (!). http://apenwarr.ca/log/?m=201012#13
            So instead I’m setting out to write a QLockFile class, which does NOT inherit from QFile, but creates a separate lock file.

            David Faure (david.faure@kdab.com)
            KDE/Qt Senior Software Engineer
            KDAB - Qt Experts - Platform-independent software solutions

            1 Reply Last reply
            0
            • J Offline
              J Offline
              jonygon
              wrote on last edited by
              #6

              Well David, that sounds like an interesting project, and probably a lot of people would benefit from it. Let us know your progress, and if we can be of any help :)
              Greetings

              1 Reply Last reply
              0
              • S Offline
                S Offline
                sahumada
                wrote on last edited by
                #7

                Qt Solutions is on Gerrit and some people are contributing to it .. see the activity here https://qt.gitorious.org/qt-solutions/qt-solutions

                Sergio Ahumada

                1 Reply Last reply
                0
                • D Offline
                  D Offline
                  dfaure
                  wrote on last edited by
                  #8

                  You can help by reviewing https://codereview.qt-project.org/46583
                  (and even by contributing a Windows implementation :-)

                  David Faure (david.faure@kdab.com)
                  KDE/Qt Senior Software Engineer
                  KDAB - Qt Experts - Platform-independent software solutions

                  1 Reply Last reply
                  0
                  • D Offline
                    D Offline
                    dfaure
                    wrote on last edited by
                    #9

                    I could use some help with Windows APIs ... Is there a way to check if a process is still running, based on a process ID?
                    I found GetCurrentProcessId(), now if I write this into a file and read it in another process, how can I find out if a process with that ID is still running?
                    (the equivalent of kill(pid, 0) on unix)

                    David Faure (david.faure@kdab.com)
                    KDE/Qt Senior Software Engineer
                    KDAB - Qt Experts - Platform-independent software solutions

                    1 Reply Last reply
                    0

                    • Login

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Categories
                    • Recent
                    • Tags
                    • Popular
                    • Users
                    • Groups
                    • Search
                    • Get Qt Extensions
                    • Unsolved