Summary: 107 instances, 99 unique Text Count * TODO: This method needs more testing. 1 // TODO: This needs more testing. 1 // TODO: Add an exported [non-async] function 'onICReadyForSelfCallRpc(): void' to ./PI.ts, then (after the next code-gen) a call to it will be generated here 1 // TODO: Add an exported [non-async] function 'onIncomingCheckpointStreamSize(): void' to ./PTI.ts, then (after the next code-gen) a call to it will be generated here 1 // TODO: This is brittle, since the target variable may not be the first matching variable we find (it may be declared later in the input file). 1 // TODO: Add an exported [non-async] function 'onRecoveryComplete(): void' to ./PI.ts, then (after the next code-gen) a call to it will be generated here 1 // 7) TODO: Delete rows from the CraShardedVertexTable 1 // TODO: override a finalizer only if Dispose(bool disposing) above has code to free unmanaged resources. 1 // TODO: Add an exported [non-async] function 'onICStarting(): void' to ./PTI.ts, then (after the next code-gen) a call to it will be generated here 1 // TODO: Add an exported [non-async] function 'onCheckpointSaved(): void' to ./PI.ts, then (after the next code-gen) a call to it will be generated here 1 // TODO: Add an exported [non-async] function 'onUpgradeCode(upgradeMode: Messages.AppUpgradeMode): void' to ./PI.ts, then (after the next code-gen) a call to it will be generated here 1 // USER-DEFINED: FIXME: turn into a callback (currently defined by application): 1 # FIXME: see VSTS bug 127: 2 lines.push(tab.repeat(4) + "// TODO: Initialize your application state here"); 1 // FIXME: InitialMessage should be an arbitrary blob... 1 postResultDispatcher += tab.repeat(4) + `// TODO: Handle the method completion (it returns void), optionally using the callContextData passed in the call` + NL; 1 // TODO: This assumes setting names are unique across all setting groups 1 // FIXME: InitialMessage should be an arbitrary blob... but here we're following the convention that it's an actual message. 1 // TODO: Add an exported [non-async] function 'onICStarting(): void' to ./PI.ts, then (after the next code-gen) a call to it will be generated here 1 // TODO: this message should contain a (serialized - doh!) checkpoint. Restore the state. 1 // TODO: uncomment the following line if the finalizer is overridden above. 1 setImmediate(() => resumeReadingFromIC()); // TODO: Rather than polling, it's probably more efficient to use: _outgoingMessageStream.once("drain", resumeReadingFromIC); 1 // TODO: Add an exported [non-async] function 'onCheckpointLoaded(checkpointSizeInBytes: number): void' to ./PI.ts, then (after the next code-gen) a call to it will be generated here 1 * TODO: This is brittle [to CRA internal data structure changes] so we need a better way to do this. 1 // FIXME: looks like we need a hashtable after all... 1 lines.push(tab.repeat(2) + "// TODO: Define your application state here" + NL); 1 // TODO: Figure out if waiting on a Task in the Position setter will cause 1 // TODO: Performance is worse if main() is not async: but why? It almost seems like additional thread(s) get spun up by node.exe, which then allows CPU usage to exceed 50%. 1 // TODO: This is just a placeholder while we work on developing AppState.upgrade(). 1 // TODO: Add an exported [non-async] function 'onICStopped(exitCode: number): void' to ./PTI.ts, then (after the next code-gen) a call to it will be generated here 1 // TODO: JonGold needs to address issue #158 ("Clarify Ambrosia protocol") since the C# LB has (obsolete?) code that: 1 // TODO: This message would be better if it could reference the actual published types involved (simply looking 1 const instanceLogFolder: string = Path.join(config.icLogFolder, `${config.instanceName}_${config.appVersion}`); // TODO: There may (one day) also be a "shardID" (Int64) subfolder (see: \AMBROSIA\AmbrosiaLib\Ambrosia\Program.cs) 1 postResultDispatcher += tab.repeat(4) + `// TODO: Handle the result, optionally using the callContextData passed in the call` + NL; 1 // TODO: Add an exported [non-async] function 'onICStarted(): void' to ./PI.ts, then (after the next code-gen) a call to it will be generated here 1 // TODO: Re-initialize your application state from restoredAppState here 1 // FIXME: add g_numRPCBytes as an argument to startup.... 2 // TODO: This is just a test stream 2 //TODO: Save application state and stop any background activity 3 // TODO: This is just temporary until we have a 'DeleteConnection' message implemented in the IC. 1 lines.push(`${blockTab}// TODO: Add your [non-async] handler here`); 1 // TODO: Add an exported [non-async] function 'onIncomingCheckpointStreamSize(): void' to ./PI.ts, then (after the next code-gen) a call to it will be generated here 1 // TODO: this message should contain a (serialized - doh!) checkpoint. Restore the state. 1 // TODO: could use FormatMessage here... 1 // TODO: Add an exported [non-async] function 'onICStopped(exitCode: number): void' to ./PI.ts, then (after the next code-gen) a call to it will be generated here 1 // TODO: send n-1 and count down... 1 // FIXME: NEED BACKOFF! 1 // TODO: Define your application state here 1 // FIXME - need to match what's in the AMBROSIA code. 1 // TODO: Do we need to handle these 2 RegisterInstance settings? They're for testing only. 1 // TODO: Add an exported [non-async] function 'onICStarted(): void' to ./PTI.ts, then (after the next code-gen) a call to it will be generated here 1 if (((type === "null") || (type === "undefined")) && (typeDescription.indexOf("union") === -1)) // TODO: Checking typeDescription is brittle 1 // TODO: set large fields to null. 1 // TODO: The downside of handling this internally (rather than via code-gen), is that the user never gets to know the callID 1 // TODO: make sure that we're already awaiting the RunWithCheckpointingAwaiter before 1 // TODO: 1 * TODO: Ideally We would get/do this using either ImmortalCoordinator.exe or Ambrosia.exe, but no such mechanism currently exists. 1 // TODO: Again, this is just temporary until we have a 'DeleteConnection' message implemented in the IC. 1 // USER DEFINED: FIXME: REPLACE W CALLBACK 1 // TODO: It's recommended that you move this namespace to your input file (./PI.ts) then re-run code-gen 1 lines.push(`// TODO: It's recommended that you move this namespace to your input file (${makeRelativePath(assertDefined(fileOptions.outputPath), sourceFileName)}) then re-run code-gen`); 1 // TODO: Add an exported [non-async] function 'onUpgradeComplete(): void' to ./PI.ts, then (after the next code-gen) a call to it will be generated here 1 // FIXME -- all write_* functions need to take a BOUND to avoid buffer 1 // TODO: We're only encoding into the positive range (ie. zigZagValue will always be positive), which is why we're limiting 'value' to only 53-bits instead of the maximum 54-bits 1 // TODO: Initialize your application state here 1 // TODO: This version check is brittle: It would be better for the IC to support a --version parameter which makes it simply echo its version to the console (like "node --version"). 1 const settingName: string | undefined = new Error().stack?.split("\n")[2].trim().split(" ")[2]; // TODO: Is there a better way? 1 lines.push(tab.repeat(4) + "// TODO: Re-initialize your application state from restoredAppState here"); 1 // TODO: FACTOR THESE INTO A STRUCT TO ALLOW MORE THAN ONE INSTANCE: 1 // TODO: The cast to 'any' here is a workaround for a "bug" in getSymbolAtLocation() [see https://github.com/Microsoft/TypeScript/issues/5218]. 1 // TODO: Figure out if there is a better way to implement Read(). 1 // TODO: Figure out proper way to handle async LogReader methods when the 1 // TODO: remove internal dependency: 1 // TODO: figure out proper way to handle async LogWriter methods when underlying UWP class only 1 // TODO: Revisit all "NonNullAssertion [for 'strictNullChecks']" comments and try to eliminate use of the non-null assertion 1 // See checkType() and getNativeType() for more on the "boxed-primitive vs. primitive" issue. [TODO: This needs a better explanation]. 1 // TODO: We could fix this by finding/replacing all compound types in the complex type below (but this would be tricky). 1 * TODO: This is brittle [to CRA internal data structure changes] so we need a better way to do this (eg. UnsafeDeregisterInstance.exe [which, as of 3/22/21, does only partial cleanup of Azure data]). 1 // TODO: dispose managed state (managed objects). 1 // import Ambrosia = require("./src/Ambrosia"); // TODO: This is for development ONLY: Use the import below for the "release" version [DEV-ONLY COMMENT] 1 let codeGenComment: string = "// TODO: Add your [non-async] handler here"; 1 // TODO: Figure out if there's a way to avoid having so much duplicated code 1 // FIXME: these should become PRIVATE to the library: 1 let buffer: Buffer = Buffer.from(bytes.slice(startIndex, startIndex + 8)); // TODO: Would using bytes.subarray() be faster? 1 // Application loop (FIXME: Move into the client library!) 2 lines.push(`{${NL}${tab}// TODO: Implement this method`); 1 const gitExitCode: number = (err as any).status; // TODO: Hack to make compiler happy 1 // FIXME: this is currently called by libambrosiaclient 1 codeGenComment = `// TODO: Add an exported [non-async] function '${signature}' to ${makeRelativePath(assertDefined(fileOptions.outputPath), sourceFileName)}, then (after the next code-gen) a call to it will be generated here`; 1 // TODO: figure out proper way to handle synchronous LogWriter methods when underlying UWP 1 // ^ TODO: may want to memcpy instead (like PerformanceTestInterruptable) 1 //TODO: Load state from previously suspended application 3 // TODO: Is there a better (cleaner/faster) way to detect this? 1 // TODO: Add an exported [non-async] function 'onFirstStart(): void' to ./PI.ts, then (after the next code-gen) a call to it will be generated here 1 // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below. 1 // TODO: Add an exported [non-async] function 'onUpgradeState(upgradeMode: Messages.AppUpgradeMode): void' to ./PI.ts, then (after the next code-gen) a call to it will be generated here 1 // the callID of the post method, which may make writing the postResult handler more difficult. TODO: This could be resolved 1 // TODO: Add an exported [non-async] function 'onICReadyForSelfCallRpc(): void' to ./PTI.ts, then (after the next code-gen) a call to it will be generated here 1 // FIXME: replace globals with a proper API for dynamically allocating buffers: 1