Setting License Info

This topic describes how to use an AVBlocks license file.

AVBlocks License File

The AVBlocks license file is sent to you via email when you purchase a license. The license file is an XML document that looks similar to this one:

<!-- 
This file contains PrimoSoftware license(s). 
Line breaks and indentation between elements can be edited, 
but any other reformatting may invalidate the license(s). 
-->
<primoSoftware>
  <license version='1.0'>
    <token>abcdefghijklmnlo</token>
    <revision>1</revision>
    <issueDate>2013-05-29</issueDate>
    <expireDate>2015-05-30</expireDate>
    <updateTime>2014-11-02 22:59:08</updateTime>
    <item id='avb-win'>
      <product>avb</product>
    </item>
    <item id='avb-mac'>
      <product>avb</product>
    </item>
    <item id='avb-linux'>
      <product>avb</product>
    </item>
    <item id='avb-linux-debian'>
      <product>avb</product>
    </item>
    <signature>very_very_long_signature_string_here</signature>
  </license>
</primoSoftware>

.NET

You have to pass the XML as a string to Library.SetLicense.

C#

In C#, it is possible to use a string literal, e.g. @"xml goes here":

using System;
using System.Diagnostics;

using PrimoSoftware.AVBlocks;

namespace SetLicense
{
    class Program
    {
        private const string licenseXml = 
            @"
            <!-- 
            This file contains PrimoSoftware license(s). 
            Line breaks and indentation between elements can be edited, 
            but any other reformatting may invalidate the license(s). 
            -->
            <primoSoftware>
              <license version='1.0'>
                <token>abcdefghijklmnlo</token>
                <revision>1</revision>
                <issueDate>2013-05-29</issueDate>
                <expireDate>2015-05-30</expireDate>
                <updateTime>2014-11-02 22:59:08</updateTime>
                <item id='avb-win'>
                  <product>avb</product>
                </item>
                <item id='avb-mac'>
                  <product>avb</product>
                </item>
                <item id='avb-linux'>
                  <product>avb</product>
                </item>
                <item id='avb-linux-debian'>
                  <product>avb</product>
                </item>
                <signature>very_very_long_signature_string_here</signature>
              </license>
            </primoSoftware>
            ";

        static void Main(string[] args)
        {
            Library.Initialize();

            Library.SetLicense(licenseXml);
            Debug.Assert(LicenseStatusFlags.Ready == Library.LicenseStatus);

            Library.Shutdown();
        }
    }
}

Visual Basic

In VB, you can use XElement and XML literals. Note that, in order for this to work, you have to remove the comment from the top of the XML text:

Imports PrimoSoftware.AVBlocks

Class Program

    Private Shared licenseXml As XElement =
            <primoSoftware>
                <license version='1.0'>
                    <token>abcdefghijklmnlo</token>
                    <revision>1</revision>
                    <issueDate>2013-05-29</issueDate>
                    <expireDate>2015-05-30</expireDate>
                    <updateTime>2014-11-02 22:59:08</updateTime>
                    <item id='avb-win'>
                        <product>avb</product>
                    </item>
                    <item id='avb-mac'>
                        <product>avb</product>
                    </item>
                    <item id='avb-linux'>
                        <product>avb</product>
                    </item>
                    <item id='avb-linux-debian'>
                        <product>avb</product>
                    </item>
                    <signature>very_very_long_signature_string_here</signature>
                </license>
            </primoSoftware>

    Public Shared Sub Main()
        Library.Initialize()

        Library.SetLicense(licenseXml.ToString())
        Debug.Assert(LicenseStatusFlags.Ready = Library.LicenseStatus)

        Library.Shutdown()
    End Sub

End Class

C++

In C++, you have to pass the XML as a string to Library::setLicense. You can use a C++11 string literal, e.g. R"xml( xml goes here )xml".

Windows

This code requires Visual Studio 2013.

// SetLicense.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

static const char* licenseXml = R"xml(
    <!-- 
    This file contains PrimoSoftware license(s). 
    Line breaks and indentation between elements can be edited, 
    but any other reformatting may invalidate the license(s). 
    -->
    <primoSoftware>
        <license version='1.0'>
        <token>abcdefghijklmnlo</token>
        <revision>1</revision>
        <issueDate>2013-05-29</issueDate>
        <expireDate>2015-05-30</expireDate>
        <updateTime>2014-11-02 22:59:08</updateTime>
        <item id='avb-win'>
            <product>avb</product>
        </item>
        <item id='avb-mac'>
            <product>avb</product>
        </item>
        <item id='avb-linux'>
            <product>avb</product>
        </item>
        <item id='avb-linux-debian'>
            <product>avb</product>
        </item>
        <signature>very_very_long_signature_string_here</signature>
        </license>
    </primoSoftware>
)xml";

int _tmain(int argc, _TCHAR* argv[])
{
    using namespace primo::license;
    using namespace primo::avblocks;

    Library::initialize();

    Library::setLicense(licenseXml);

    {
        primo::ref<LicenseInfo> licenseInfo(Library::createLicenseInfo());
        assert(LicenseStatusFlags::Ready == licenseInfo->licenseStatus());
    }

    Library::shutdown();

    return 0;
}


Last updated on April 8th, 2017 02:55:54 PM