Adding TurboFloat functionality

I've been using the TurboActivate library and it's working well! Now, I need to add TurboFloat functionality to my app. I understand that TurboFloat comes in two parts: the daemon, and the lib. Can I simply include both the TurboFloat and TurboActivate headers in my app's code without having to change the code that already exists for running TurboActivate functions? Or, do I need to rip out everything I've done with TurboActivate and start over with TurboFloat?

Thanks,Arie

Hey Arie,

Yes, you can use TurboActivate and TurboFloat together in your app. There will be no conflicts. Obviously you'll want to use one or the other based on some condition (like if the customer is running on a Virtual machine, then use TurboFloat, otherwise use TurboActivate).

Does that make sense?

Yes, makes sense. What is the easiest / quickest way to detect if the user is running the app on a VM / Cloud Server? I haven't gone through the TurboFloat code quite yet, but are the Activate, IsGenuine, IsGenuineEx call the same as with TurboFloat? I've read through the docs online for applying the TurboFloat, but is adding TurboFloat functionality vastly different from TurboActivate?

Thanks,Arie

Yes, makes sense. What is the easiest / quickest way to detect if the user is running the app on a VM / Cloud Server?

We actually cover this in Licensing from inside a virtual machine or hypervisor; Step 2. Use floating licenses (TurboFloat):

One way to do this is to use the UseTrial(TA_DISALLOW_VM) function. And if it returns TA_E_IN_VM then you can request a license lease from the TurboFloat Server (read more about how to do that in "Using TurboFloat").
I haven't gone through the TurboFloat code quite yet, but are the Activate, IsGenuine, IsGenuineEx call the same as with TurboFloat?

No, but the example code and Using TurboFloat articles will help you get started.

I've read through the docs online for applying the TurboFloat, but is adding TurboFloat functionality vastly different from TurboActivate?

They have different functions, and they operate differently, but no, they are not vastly different. Reading the articles and looking at the example code will be enough to get you up and running.