KiCad PCB EDA Suite
Loading...
Searching...
No Matches
PCB_IO_MGR Class Reference

A factory which returns an instance of a #PLUGIN. More...

#include <pcb_io_mgr.h>

Inheritance diagram for PCB_IO_MGR:
IO_MGR

Classes

class  PLUGIN_REGISTRY
 Hold a list of available plugins, created using a singleton REGISTER_PLUGIN object. More...
 
struct  REGISTER_PLUGIN
 Register a plugin. More...
 

Public Types

enum  PCB_FILE_T {
  PCB_FILE_UNKNOWN = 0 , KICAD_SEXP , LEGACY , ALTIUM_CIRCUIT_MAKER ,
  ALTIUM_CIRCUIT_STUDIO , ALTIUM_DESIGNER , CADSTAR_PCB_ARCHIVE , EAGLE ,
  EASYEDA , EASYEDAPRO , FABMASTER , GEDA_PCB ,
  PCAD , SOLIDWORKS_PCB , IPC2581 , ODBPP ,
  FILE_TYPE_NONE
}
 The set of file types that the PCB_IO_MGR knows about, and for which there has been a plugin written, in alphabetical order. More...
 

Static Public Member Functions

static PCB_IOPluginFind (PCB_FILE_T aFileType)
 Return a #PLUGIN which the caller can use to import, export, save, or load design documents.
 
static const wxString ShowType (PCB_FILE_T aFileType)
 Return a brief name for a plugin given aFileType enum.
 
static PCB_FILE_T EnumFromStr (const wxString &aFileType)
 Return the PCB_FILE_T from the corresponding plugin type name: "kicad", "legacy", etc.
 
static PCB_FILE_T FindPluginTypeFromBoardPath (const wxString &aFileName, int aCtl=0)
 Return a plugin type given a path for a board file.
 
static PCB_FILE_T GuessPluginTypeFromLibPath (const wxString &aLibPath, int aCtl=0)
 Return a plugin type given a footprint library's libPath.
 
static BOARDLoad (PCB_FILE_T aFileType, const wxString &aFileName, BOARD *aAppendToMe=nullptr, const std::map< std::string, UTF8 > *aProperties=nullptr, PROJECT *aProject=nullptr, PROGRESS_REPORTER *aProgressReporter=nullptr)
 Find the requested #PLUGIN and if found, calls the #PLUGIN::LoadBoard() function on it using the arguments passed to this function.
 
static void Save (PCB_FILE_T aFileType, const wxString &aFileName, BOARD *aBoard, const std::map< std::string, UTF8 > *aProperties=nullptr)
 Write either a full aBoard to a storage file in a format that this implementation knows about, or it can be used to write a portion ofaBoard to a special kind of export file.
 
static bool ConvertLibrary (std::map< std::string, UTF8 > *aOldFileProps, const wxString &aOldFilePath, const wxString &aNewFilePath, REPORTER *aReporter)
 Convert a schematic symbol library to the latest KiCad format.
 

Detailed Description

A factory which returns an instance of a #PLUGIN.

Definition at line 47 of file pcb_io_mgr.h.

Member Enumeration Documentation

◆ PCB_FILE_T

The set of file types that the PCB_IO_MGR knows about, and for which there has been a plugin written, in alphabetical order.

Enumerator
PCB_FILE_UNKNOWN 

0 is not a legal menu id on Mac

KICAD_SEXP 

S-expression Pcbnew file format.

LEGACY 

Legacy Pcbnew file formats prior to s-expression.

ALTIUM_CIRCUIT_MAKER 
ALTIUM_CIRCUIT_STUDIO 
ALTIUM_DESIGNER 
CADSTAR_PCB_ARCHIVE 
EAGLE 
EASYEDA 
EASYEDAPRO 
FABMASTER 
GEDA_PCB 

Geda PCB file formats.

PCAD 
SOLIDWORKS_PCB 
IPC2581 
ODBPP 
FILE_TYPE_NONE 

Definition at line 55 of file pcb_io_mgr.h.

Member Function Documentation

◆ ConvertLibrary()

