Archicad 28 C++ API
Loading...
Searching...
No Matches
API Infrastructure

General infrastructure-level components of the API. More...

Classes

class  ACAPI::Impl::v1::AbstractFactory
 AbstractFactory is responsible for creating the implementation. You can make your own factory to use it in unit tests. More...
 
class  ACAPI::Impl::v1::FactoryRegistry
 FactoryRegistry own the registered factory. Only one factory can be registered at the same time. Use this to register your mock factory when you're unit testing your code. More...
 
class  ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase
 Constructs an object of the ObjectImpl class. More...
 
class  ACAPI::Impl::ObjectImpl
 ObjectImpl is the base class for all the implementation classes. More...
 
struct  ACAPI::Error
 Error type for ACAPI::Result containing an error message and an error code. More...
 
class  ACAPI::Result< T, E >
 Result is the standard return type of API functions. More...
 
class  ACAPI::v1::Object
 A base class for all ACAPI objects. Purely technical. More...
 
class  ACAPI::v1::UniqueID
 A unique identifier for API objects. It contains the GUID of the element and the Token of the AddOn which instantiated the element. More...
 
struct  API_Guid
 Represents a GS::Guid in the API layer. More...
 
struct  NullValueType
 Represents NullValueType in the API layer. More...
 
struct  APIVariant< Types >
 Represents a variant in the API layer. More...
 
struct  APIOptional< T >
 Represents an optional in the API layer. More...
 

Functions

virtual std::shared_ptr< LicenseInfo::Impl::ProductVersionInfoImplBaseACAPI::Impl::v1::AbstractFactory::CreateLicenseInfoProductVersionInfoImpl (const API_Token &) const
 Creates an object of the ProductVersionInfoImplBase that's used by the ProductVersionInfo.
 
void ACAPI::Impl::v1::FactoryRegistry::RegisterFactory (std::unique_ptr< AbstractFactory > pFactory)
 Registers a new factory to the FactoryRegistry. The given factory overrides the previous one.
 
void ACAPI::Impl::v1::FactoryRegistry::UnregisterFactory ()
 Unregisters the current factory.
 
bool ACAPI::Impl::v1::FactoryRegistry::IsFactoryRegistered () const
 You can check that there is already a factory registered or not.
 
const AbstractFactoryACAPI::Impl::v1::FactoryRegistry::GetFactory () const
 You can get the registered factory.
 
static FactoryRegistryACAPI::Impl::v1::FactoryRegistry::GetInstance ()
 You can get the registered factory.
 
 ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase::ProductVersionInfoImplBase (const API_Token &token)
 Constructs an object of the ProductVersionInfoImplBase class with the given token.
 
virtual GS::UniString ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase::GetProductFamilyId () const
 Default implementation of the GetProductFamilyId.
 
virtual GS::UniString ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase::GetGSLanguageCode () const
 Default implementation of the GetGSLanguageCode.
 
virtual GS::UniString ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase::GetVersionString () const
 Default implementation of the GetVersionString.
 
virtual Int32 ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase::GetVersionNum1 () const
 Default implementation of the GetVersioNum1.
 
virtual Int32 ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase::GetVersionNum2 () const
 Default implementation of the GetVersioNum2.
 
virtual Int32 ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase::GetVersionNum3 () const
 Default implementation of the GetVersioNum3.
 
virtual Int32 ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase::GetBuildNum () const
 Default implementation of the GetBuildNum.
 
 ACAPI::Impl::ObjectImpl::ObjectImpl (const API_Token &token)
 Constructs an object of the ObjectImpl class.
 
const API_TokenACAPI::Impl::ObjectImpl::GetToken () const
 You can get the token that's used by the implementation.
 
API_Guid GenerateAPIGuid ()
 
constexpr bool operator== (NullValueType, NullValueType)
 compares NullValueTyp in the API layer.
 

Variables

constexpr API_Guid APINULLGuid = {}
 Represents an empty API guid.
 

Detailed Description

General infrastructure-level components of the API.

Function Documentation

◆ CreateLicenseInfoProductVersionInfoImpl()

