Defined AccountsDatabase

Filled in methods for Account
Database classes/methods refined
This commit is contained in:
Ralph Wessel
2024-09-04 01:19:12 +01:00
parent bee15b4e77
commit bb451fbc90
12 changed files with 247 additions and 186 deletions
@@ -0,0 +1,50 @@
#include "Active/Database/Storage/SQLiteEngine.h"
#include "Active/Setting/ValueSetting.h"
#include "Active/Setting/Values/StringValue.h"
#include "Speckle/Database/AccountDBase.h"
using namespace active::database;
using namespace active::serialise::json;
using namespace active::setting;
using namespace speckle::record::cred;
using namespace speckle::database;
using namespace speckle::utility;
using AccountsEngine = SQLiteEngine<Account, Account, JSONTransport, active::utility::String, active::utility::String>;
namespace {
enum Fields {
hashID = 0,
contentID,
};
const char* accountsDBaseName = "accounts";
const char* accountsTableName = "objects";
const char* hashFieldName = "hash";
const char* contentFieldName = "content";
}
// template<typename Obj, typename ObjWrapper, typename Transport, typename DocID = utility::Guid, typename ObjID = utility::Guid>
/*--------------------------------------------------------------------
Constructor
path: Path to the database file
--------------------------------------------------------------------*/
AccountDBase::AccountDBase(const active::file::Path& path) : base{
std::make_unique<AccountsEngine>(
path, DBaseSchema{
accountsDBaseName, {
{
accountsTableName, Fields::hashID, Fields::contentID, {
ValueSetting{StringValue{}, hashFieldName},
ValueSetting{StringValue{}, contentFieldName},
}
}
}
}
)
} {
} //AccountDBase::AccountDBase
@@ -0,0 +1,56 @@
#ifndef SPECKLE_DATABASE_ACCOUNT_DBASE
#define SPECKLE_DATABASE_ACCOUNT_DBASE
#include "Active/Database/Storage/SQLiteEngine.h"
#include "Active/Database/Storage/Storage.h"
#include "Active/File/Path.h"
#include "Active/Serialise/JSON/JSONTransport.h"
#include "Speckle/Record/Credentials/Account.h"
#include "Speckle/Utility/String.h"
#include <type_traits>
namespace speckle::database {
/*!
A base class for an addon
*/
class AccountDBase : public active::database::Storage<speckle::record::cred::Account, active::serialise::json::JSONTransport,
active::utility::String, active::utility::String, active::utility::String, active::utility::String> {
public:
// MARK: - Types
using base = active::database::Storage<speckle::record::cred::Account, active::serialise::json::JSONTransport,
active::utility::String, active::utility::String, active::utility::String, active::utility::String>;
using type_identity_t = std::type_identity<active::database::Storage<speckle::record::cred::Account, active::serialise::json::JSONTransport,
active::utility::String, active::utility::String, active::utility::String, active::utility::String>>::type;
// MARK: - Constructors
/*!
Constructor
@param path Path to the database file
*/
AccountDBase(const active::file::Path& path);
/*!
Copy constructor
@param source The object to copy
*/
AccountDBase(const AccountDBase& source) : base{source} {}
/*!
Destructor
*/
~AccountDBase();
// MARK: - Functions (const)
// MARK: - Functions (mutating)
};
}
#endif //SPECKLE_DATABASE_ACCOUNT_DBASE
@@ -6,42 +6,3 @@ using namespace active::serialise;
using namespace speckle::database;
using namespace speckle::utility;
/*--------------------------------------------------------------------
Fill an inventory with the package items
@param inventory The inventory to receive the package items
@return True if the package has added items to the inventory
--------------------------------------------------------------------*/
bool Record::fillInventory(Inventory& inventory) const {
//TODO: Complete
return true;
} //Record::fillInventory
/*--------------------------------------------------------------------
Get the specified cargo
@param item The inventory item to retrieve
@return The requested cargo (nullptr on failure)
--------------------------------------------------------------------*/
Cargo::Unique Record::getCargo(const Inventory::Item& item) const {
//TODO: Complete
return nullptr;
} //Record::getCargo
/*--------------------------------------------------------------------
Set to the default package content
--------------------------------------------------------------------*/
void Record::setDefault() {
//TODO: Complete
} //Record::setDefault
/*--------------------------------------------------------------------
Validate the cargo data
return: True if the data has been validated
--------------------------------------------------------------------*/
bool Record::validate() {
//TODO: Complete
return true;
} //Record::validate
+8 -67
View File
@@ -1,19 +1,21 @@
#ifndef SPECKLE_DATABASE_RECORD
#define SPECKLE_DATABASE_RECORD
#include "Active/Serialise/Package/Package.h"
#include "Speckle/Database/Content/Link.h"
#include "Active/Database/Content/Record.h"
#include "Speckle/Database/Identity/Link.h"
namespace speckle::database {
/*!
Base class for a database record
*/
class Record : public active::serialise::Package, public active::utility::Cloner {
class Record : public active::database::Record<speckle::utility::String, speckle::utility::String, speckle::utility::String> {
public:
// MARK: - Types
using base = active::database::Record<speckle::utility::String, speckle::utility::String, speckle::utility::String>;
///Unique pointer
using Unique = std::unique_ptr<Record>;
///Shared pointer
using Shared = std::shared_ptr<Record>;
@@ -26,81 +28,20 @@ namespace speckle::database {
Constructor
@param ID The record ID
*/
Record(speckle::utility::Guid ID) : m_ID{ID} {}
Record(speckle::utility::String ID) : base{ID} {}
/*!
Destructor
*/
virtual ~Record() {}
// MARK: - Functions (const)
/*!
Get the record ID
@return The record ID
*/
speckle::utility::Guid getID() const { return m_ID; }
/*!
Get the record unique ID
@return The record unique ID
*/
speckle::utility::Guid getUniqueID() const { return m_uniqueID; }
/*!
Get the record index
@return The record index
*/
virtual Index getIndex() const { return Index{m_ID, m_ownerID}; }
/*!
Get the record link
@return The record link
*/
virtual Link getLink() const { return Link{getIndex()}; }
// MARK: - Functions (mutating)
/*!
Set the record ID
@param ID The record ID
*/
void setID(speckle::utility::Guid ID) { m_ID = ID; }
/*!
Set the record unique ID
@param ID The record unique ID
*/
void setUniqueID(speckle::utility::Guid ID) { m_uniqueID = ID; }
// MARK: - Serialisation
/*!
Fill an inventory with the package items
@param inventory The inventory to receive the package items
@return True if the package has added items to the inventory
*/
bool fillInventory(active::serialise::Inventory& inventory) const override;
/*!
Get the specified cargo
@param item The inventory item to retrieve
@return The requested cargo (nullptr on failure)
*/
Cargo::Unique getCargo(const active::serialise::Inventory::Item& item) const override;
/*!
Set to the default package content
*/
void setDefault() override;
/*!
Validate the cargo data
@return True if the data has been validated
*/
bool validate() override;
private:
///The record ID (may not be unique across models)
speckle::utility::Guid m_ID = speckle::utility::Guid{true};
///The record unique ID
speckle::utility::Guid m_uniqueID = speckle::utility::Guid{true};
///The record owner ID (null guid if unspecified)
speckle::utility::Guid m_ownerID;
///The last edit time
active::utility::Time editTime = active::utility::Time{};
};
}
@@ -1,7 +1,8 @@
#ifndef SPECKLE_DATABASE_INDEX
#define SPECKLE_DATABASE_INDEX
#include "Speckle/Utility/Guid.h"
#include "Active/Database/Identity/Link.h"
#include "Speckle/Utility/String.h"
namespace speckle::database {
@@ -12,23 +13,16 @@ namespace speckle::database {
this is typically a guid, for Revit a string and for Vectorworks a handle. Note that this index is not necessarily persistent between
sessions.
*/
class Index : public speckle::utility::Guid {
class Index : public active::database::Index<speckle::utility::String, speckle::utility::String, speckle::utility::String> {
public:
// MARK: - Types
using base = speckle::utility::Guid;
using base = active::database::Index<speckle::utility::String, speckle::utility::String, speckle::utility::String>;
// MARK: - Constructors
using base::base;
Index(speckle::utility::Guid ID, speckle::utility::Guid dbaseID) : base{ID}, databaseID{dbaseID} {}
// MARK: - Public variables
///ID of the source database (not defined in every case, undefined = null guid)
speckle::utility::Guid databaseID;
};
}
@@ -1,6 +1,8 @@
#include "Speckle/Database/Content/Link.h"
#include "Speckle/Database/Identity/Link.h"
#include "Speckle/Utility/Guid.h"
using namespace speckle::database;
using namespace speckle::utility;
#ifdef ARCHICAD
/*--------------------------------------------------------------------
@@ -8,7 +10,7 @@ using namespace speckle::database;
selected: Information about a selected Archicad element
--------------------------------------------------------------------*/
Link::Link(const API_Neig& selected) : recordID{selected.guid} {
Link::Link(const API_Neig& selected) : base{String{Guid{selected.guid}}} {
//More info should be extracted from API_Neig in future (as required)
} //Link::Link
#endif
@@ -2,7 +2,7 @@
#define SPECKLE_DATABASE_LINK
#include "Active/Setting/SettingList.h"
#include "Speckle/Database/Content/Index.h"
#include "Speckle/Database/Identity/Index.h"
namespace speckle::database {
@@ -17,30 +17,17 @@ namespace speckle::database {
A link may optionally carry any number of settings. In the context of a user selection (for example) there might be settings describing where
the user made the selection (e.g. the hole in a floor slab), allowing a tool working on that selection to be more precise.
*/
class Link : public active::setting::SettingList {
class Link : public active::database::Link<speckle::utility::String, speckle::utility::String, speckle::utility::String> {
public:
// MARK: - Types
using base = active::setting::SettingList;
///Unique pointer
using Unique = std::unique_ptr<Link>;
///Shared pointer
using Shared = std::shared_ptr<Link>;
///Optional
using Option = std::optional<Link>;
using base = active::database::Link<speckle::utility::String, speckle::utility::String, speckle::utility::String>;
// MARK: - Constructors
using base::base;
/*!
Constructor
@param index An element index
@param origIndex The index of the original element (when the preceding index is to a proxy element)
*/
Link(const Index& index, const Index& origIndex = Index{}) : recordID{index}, originalID{origIndex} {}
#ifdef ARCHICAD
/*!
Constructor
@@ -48,13 +35,6 @@ namespace speckle::database {
*/
Link(const API_Neig& selected);
#endif
// MARK: - Public variables
///ID of the linked record (defaults to null guid = undefined)
Index recordID;
///ID of the original record (in the case where the record is proxy for another - null guid = undefined)
Index originalID;
};
}
@@ -1,7 +1,7 @@
#include "Speckle/Event/Subscriber/SelectionSubscriber.h"
#include "Speckle/Environment/Addon.h"
#include "Speckle/Database/Content/Link.h"
#include "Active/Database/Identity/Link.h"
#include "Speckle/Event/Type/SelectionEvent.h"
using namespace active::environment;
@@ -5,7 +5,7 @@
#include "Active/Utility/Guid.h"
#include "Active/Utility/String.h"
#include "Speckle/Database/Content/Link.h"
#include "Speckle/Database/Identity/Link.h"
namespace speckle::event {
@@ -1,15 +1,40 @@
#include "Speckle/Record/Credentials/Account.h"
#include "Active/Serialise/Item/Wrapper/ValueWrap.h"
#include "Speckle/Utility/Guid.h"
using namespace active::serialise;
using namespace speckle::record::cred;
using namespace speckle::utility;
namespace {
///Serialisation fields
enum FieldIndex {
tokenID,
refreshTokenID,
isDefaultID,
isOnlineID,
serverInfoID,
userInfoID,
};
///Serialisation field IDs
static std::array fieldID = {
Identity{"token"},
Identity{"refreshToken"},
Identity{"isDefault"},
Identity{"isOnline"},
Identity{"serverInfo"},
Identity{"userInfo"},
};
}
/*--------------------------------------------------------------------
Default constructor
--------------------------------------------------------------------*/
Account::Account(Guid ID) : Record{ID} {
Account::Account(const String& ID) : base{ID} {
//TODO: Complete
} //Account::Account
@@ -20,8 +45,16 @@ Account::Account(Guid ID) : Record{ID} {
@return True if the package has added items to the inventory
--------------------------------------------------------------------*/
bool Account::fillInventory(Inventory& inventory) const {
//TODO: Complete
return true;
using enum Entry::Type;
inventory.merge(Inventory{
{
{ fieldID[tokenID], tokenID, element },
{ fieldID[refreshTokenID], refreshTokenID, element },
{ fieldID[isDefaultID], isDefaultID, element },
{ fieldID[isOnlineID], isOnlineID, element },
},
}.withType(&typeid(Account)));
return base::fillInventory(inventory);
} //Account::fillInventory
@@ -31,8 +64,21 @@ bool Account::fillInventory(Inventory& inventory) const {
@return The requested cargo (nullptr on failure)
--------------------------------------------------------------------*/
Cargo::Unique Account::getCargo(const Inventory::Item& item) const {
//TODO: Complete
return nullptr;
if (item.ownerType != &typeid(Account))
return base::getCargo(item);
using namespace active::serialise;
switch (item.index) {
case tokenID:
return std::make_unique<ValueWrap<String>>(m_token);
case refreshTokenID:
return std::make_unique<ValueWrap<String>>(m_refreshToken);
case isDefaultID:
return std::make_unique<ValueWrap<bool>>(m_isDefault);
case isOnlineID:
return std::make_unique<ValueWrap<bool>>(m_isOnline);
default:
return nullptr; //Requested an unknown index
}
} //Account::getCargo
@@ -40,7 +86,10 @@ Cargo::Unique Account::getCargo(const Inventory::Item& item) const {
Set to the default package content
--------------------------------------------------------------------*/
void Account::setDefault() {
//TODO: Complete
m_token.clear();
m_refreshToken.clear();
m_isDefault = false;
m_isOnline = true;
} //Account::setDefault
@@ -50,6 +99,6 @@ void Account::setDefault() {
return: True if the data has been validated
--------------------------------------------------------------------*/
bool Account::validate() {
//TODO: Complete
//TODO: Fail conditions to be determined
return true;
} //Account::validate
@@ -2,7 +2,7 @@
#define SPECKLE_RECORD_CRED_ACCOUNT
#include "Active/Setting/SettingList.h"
#include "Speckle/Database/Content/Record.h"
#include "Active/Database/Content/Record.h"
#include "Speckle/Utility/String.h"
namespace speckle::record::cred {
@@ -10,12 +10,12 @@ namespace speckle::record::cred {
/*!
User account record class
*/
class Account : public speckle::database::Record {
class Account : public active::database::Record<speckle::utility::String, speckle::utility::String, speckle::utility::String> {
public:
// MARK: - Types
using base = speckle::database::Record;
using base = active::database::Record<speckle::utility::String, speckle::utility::String, speckle::utility::String>;
///Unique pointer
using Unique = std::unique_ptr<Account>;
///Shared pointer
@@ -31,13 +31,19 @@ namespace speckle::record::cred {
Default constructor
@param ID The account record ID
*/
Account(speckle::utility::Guid ID = speckle::utility::Guid{});
Account(const speckle::utility::String& ID = speckle::utility::String{});
/*!
Copy constructor
@param source The object to copy
*/
Account(const Account& source) : base{source} {}
/*!
Object cloning
@return A clone of this object
*/
Account* clonePtr() const override { return new Account{*this}; }
// MARK: - Functions (const)
// MARK: - Functions (mutating)
+52 -30
View File
@@ -24,7 +24,13 @@
21B67D002C7CE15100FD64FC /* Exception.h in Headers */ = {isa = PBXBuildFile; fileRef = 21B67CFE2C7CE15100FD64FC /* Exception.h */; };
21B67D0D2C7E0E8D00FD64FC /* ErrorReport.h in Headers */ = {isa = PBXBuildFile; fileRef = 21B67D092C7E0E8D00FD64FC /* ErrorReport.h */; };
21B67D0E2C7E0E8D00FD64FC /* ErrorReport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21B67D0C2C7E0E8D00FD64FC /* ErrorReport.cpp */; };
21F69EBE2C63C954008B6A06 /* Link.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21F69EBD2C63C954008B6A06 /* Link.cpp */; };
21D0BD202C86F0280077E104 /* AccountDBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21D0BD1D2C86F0280077E104 /* AccountDBase.cpp */; };
21D0BD212C86F0280077E104 /* AccountDBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 21D0BD1E2C86F0280077E104 /* AccountDBase.h */; };
21D0BD2B2C86FC350077E104 /* Record.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21D0BD252C86FC350077E104 /* Record.cpp */; };
21D0BD2C2C86FC350077E104 /* Record.h in Headers */ = {isa = PBXBuildFile; fileRef = 21D0BD262C86FC350077E104 /* Record.h */; };
21D0BD312C86FE090077E104 /* Index.h in Headers */ = {isa = PBXBuildFile; fileRef = 21D0BD2D2C86FE090077E104 /* Index.h */; };
21D0BD322C86FE090077E104 /* Link.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21D0BD2E2C86FE090077E104 /* Link.cpp */; };
21D0BD332C86FE090077E104 /* Link.h in Headers */ = {isa = PBXBuildFile; fileRef = 21D0BD2F2C86FE090077E104 /* Link.h */; };
21F69F3B2C6B880C008B6A06 /* JSBaseTransport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21F69F382C6B880B008B6A06 /* JSBaseTransport.cpp */; };
21F69F512C6CCC25008B6A06 /* BrowserBridge.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21F69F4A2C6CCC25008B6A06 /* BrowserBridge.cpp */; };
21F69F612C6D0286008B6A06 /* GetBindingsMethodNames.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21F69F602C6D0286008B6A06 /* GetBindingsMethodNames.cpp */; };
@@ -32,7 +38,6 @@
21F69F7E2C6FD9FC008B6A06 /* GetCallResult.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21F69F7A2C6FD9FC008B6A06 /* GetCallResult.cpp */; };
21F69F812C6FF3B0008B6A06 /* BridgeArgumentWrap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21F69F802C6FF3B0008B6A06 /* BridgeArgumentWrap.cpp */; };
21F69F962C71087A008B6A06 /* Account.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21F69F922C71087A008B6A06 /* Account.cpp */; };
21F69FA42C729400008B6A06 /* Record.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21F69FA32C729400008B6A06 /* Record.cpp */; };
21F69FA62C733EDA008B6A06 /* BridgeArgument.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21F69FA52C733EDA008B6A06 /* BridgeArgument.cpp */; };
21F93AEC2B2F406E009A2C5B /* Addon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 21F93AEA2B2F406D009A2C5B /* Addon.cpp */; };
/* End PBXBuildFile section */
@@ -100,7 +105,6 @@
219351982C6278D900E5A69C /* SelectionSubscriber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelectionSubscriber.h; sourceTree = "<group>"; };
219351992C6278D900E5A69C /* SelectionSubscriber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SelectionSubscriber.cpp; sourceTree = "<group>"; };
2193519C2C627E3100E5A69C /* SelectionEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelectionEvent.h; sourceTree = "<group>"; };
219351A72C62CA5300E5A69C /* Index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Index.h; sourceTree = "<group>"; };
219351AC2C62CC1A00E5A69C /* Guid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Guid.cpp; sourceTree = "<group>"; };
219351AD2C62CC1A00E5A69C /* Guid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Guid.h; sourceTree = "<group>"; };
219351AE2C62CC1A00E5A69C /* String.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = String.cpp; sourceTree = "<group>"; };
@@ -109,8 +113,13 @@
21B67CFE2C7CE15100FD64FC /* Exception.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Exception.h; sourceTree = "<group>"; };
21B67D092C7E0E8D00FD64FC /* ErrorReport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ErrorReport.h; sourceTree = "<group>"; };
21B67D0C2C7E0E8D00FD64FC /* ErrorReport.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ErrorReport.cpp; sourceTree = "<group>"; };
21F69EBC2C63944D008B6A06 /* Link.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Link.h; sourceTree = "<group>"; };
21F69EBD2C63C954008B6A06 /* Link.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Link.cpp; sourceTree = "<group>"; };
21D0BD1D2C86F0280077E104 /* AccountDBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AccountDBase.cpp; sourceTree = "<group>"; };
21D0BD1E2C86F0280077E104 /* AccountDBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccountDBase.h; sourceTree = "<group>"; };
21D0BD252C86FC350077E104 /* Record.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Record.cpp; sourceTree = "<group>"; };
21D0BD262C86FC350077E104 /* Record.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Record.h; sourceTree = "<group>"; };
21D0BD2D2C86FE090077E104 /* Index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Index.h; sourceTree = "<group>"; };
21D0BD2E2C86FE090077E104 /* Link.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Link.cpp; sourceTree = "<group>"; };
21D0BD2F2C86FE090077E104 /* Link.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Link.h; sourceTree = "<group>"; };
21F69F012C66C229008B6A06 /* Doxyfile */ = {isa = PBXFileReference; lastKnownFileType = text; name = Doxyfile; path = Documentation/Doxyfile; sourceTree = "<group>"; };
21F69F192C6A0FE2008B6A06 /* JSBinding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSBinding.h; sourceTree = "<group>"; };
21F69F352C6AA9B3008B6A06 /* JSFunction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JSFunction.h; sourceTree = "<group>"; };
@@ -134,10 +143,8 @@
21F69F7D2C6FD9FC008B6A06 /* GetCallResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GetCallResult.h; sourceTree = "<group>"; };
21F69F802C6FF3B0008B6A06 /* BridgeArgumentWrap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BridgeArgumentWrap.cpp; sourceTree = "<group>"; };
21F69F822C701A8E008B6A06 /* BridgeMethodBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BridgeMethodBase.h; sourceTree = "<group>"; };
21F69F8F2C710012008B6A06 /* Record.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Record.h; sourceTree = "<group>"; };
21F69F922C71087A008B6A06 /* Account.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Account.cpp; sourceTree = "<group>"; };
21F69F932C71087A008B6A06 /* Account.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Account.h; sourceTree = "<group>"; };
21F69FA32C729400008B6A06 /* Record.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Record.cpp; sourceTree = "<group>"; };
21F69FA52C733EDA008B6A06 /* BridgeArgument.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BridgeArgument.cpp; sourceTree = "<group>"; };
21F93AE92B2F406D009A2C5B /* Addon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Addon.h; sourceTree = "<group>"; };
21F93AEA2B2F406D009A2C5B /* Addon.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Addon.cpp; sourceTree = "<group>"; };
@@ -166,7 +173,7 @@
isa = PBXGroup;
children = (
214EA4C52BA374FD008E5358 /* CMakeLists.txt */,
219351A92C62CA5300E5A69C /* Database */,
21D0BD1F2C86F0280077E104 /* Database */,
21F93AE82B2F406D009A2C5B /* Environment */,
21F93ACC2B2B67FC009A2C5B /* Event */,
21F69F1B2C6A0FE2008B6A06 /* Interface */,
@@ -246,26 +253,6 @@
path = Type;
sourceTree = "<group>";
};
219351A82C62CA5300E5A69C /* Content */ = {
isa = PBXGroup;
children = (
219351A72C62CA5300E5A69C /* Index.h */,
21F69EBD2C63C954008B6A06 /* Link.cpp */,
21F69EBC2C63944D008B6A06 /* Link.h */,
21F69FA32C729400008B6A06 /* Record.cpp */,
21F69F8F2C710012008B6A06 /* Record.h */,
);
path = Content;
sourceTree = "<group>";
};
219351A92C62CA5300E5A69C /* Database */ = {
isa = PBXGroup;
children = (
219351A82C62CA5300E5A69C /* Content */,
);
path = Database;
sourceTree = "<group>";
};
219351B02C62CC1A00E5A69C /* Utility */ = {
isa = PBXGroup;
children = (
@@ -289,6 +276,36 @@
path = SpeckleLibDoctest;
sourceTree = "<group>";
};
21D0BD1F2C86F0280077E104 /* Database */ = {
isa = PBXGroup;
children = (
21D0BD1D2C86F0280077E104 /* AccountDBase.cpp */,
21D0BD1E2C86F0280077E104 /* AccountDBase.h */,
21D0BD302C86FE090077E104 /* Identity */,
21D0BD272C86FC350077E104 /* Content */,
);
path = Database;
sourceTree = "<group>";
};
21D0BD272C86FC350077E104 /* Content */ = {
isa = PBXGroup;
children = (
21D0BD252C86FC350077E104 /* Record.cpp */,
21D0BD262C86FC350077E104 /* Record.h */,
);
path = Content;
sourceTree = "<group>";
};
21D0BD302C86FE090077E104 /* Identity */ = {
isa = PBXGroup;
children = (
21D0BD2D2C86FE090077E104 /* Index.h */,
21D0BD2E2C86FE090077E104 /* Link.cpp */,
21D0BD2F2C86FE090077E104 /* Link.h */,
);
path = Identity;
sourceTree = "<group>";
};
21F69F1A2C6A0FE2008B6A06 /* Browser */ = {
isa = PBXGroup;
children = (
@@ -402,13 +419,17 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
21D0BD212C86F0280077E104 /* AccountDBase.h in Headers */,
210CC86F2C7E879700610F58 /* ArgumentBase.h in Headers */,
210CC8A02C81E34400610F58 /* Platform.h in Headers */,
21B67D0D2C7E0E8D00FD64FC /* ErrorReport.h in Headers */,
21D0BD332C86FE090077E104 /* Link.h in Headers */,
210CC88F2C81A98500610F58 /* Guid64.h in Headers */,
21B67D002C7CE15100FD64FC /* Exception.h in Headers */,
21D0BD2C2C86FC350077E104 /* Record.h in Headers */,
210CC8802C80CD2A00610F58 /* BridgeChild.h in Headers */,
2193518C2C62655700E5A69C /* MenuEvent.h in Headers */,
21D0BD312C86FE090077E104 /* Index.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -542,14 +563,15 @@
21B67D0E2C7E0E8D00FD64FC /* ErrorReport.cpp in Sources */,
21F69F7E2C6FD9FC008B6A06 /* GetCallResult.cpp in Sources */,
2193519B2C6278D900E5A69C /* SelectionSubscriber.cpp in Sources */,
21D0BD2B2C86FC350077E104 /* Record.cpp in Sources */,
210CC8902C81A98500610F58 /* Guid64.cpp in Sources */,
21F69EBE2C63C954008B6A06 /* Link.cpp in Sources */,
21D0BD322C86FE090077E104 /* Link.cpp in Sources */,
219351B32C62CC1A00E5A69C /* String.cpp in Sources */,
219351B12C62CC1A00E5A69C /* Guid.cpp in Sources */,
21F69FA42C729400008B6A06 /* Record.cpp in Sources */,
21F69F512C6CCC25008B6A06 /* BrowserBridge.cpp in Sources */,
21F69F3B2C6B880C008B6A06 /* JSBaseTransport.cpp in Sources */,
210CC89F2C81E34400610F58 /* Platform.cpp in Sources */,
21D0BD202C86F0280077E104 /* AccountDBase.cpp in Sources */,
21F69F962C71087A008B6A06 /* Account.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;