bool PCB_IO_MGR::ConvertLibrary ( std::map< std::string, UTF8 > *  aOldFileProps,
const wxString &  aOldFilePath,
const wxString &  aNewFilePath,
REPORTER aReporter 
)
static

Convert a schematic symbol library to the latest KiCad format.

Definition at line 191 of file pcb_io_mgr.cpp.

References FILE_TYPE_NONE, GuessPluginTypeFromLibPath(), KICAD_SEXP, PluginFind(), REPORTER::Report(), and IO_ERROR::What().

Referenced by PCBNEW_JOBS_HANDLER::JobExportFpUpgrade(), and PANEL_FP_LIB_TABLE::onMigrateLibraries().

◆ EnumFromStr()

PCB_IO_MGR::PCB_FILE_T PCB_IO_MGR::EnumFromStr ( const wxString &  aFileType)
static

Return the PCB_FILE_T from the corresponding plugin type name: "kicad", "legacy", etc.

Definition at line 94 of file pcb_io_mgr.cpp.

References PCB_IO_MGR::PLUGIN_REGISTRY::AllPlugins(), and PCB_IO_MGR::PLUGIN_REGISTRY::Instance().

Referenced by FP_GRID_TRICKS::optionsEditor(), and FP_LIB_TABLE_ROW::SetType().

◆ FindPluginTypeFromBoardPath()

PCB_IO_MGR::PCB_FILE_T PCB_IO_MGR::FindPluginTypeFromBoardPath ( const wxString &  aFileName,
int  aCtl = 0 
)
static

◆ GuessPluginTypeFromLibPath()

◆ Load()

BOARD * PCB_IO_MGR::Load ( PCB_FILE_T  aFileType,
const wxString &  aFileName,
BOARD aAppendToMe = nullptr,
const std::map< std::string, UTF8 > *  aProperties = nullptr,
PROJECT aProject = nullptr,
PROGRESS_REPORTER aProgressReporter = nullptr 
)
static

Find the requested #PLUGIN and if found, calls the #PLUGIN::LoadBoard() function on it using the arguments passed to this function.

After the #PLUGIN::LoadBoard() function returns, the #PLUGIN is Released() as part of this call.

Parameters
aFileTypeis the PCB_FILE_T of file to load.
aFileNameis the name of the file to load.
aAppendToMeis an existing BOARD to append to, use NULL if fresh board load is wanted.
aPropertiesis an associative array that allows the caller to pass additional tuning parameters to the PLUGIN.
aProjectis the optional PROJECT object primarily used by third party importers.
Returns
the loaded BOARD object. The caller owns it an it will never NULL because exception thrown if error.
Exceptions
IO_ERRORif the #PLUGIN cannot be found, file cannot be found, or file cannot be loaded.

Definition at line 160 of file pcb_io_mgr.cpp.

References FMT_NOTFOUND, PluginFind(), ShowType(), and THROW_IO_ERROR.

Referenced by LoadBoard().

◆ PluginFind()

◆ Save()

void PCB_IO_MGR::Save ( PCB_FILE_T  aFileType,
const wxString &  aFileName,
BOARD aBoard,
const std::map< std::string, UTF8 > *  aProperties = nullptr 
)
static

Write either a full aBoard to a storage file in a format that this implementation knows about, or it can be used to write a portion ofaBoard to a special kind of export file.

Parameters
aFileTypeis the PCB_FILE_T of file to save.
aFileNameis the name of a file to save to on disk.
aBoardis the BOARD document (data tree) to save or export to disk.
aBoardis the in memory document tree from which to extract information when writing to aFileName. The caller continues to own the BOARD, and the plugin should refrain from modifying the BOARD if possible.
aPropertiesis an associative array that can be used to tell the saver how to save the file, because it can take any number of additional named tuning arguments that the plugin is known to support. The caller continues to own this object (plugin may not delete it), and plugins should expect it to be optionally NULL.
Exceptions
IO_ERRORif there is a problem saving or exporting.

Definition at line 176 of file pcb_io_mgr.cpp.

References FMT_NOTFOUND, PluginFind(), ShowType(), and THROW_IO_ERROR.

Referenced by SaveBoard().

◆ ShowType()


The documentation for this class was generated from the following files: