KiCad PCB EDA Suite
Loading...
Searching...
No Matches
easypc_document.h File Reference

Loading designs, library items and projects. More...

#include <map>
#include <memory>
#include <optional>
#include <vector>
#include <wx/string.h>
#include <io/easypc/easypc_archive.h>
#include <io/easypc/easypc_classes_project.h>
#include <io/easypc/easypc_file.h>

Go to the source code of this file.

Classes

struct  EASYPC::DESIGN_DOCUMENT
 
struct  EASYPC::LIBRARY_STREAM
 
struct  EASYPC::LIBRARY_ITEM
 One stream, or for a component library every stream of the component's storage. More...
 
struct  EASYPC::PROJECT_DOCUMENT
 
struct  EASYPC::FILE_INFO
 
class  EASYPC::LIBRARY_FILE
 A library parsed once; items are then served by name without reading the file again. More...
 

Namespaces

namespace  EASYPC
 

Functions

std::unique_ptr< DESIGN_DOCUMENT > EASYPC::LoadDesign (const wxString &aPath)
 
std::unique_ptr< PROJECT_DOCUMENT > EASYPC::LoadProject (const wxString &aPath)
 
wxString EASYPC::ResolveProjectItem (const wxString &aProjectPath, const wxString &aItemName)
 The file a project item names, as Easy-PC opens it: the Windows path relative to the project's directory, the file name matched without regard to case.
 
FILE_INFO EASYPC::Probe (const wxString &aPath)
 Identify a file; projects are parsed fully, while designs and libraries are only inspected. Never throws.
 

Detailed Description

Loading designs, library items and projects.

A design (.pcb .sch) is one archive, the Contents stream, read to its exact end. A symbol library (.psl .ssl) holds one archive per item stream and a component library (.cml) one storage per component with a "[ScmComponent]" stream and one stream per package. Each library stream is one ReadObject, after which the program ignores the rest, since items rewritten in place leave stale bytes. A project (.prj) is a bare archive.

Definition in file easypc_document.h.