virtual std::shared_ptr< LicenseInfo::Impl::ProductVersionInfoImplBase > ACAPI::Impl::v1::AbstractFactory::CreateLicenseInfoProductVersionInfoImpl ( const API_Token ) const
virtual

Creates an object of the ProductVersionInfoImplBase that's used by the ProductVersionInfo.

Since
Archicad 28
Returns
The ProductVersionInfoImplBase created by the registered factory.

◆ GenerateAPIGuid()

API_Guid GenerateAPIGuid ( )
inline
Returns
Generating an API_Guid

◆ GetBuildNum()

virtual Int32 ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase::GetBuildNum ( ) const
virtual

Default implementation of the GetBuildNum.

Since
Archicad 28
Returns
Returns zero.

◆ GetFactory()

const AbstractFactory & ACAPI::Impl::v1::FactoryRegistry::GetFactory ( ) const

You can get the registered factory.

Since
Archicad 28
Returns
Returns the registered factory.

◆ GetGSLanguageCode()

virtual GS::UniString ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase::GetGSLanguageCode ( ) const
virtual

Default implementation of the GetGSLanguageCode.

Since
Archicad 28
Returns
Returns an empty unistring.

◆ GetInstance()

static FactoryRegistry & ACAPI::Impl::v1::FactoryRegistry::GetInstance ( )
static

You can get the registered factory.

Since
Archicad 28
Returns
Returns the registered factory.

◆ GetProductFamilyId()

virtual GS::UniString ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase::GetProductFamilyId ( ) const
virtual

Default implementation of the GetProductFamilyId.

Since
Archicad 28
Returns
Returns an empty unistring.

◆ GetToken()

const API_Token & ACAPI::Impl::ObjectImpl::GetToken ( ) const
inline

You can get the token that's used by the implementation.

Since
Archicad 28
Returns
Returns the token as API_Token used by the implementation.

◆ GetVersionNum1()

virtual Int32 ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase::GetVersionNum1 ( ) const
virtual

Default implementation of the GetVersioNum1.

Since
Archicad 28
Returns
Returns zero.

◆ GetVersionNum2()

virtual Int32 ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase::GetVersionNum2 ( ) const
virtual

Default implementation of the GetVersioNum2.

Since
Archicad 28
Returns
Returns zero.

◆ GetVersionNum3()

virtual Int32 ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase::GetVersionNum3 ( ) const
virtual

Default implementation of the GetVersioNum3.

Since
Archicad 28
Returns
Returns zero.

◆ GetVersionString()

virtual GS::UniString ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase::GetVersionString ( ) const
virtual

Default implementation of the GetVersionString.

Since
Archicad 28
Returns
Returns an empty unistring.

◆ IsFactoryRegistered()

bool ACAPI::Impl::v1::FactoryRegistry::IsFactoryRegistered ( ) const

You can check that there is already a factory registered or not.

Since
Archicad 28
Returns
Returns true if there is a factory already registered.

◆ ObjectImpl()

ACAPI::Impl::ObjectImpl::ObjectImpl ( const API_Token token)

Constructs an object of the ObjectImpl class.

Since
Archicad 28
Parameters
tokenThe token used by the implementation.

◆ operator==()

constexpr bool operator== ( NullValueType  ,
NullValueType   
)
constexpr

compares NullValueTyp in the API layer.

Since
Archicad 27
Returns
Returns true.

◆ ProductVersionInfoImplBase()

ACAPI::LicenseInfo::Impl::ProductVersionInfoImplBase::ProductVersionInfoImplBase ( const API_Token token)

Constructs an object of the ProductVersionInfoImplBase class with the given token.

Since
Archicad 28
Parameters
tokenThe token used by the implementation.

◆ RegisterFactory()

void ACAPI::Impl::v1::FactoryRegistry::RegisterFactory ( std::unique_ptr< AbstractFactory pFactory)

Registers a new factory to the FactoryRegistry. The given factory overrides the previous one.

Since
Archicad 28
Parameters
pFactoryThe given factory to be registered.

◆ UnregisterFactory()

void ACAPI::Impl::v1::FactoryRegistry::UnregisterFactory ( )

Unregisters the current factory.

Since
Archicad 28