/* * netInit - Initialize the network communications subsystem. */ void netInit(void) { strcpy(hostname, LOCALHOST); #if PPP_SUPPORT > 0 user[0] = '\0'; passwd[0] = '\0'; our_name[0] = '\0'; remote_name[0] = '\0'; explicit_remote = 0; #endif magicInit(); ipInit(); #if PPP_SUPPORT > 0 pppInit(); #endif #if ETHER_SUPPORT > 0 // etherInit(); #endif tcpInit(); #if UDP_SUPPORT > 0 udpInit(); #endif }
// Attempt to initialize without an extension bool InitAttemptWithoutExtension(esriLicenseProductCode product) { IAoInitializePtr ipInit(CLSID_AoInitialize); esriLicenseStatus status = esriLicenseFailure; ipInit->Initialize(product, &status); return (status == esriLicenseCheckedOut); }
static int init() { int res; if ((res = ipInit()) < 0) return res; return res; }
// Attempt to initialize with an extension bool InitAttemptWithExtension(esriLicenseProductCode product, esriLicenseExtensionCode extension) { IAoInitializePtr ipInit(CLSID_AoInitialize); esriLicenseStatus licenseStatus = esriLicenseFailure; ipInit->IsExtensionCodeAvailable(product, extension, &licenseStatus); if (licenseStatus == esriLicenseAvailable) { ipInit->Initialize(product, &licenseStatus); if (licenseStatus == esriLicenseCheckedOut) ipInit->CheckOutExtension(extension, &licenseStatus); } return (licenseStatus == esriLicenseCheckedOut); }
// Shutdown the driver and check-in the license if needed. HRESULT ShutdownDriver(esriLicenseExtensionCode license) { HRESULT hr; // Scope ipInit so released before AoUninitialize call { IAoInitializePtr ipInit(CLSID_AoInitialize); esriLicenseStatus status; if (license != NULL) { hr = ipInit->CheckInExtension(license, &status); if (FAILED(hr) || status != esriLicenseCheckedIn) CPLError( CE_Failure, CPLE_AppDefined, "License checkin failed."); } hr = ipInit->Shutdown(); } return hr; }
// Attempt to checkout a license from the top down bool InitializeDriver(esriLicenseExtensionCode license) { IAoInitializePtr ipInit(CLSID_AoInitialize); if (license == 0) { // Try to init as engine, then engineGeoDB, then ArcView, // then ArcEditor, then ArcInfo if (!InitAttemptWithoutExtension(esriLicenseProductCodeEngine)) if (!InitAttemptWithoutExtension(esriLicenseProductCodeArcView)) if (!InitAttemptWithoutExtension(esriLicenseProductCodeArcEditor)) if (!InitAttemptWithoutExtension(esriLicenseProductCodeArcInfo)) { // No appropriate license is available CPLError( CE_Failure, CPLE_AppDefined, "ArcGIS License checkout failed."); return false; } return true; } // Try to init as engine, then engineGeoDB, then ArcView, // then ArcEditor, then ArcInfo if (!InitAttemptWithExtension(esriLicenseProductCodeEngine,license)) if (!InitAttemptWithExtension(esriLicenseProductCodeArcView, license)) if (!InitAttemptWithExtension(esriLicenseProductCodeArcEditor, license)) if (!InitAttemptWithExtension(esriLicenseProductCodeArcInfo, license)) { // No appropriate license is available CPLError( CE_Failure, CPLE_AppDefined, "ArcGIS License checkout failed."); return false; } return true; }