// Copy constructor GERBER_DRAW_ITEM::GERBER_DRAW_ITEM( const GERBER_DRAW_ITEM& aSource ) : EDA_ITEM( aSource ) { m_imageParams = aSource.m_imageParams; m_Shape = aSource.m_Shape; m_Flags = aSource.m_Flags; SetTimeStamp( aSource.m_TimeStamp ); SetStatus( aSource.GetStatus() ); m_Start = aSource.m_Start; m_End = aSource.m_End; m_Size = aSource.m_Size; m_Layer = aSource.m_Layer; m_Shape = aSource.m_Shape; m_Flashed = aSource.m_Flashed; m_DCode = aSource.m_DCode; m_PolyCorners = aSource.m_PolyCorners; m_UnitsMetric = aSource.m_UnitsMetric; m_LayerNegative = aSource.m_LayerNegative; m_swapAxis = aSource.m_swapAxis; m_mirrorA = aSource.m_mirrorA; m_mirrorB = aSource.m_mirrorB; m_layerOffset = aSource.m_layerOffset; m_drawScale = aSource.m_drawScale; m_lyrRotation = aSource.m_lyrRotation; }
void ZONE_CONTAINER::Copy( ZONE_CONTAINER* src ) { m_Parent = src->m_Parent; m_Layer = src->m_Layer; SetNetCode( src->GetNetCode() ); SetTimeStamp( src->m_TimeStamp ); m_Poly->RemoveAllContours(); m_Poly->Copy( src->m_Poly ); // copy outlines m_CornerSelection = -1; // For corner moving, corner index to drag, // or -1 if no selection m_ZoneClearance = src->m_ZoneClearance; // clearance value m_ZoneMinThickness = src->m_ZoneMinThickness; m_FillMode = src->m_FillMode; // Filling mode (segments/polygons) m_ArcToSegmentsCount = src->m_ArcToSegmentsCount; m_PadConnection = src->m_PadConnection; m_ThermalReliefGap = src->m_ThermalReliefGap; m_ThermalReliefCopperBridge = src->m_ThermalReliefCopperBridge; m_Poly->SetHatchStyle( src->m_Poly->GetHatchStyle() ); m_Poly->SetHatchPitch( src->m_Poly->GetHatchPitch() ); m_Poly->m_HatchLines = src->m_Poly->m_HatchLines; // Copy vector <CSegment> m_FilledPolysList.RemoveAllContours(); m_FilledPolysList.Append( src->m_FilledPolysList ); m_FillSegmList.clear(); m_FillSegmList = src->m_FillSegmList; }
void CuDlgIpmDetailNetTrafic::UpdateLoadInfo(CaIpmPropertyNetTraficData& data) { m_TraficInfo = data.m_TraficInfo; m_bStartup = data.m_bStartup; m_nCounter = data.m_nCounter; SetTimeStamp(data.m_strTimeStamp); m_strTotalPacketIn = data.m_strTotalPacketIn; m_strTotalDataIn = data.m_strTotalDataIn; m_strTotalPacketOut = data.m_strTotalPacketOut; m_strTotalDataOut = data.m_strTotalDataOut; m_strCurrentPacketIn = data.m_strCurrentPacketIn; m_strCurrentDataIn = data.m_strCurrentDataIn; m_strCurrentPacketOut = data.m_strCurrentPacketOut; m_strCurrentDataOut = data.m_strCurrentDataOut; m_strAveragePacketIn = data.m_strAveragePacketIn; m_strAverageDataIn = data.m_strAverageDataIn; m_strAveragePacketOut = data.m_strAveragePacketOut; m_strAverageDataOut = data.m_strAverageDataOut; m_strPeekPacketIn = data.m_strPeekPacketIn; m_strPeekDataIn = data.m_strPeekDataIn; m_strPeekPacketOut = data.m_strPeekPacketOut; m_strPeekDataOut = data.m_strPeekDataOut; m_strDate1PacketIn = data.m_strDate1PacketIn; m_strDate2PacketIn = data.m_strDate2PacketIn; m_strDate1DataIn = data.m_strDate1DataIn; m_strDate2DataIn = data.m_strDate2DataIn; m_strDate1PacketOut = data.m_strDate1PacketOut; m_strDate2PacketOut = data.m_strDate2PacketOut; m_strDate1DataOut = data.m_strDate1DataOut; m_strDate2DataOut = data.m_strDate2DataOut; UpdateData(FALSE); }
MessageNotification::MessageNotification( const wchar_t *Title, const wchar_t *Message, time_t timeVal ) { V_wcsncpy( wszTitle, Title, sizeof( wszTitle ) ); V_wcsncpy( wszMessage, Message, sizeof( wszMessage ) ); bUnread = true; bLocal = false; SetTimeStamp( timeVal ); };
MessageNotification::MessageNotification( const char *Title, const char *Message, time_t timeVal ) { g_pVGuiLocalize->ConvertANSIToUnicode( Title, wszTitle, sizeof( wszTitle ) ); g_pVGuiLocalize->ConvertANSIToUnicode( Message, wszMessage, sizeof( wszMessage ) ); bUnread = true; bLocal = false; SetTimeStamp( timeVal ); };
void PCB_TARGET::Copy( PCB_TARGET* source ) { m_Layer = source->m_Layer; m_Width = source->m_Width; m_Pos = source->m_Pos; m_Shape = source->m_Shape; m_Size = source->m_Size; SetTimeStamp( GetNewTimeStamp() ); }
EDA_ITEM::EDA_ITEM( const EDA_ITEM& base ) { initVars(); m_StructType = base.m_StructType; m_Parent = base.m_Parent; m_Flags = base.m_Flags; // A copy of an item cannot have the same time stamp as the original item. SetTimeStamp( GetNewTimeStamp() ); m_Status = base.m_Status; }
/** * @brief create a rollback segment by selecting columns from a tuple * @param target_list The columns to be selected * @param tuple The tuple to construct the RB * * TODO: Optimization can be done. We can save copying those columns that are *already * in the rollback segment created by the same transaction. What we need to do *is to add * a bitmap in the rollback segment indicating columns it contains. After that *we * can bypass these columns when making a new rollback segment. */ RBSegType RollbackSegmentPool::CreateSegmentFromTuple( const catalog::Schema *schema, const TargetList &target_list, const AbstractTuple *tuple) { PL_ASSERT(schema); PL_ASSERT(target_list.size() != 0); size_t col_count = target_list.size(); size_t header_size = pairs_start_offset + col_count * sizeof(ColIdOffsetPair); size_t data_size = 0; RBSegType rb_seg = nullptr; // First figure out the total size of the rollback segment data area for (auto &target : target_list) { auto col_id = target.first; data_size += schema->GetLength(col_id); } // Allocate the RBSeg rb_seg = (RBSegType)pool_.AllocateZeroes(header_size + data_size); PL_ASSERT(rb_seg); // Fill in the header SetNextPtr(rb_seg, nullptr); SetTimeStamp(rb_seg, MAX_CID); SetColCount(rb_seg, col_count); // Fill in the col_id & offset pair and set the data field size_t offset = 0; for (size_t idx = 0; idx < target_list.size(); ++idx) { auto &target = target_list[idx]; auto col_id = target.first; const bool is_inlined = schema->IsInlined(col_id); const bool is_inbytes = false; size_t inline_col_size = schema->GetLength(col_id); size_t allocate_col_size = (is_inlined) ? inline_col_size : schema->GetVariableLength(col_id); SetColIdOffsetPair(rb_seg, idx, target.first, offset); // Set the value char *value_location = GetColDataLocation(rb_seg, idx); Value value = tuple->GetValue(col_id); PL_ASSERT(schema->GetType(col_id) == value.GetValueType()); value.SerializeToTupleStorageAllocateForObjects( value_location, is_inlined, allocate_col_size, is_inbytes, &pool_); // Update the offset offset += inline_col_size; } return rb_seg; }
SCH_SHEET::SCH_SHEET( const wxPoint& pos ) : SCH_ITEM( NULL, SCH_SHEET_T ) { m_Layer = LAYER_SHEET; m_pos = pos; m_size = wxSize( MIN_SHEET_WIDTH, MIN_SHEET_HEIGHT ); SetTimeStamp( GetNewTimeStamp() ); m_sheetNameSize = m_fileNameSize = DEFAULT_TEXT_SIZE; m_screen = NULL; m_name.Printf( wxT( "Sheet%8.8lX" ), m_TimeStamp ); m_fileName.Printf( wxT( "file%8.8lX.sch" ), m_TimeStamp ); }
void EDA_ITEM::initVars() { m_StructType = TYPE_NOT_INIT; Pnext = NULL; // Linked list: Link (next struct) Pback = NULL; // Linked list: Link (previous struct) m_Parent = NULL; // Linked list: Link (parent struct) m_List = NULL; // I am not on any list yet m_Image = NULL; // Link to an image copy for undelete or abort command m_Flags = 0; // flags for editions and other SetTimeStamp( 0 ); // Time stamp used for logical links m_Status = 0; m_forceVisible = false; // true to override the visibility setting of the item. }
void Oauth::GetHeader(const wchar_t* cmd,const wchar_t* url,PairDataArray* res){ wstring key,data; SetTimeStamp(); SetNonce(); SetSignature(cmd,url); key=TEXT("Authorization"); GetOauthJoin(&data,','); data.insert(0,TEXT("OAuth ")); res->Insert(key.c_str(),data.c_str()); return; }
SCH_SHEET::SCH_SHEET( const wxPoint& pos ) : SCH_ITEM( NULL, SCH_SHEET_T ) { m_Layer = LAYER_SHEET; m_pos = pos; m_size = wxSize( MIN_SHEET_WIDTH, MIN_SHEET_HEIGHT ); SetTimeStamp( GetNewTimeStamp() ); m_sheetNameSize = GetDefaultTextSize(); m_fileNameSize = GetDefaultTextSize(); m_screen = NULL; m_name.Printf( wxT( "Sheet%8.8lX" ), (long) m_TimeStamp ); m_fileName.Printf( wxT( "file%8.8lX.sch" ), (long) m_TimeStamp ); m_number = 1; }
SCH_SHEET::SCH_SHEET( const SCH_SHEET& aSheet ) : SCH_ITEM( aSheet ) { m_pos = aSheet.m_pos; m_size = aSheet.m_size; m_Layer = aSheet.m_Layer; SetTimeStamp( aSheet.m_TimeStamp ); m_sheetNameSize = aSheet.m_sheetNameSize; m_fileNameSize = aSheet.m_fileNameSize; m_screen = aSheet.m_screen; m_name = aSheet.m_name; m_fileName = aSheet.m_fileName; m_pins = aSheet.m_pins; for( size_t i = 0; i < m_pins.size(); i++ ) m_pins[i].SetParent( this ); if( m_screen ) m_screen->IncRefCount(); }
void DIMENSION::Copy( DIMENSION* source ) { m_Value = source->m_Value; SetLayer( source->GetLayer() ); m_Width = source->m_Width; m_Shape = source->m_Shape; m_Height = source->m_Height; m_Unit = source->m_Unit; SetTimeStamp( GetNewTimeStamp() ); m_Text.Copy( &source->m_Text ); m_crossBarO = source->m_crossBarO; m_crossBarF = source->m_crossBarF; m_featureLineGO = source->m_featureLineGO; m_featureLineGF = source->m_featureLineGF; m_featureLineDO = source->m_featureLineDO; m_featureLineDF = source->m_featureLineDF; m_arrowD1F = source->m_arrowD1F; m_arrowD2F = source->m_arrowD2F; m_arrowG1F = source->m_arrowG1F; m_arrowG2F = source->m_arrowG2F; }
inline CField& CField::operator=(const CTimeStamp& tsValue) { SetTimeStamp(tsValue); return *this; }
void MODULE::Copy( MODULE* aModule ) { m_Pos = aModule->m_Pos; m_Layer = aModule->m_Layer; m_fpid = aModule->m_fpid; m_Attributs = aModule->m_Attributs; m_ModuleStatus = aModule->m_ModuleStatus; m_Orient = aModule->m_Orient; m_BoundaryBox = aModule->m_BoundaryBox; m_CntRot90 = aModule->m_CntRot90; m_CntRot180 = aModule->m_CntRot180; m_LastEditTime = aModule->m_LastEditTime; m_Link = aModule->m_Link; m_Path = aModule->m_Path; //is this correct behavior? SetTimeStamp( GetNewTimeStamp() ); m_LocalClearance = aModule->m_LocalClearance; m_LocalSolderMaskMargin = aModule->m_LocalSolderMaskMargin; m_LocalSolderPasteMargin = aModule->m_LocalSolderPasteMargin; m_LocalSolderPasteMarginRatio = aModule->m_LocalSolderPasteMarginRatio; m_ZoneConnection = aModule->m_ZoneConnection; m_ThermalWidth = aModule->m_ThermalWidth; m_ThermalGap = aModule->m_ThermalGap; // Copy reference and value. m_Reference->Copy( aModule->m_Reference ); m_Value->Copy( aModule->m_Value ); // Copy auxiliary data: Pads m_Pads.DeleteAll(); for( D_PAD* pad = aModule->m_Pads; pad; pad = pad->Next() ) { D_PAD* newpad = new D_PAD( this ); newpad->Copy( pad ); m_Pads.PushBack( newpad ); } // Copy auxiliary data: Drawings m_Drawings.DeleteAll(); for( BOARD_ITEM* item = aModule->m_Drawings; item; item = item->Next() ) { switch( item->Type() ) { case PCB_MODULE_TEXT_T: { TEXTE_MODULE* textm = new TEXTE_MODULE( this ); textm->Copy( static_cast<TEXTE_MODULE*>( item ) ); m_Drawings.PushBack( textm ); break; } case PCB_MODULE_EDGE_T: { EDGE_MODULE * edge; edge = new EDGE_MODULE( this ); edge->Copy( (EDGE_MODULE*) item ); m_Drawings.PushBack( edge ); break; } default: wxLogMessage( wxT( "MODULE::Copy() Internal Err: unknown type" ) ); break; } } // Copy auxiliary data: 3D_Drawings info m_3D_Drawings.DeleteAll(); // Ensure there is one (or more) item in m_3D_Drawings m_3D_Drawings.PushBack( new S3D_MASTER( this ) ); // push a void item for( S3D_MASTER* item = aModule->m_3D_Drawings; item; item = item->Next() ) { if( item->GetShape3DName().IsEmpty() ) // do not copy empty shapes. continue; S3D_MASTER* t3d = m_3D_Drawings; if( t3d && t3d->GetShape3DName().IsEmpty() ) // The first entry can { // exist, but is empty : use it. t3d->Copy( item ); } else { t3d = new S3D_MASTER( this ); t3d->Copy( item ); m_3D_Drawings.PushBack( t3d ); } } m_Doc = aModule->m_Doc; m_KeyWord = aModule->m_KeyWord; // Ensure auxiliary data is up to date CalculateBoundingBox(); }
void Oauth::SetHeader(const wchar_t* cmd,const wchar_t* url){ Init(); SetTimeStamp(); SetNonce(); SetSignature(cmd,url); }
bool SCH_SHEET::Load( LINE_READER& aLine, wxString& aErrorMsg ) { int fieldNdx, size; SCH_SHEET_PIN* sheetPin; char* ptcar; SetTimeStamp( GetNewTimeStamp() ); // sheets are added to the GetDrawItems() like other schematic components. // however, in order to preserve the hierarchy (through m_Parent pointers), // a duplicate of the sheet is added to m_SubSheet array. // must be a duplicate, references just work for a two-layer structure. // this is accomplished through the Sync() function. if( ((char*)aLine)[0] == '$' ) // line should be "$Sheet" { if( !aLine.ReadLine() ) { aErrorMsg.Printf( wxT( "Read File Error" ) ); return false; } } /* Next line: must be "S xx yy nn mm" with xx, yy = sheet position * ( upper left corner ) et nn,mm = sheet size */ if( ( sscanf( &((char*)aLine)[1], "%d %d %d %d", &m_pos.x, &m_pos.y, &m_size.x, &m_size.y ) != 4 ) || ( ((char*)aLine)[0] != 'S' ) ) { aErrorMsg.Printf( wxT( " ** Eeschema file sheet struct error at line %d, aborted\n" ), aLine.LineNumber() ); aErrorMsg << FROM_UTF8( ((char*)aLine) ); return false; } /* Read fields */ for( ; ; ) /* Analysis of lines "Fn" text. */ { if( !aLine.ReadLine() ) return false; if( ((char*)aLine)[0] == 'U' ) { sscanf( ((char*)aLine) + 1, "%lX", &m_TimeStamp ); if( m_TimeStamp == 0 ) // zero is not unique! SetTimeStamp( GetNewTimeStamp() ); continue; } if( ((char*)aLine)[0] != 'F' ) break; sscanf( ((char*)aLine) + 1, "%d", &fieldNdx ); /* Read the field: * If fieldNdx> = 2: Fn "text" t s posx posy * If F0 "text" for SheetName * F1 and "text" for filename */ ptcar = ((char*)aLine); while( *ptcar && ( *ptcar != '"' ) ) ptcar++; if( *ptcar != '"' ) { aErrorMsg.Printf( wxT( "Eeschema file sheet label F%d at line %d, aborted\n" ), fieldNdx, aLine.LineNumber() ); aErrorMsg << FROM_UTF8( (char*) aLine ); return false; } wxString sheetName; ptcar += ReadDelimitedText( &sheetName, ptcar ); if( *ptcar == 0 ) { aErrorMsg.Printf( wxT( "Eeschema file sheet field F at line %d, aborted\n" ), aLine.LineNumber() ); aErrorMsg << FROM_UTF8( (char*) aLine ); return false; } if( ( fieldNdx == 0 ) || ( fieldNdx == 1 ) ) { if( sscanf( ptcar, "%d", &size ) != 1 ) { aErrorMsg.Printf( wxT( "Eeschema file sheet Label error line %d, aborted\n" ), aLine.LineNumber() ); aErrorMsg << FROM_UTF8( (char*) aLine ); } if( size == 0 ) size = DEFAULT_SIZE_TEXT; if( fieldNdx == 0 ) { m_name = sheetName; m_sheetNameSize = size; } else { SetFileName( sheetName ); m_fileNameSize = size; } } if( fieldNdx > 1 ) { sheetPin = new SCH_SHEET_PIN( this ); if( !sheetPin->Load( aLine, aErrorMsg ) ) { delete sheetPin; sheetPin = NULL; return false; } AddPin( sheetPin ); } } if( strnicmp( "$End", ((char*)aLine), 4 ) != 0 ) { aErrorMsg.Printf( wxT( "**Eeschema file end_sheet struct error at line %d, aborted\n" ), aLine.LineNumber() ); aErrorMsg << FROM_UTF8( ((char*)aLine) ); return false; } return true; }
void BOARD_ITEM::SwapData( BOARD_ITEM* aImage ) { if( aImage == NULL ) return; // Remark: to create images of edited items to undo, we are using Clone method // which can duplication of items foe copy, but does not clone all members // mainly pointers in chain and time stamp, which is set to new, unique value. // So we have to use the current values of these parameters. EDA_ITEM * pnext = Next(); EDA_ITEM * pback = Back(); DHEAD* mylist = m_List; time_t timestamp = GetTimeStamp(); switch( Type() ) { case PCB_MODULE_T: { MODULE* tmp = (MODULE*) aImage->Clone(); ( (MODULE*) aImage )->Copy( (MODULE*) this ); ( (MODULE*) this )->Copy( tmp ); delete tmp; } break; case PCB_ZONE_AREA_T: { ZONE_CONTAINER* tmp = (ZONE_CONTAINER*) aImage->Clone(); ( (ZONE_CONTAINER*) aImage )->Copy( (ZONE_CONTAINER*) this ); ( (ZONE_CONTAINER*) this )->Copy( tmp ); delete tmp; } break; case PCB_LINE_T: std::swap( *((DRAWSEGMENT*)this), *((DRAWSEGMENT*)aImage) ); break; case PCB_TRACE_T: case PCB_VIA_T: { TRACK* track = (TRACK*) this; TRACK* image = (TRACK*) aImage; std::swap(track->m_Layer, image->m_Layer ); // swap start, end, width and shape for track and image. wxPoint exchp = track->GetStart(); track->SetStart( image->GetStart() ); image->SetStart( exchp ); exchp = track->GetEnd(); track->SetEnd( image->GetEnd() ); image->SetEnd( exchp ); int atmp = track->GetWidth(); track->SetWidth( image->GetWidth() ); image->SetWidth( atmp ); if( Type() == PCB_VIA_T ) { VIA *via = static_cast<VIA*>( this ); VIA *viaimage = static_cast<VIA*>( aImage ); VIATYPE_T viatmp = via->GetViaType(); via->SetViaType( viaimage->GetViaType() ); viaimage->SetViaType( viatmp ); int drilltmp = via->GetDrillValue(); if( via->IsDrillDefault() ) drilltmp = -1; int itmp = viaimage->GetDrillValue(); if( viaimage->IsDrillDefault() ) itmp = -1; std::swap(itmp, drilltmp ); if( drilltmp > 0 ) via->SetDrill( drilltmp ); else via->SetDrillDefault(); if( itmp > 0 ) viaimage->SetDrill( itmp ); else viaimage->SetDrillDefault(); } } break; case PCB_TEXT_T: std::swap( *((TEXTE_PCB*)this), *((TEXTE_PCB*)aImage) ); break; case PCB_TARGET_T: std::swap( *((PCB_TARGET*)this), *((PCB_TARGET*)aImage) ); break; case PCB_DIMENSION_T: std::swap( *((DIMENSION*)this), *((DIMENSION*)aImage) ); break; case PCB_ZONE_T: default: wxLogMessage( wxT( "SwapData() error: unexpected type %d" ), Type() ); break; } // Restore pointers and time stamp, to be sure they are not broken Pnext = pnext; Pback = pback; m_List = mylist; SetTimeStamp( timestamp ); }